Как правильно импортировать из .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 пустая :( ПОМОЖЫТИ!

21 Авг 2019 в 06:21
216 +1
0
Ответы
1

Проблема здесь в том, что вы вызываете функцию 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.OAuthHandlerconsumerkey,consumersecretconsumer_key, consumer_secretconsumerk ey,consumers ecret auth.set_access_tokenaccesstoken,accesstokensecretaccess_token, access_token_secretaccesst oken,accesst okens ecret

api = tweepy.APIauthauthauth

Теперь ваш файл tweepy_credentials.py будет содержать объект api, а не функцию api. И в вашем файле, в который вы импортируете api, вы можете использовать его как объект:

from flask import Flask, render_template
from tweepy_credentials import api
app = Flask<strong>name</strong><strong>name</strong><strong>name</strong>

@app.route′/′'/'/ def index:
public_tweets = api.home_timelinecount=10count=10count=10 return render_template′index.html′,publictweets=publictweets'index.html',public_tweets=public_tweetsindex.html,publict weets=publict weets

if name == 'main':
app.rundebug=Truedebug=Truedebug=True

Теперь при импортировании api он будет содержать объект API, который вы можете использовать для вызова методов, таких как home_timeline. Попробуйте это и посмотрите, поможет ли это решить вашу проблему.

20 Апр 2024 в 13:19
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир