Как правильно импортировать из .py в .py? Всем привет. У меня возникли проблемы при импортировании файла .py. Если бьть более конкретным то у меня не наследуются атрибуты. Файл который я пытаюсь импортировать:import tweepy def api(): consumer_key = 'айзабей' consumer_secret = 'айзабей' access_token = 'айзабей' access_token_secret = 'айзабей'
auth = tweepy.OAuthHandler(consumer_key, consumer_secret) auth.set_access_token(access_token, access_token_secret) api = tweepy.API(auth)
return api Файл в который я пытаюсь импортировать:from flask import Flask, render_template from tweepy_credentials import api app = Flask(__name__) @app.route('/') def index(): public_tweets = api.home_timeline(count=10) return render_template('index.html',public_tweets=public_tweets) if __name__ == '__main__': app.run(debug=True) на выходе у меня AttributeError: 'function' object has no attribute 'home_timeline' проще говоря ссылка на объект api пустая :( ПОМОЖЫТИ!
Проблема здесь в том, что вы вызываете функцию api() в файле tweepy_credentials.py, а не объект API. Чтобы решить эту проблему, вам нужно изменить ваш файл tweepy_credentials.py следующим образом:
Теперь ваш файл tweepy_credentials.py будет содержать объект api, а не функцию api(). И в вашем файле, в который вы импортируете api, вы можете использовать его как объект:
from flask import Flask, render_template from tweepy_credentials import api app = Flask(name)
Теперь при импортировании api он будет содержать объект API, который вы можете использовать для вызова методов, таких как home_timeline(). Попробуйте это и посмотрите, поможет ли это решить вашу проблему.
Проблема здесь в том, что вы вызываете функцию api() в файле tweepy_credentials.py, а не объект API. Чтобы решить эту проблему, вам нужно изменить ваш файл tweepy_credentials.py следующим образом:
import tweepy
consumer_key = 'your_consumer_key'
consumer_secret = 'your_consumer_secret'
access_token = 'your_access_token'
access_token_secret = 'your_access_token_secret'
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)
api = tweepy.API(auth)
Теперь ваш файл tweepy_credentials.py будет содержать объект api, а не функцию api(). И в вашем файле, в который вы импортируете api, вы можете использовать его как объект:
from flask import Flask, render_template
from tweepy_credentials import api
app = Flask(name)
@app.route('/')
def index():
public_tweets = api.home_timeline(count=10)
return render_template('index.html',public_tweets=public_tweets)
if name == 'main':
app.run(debug=True)
Теперь при импортировании api он будет содержать объект API, который вы можете использовать для вызова методов, таких как home_timeline(). Попробуйте это и посмотрите, поможет ли это решить вашу проблему.