Как правильно импортировать из .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
190 +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.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(). Попробуйте это и посмотрите, поможет ли это решить вашу проблему.

20 Апр в 13:19
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 84 727 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир