#python #heroku #environment-variables #discord.py
#python #heroku #переменные среды #discord.py
Вопрос:
У меня нет проблем с Heroku, когда я помещаю токен непосредственно в основной код. И мой код работает на моем собственном компьютере, когда я скрываю токен в своем файле .env. Но когда я запускаю его с Heroku, я получаю эти ошибки в своих журналах Heroku:
2020-08-22T16:27:49.125385 00:00 app[worker.1]: await self.http.static_login(token.strip(), bot=bot)
2020-08-22T16:27:49.125400 00:00 app[worker.1]: AttributeError: 'NoneType' object has no attribute 'strip'
По сути, он вообще не читает мой токен. А затем статус меняется на сбой. Вот как я читаю токен:
import os
import dotenv
from dotenv import load_dotenv
load_dotenv()
TOKEN = os.getenv('DISCORD_TOKEN')
Я проверил, и токен правильно считывается на моем компьютере.
Комментарии:
1. Вы добавили свой токен в свои конфигурационные переменные в heroku?
2. @jreiss1923 Я только что добавил его, и это исправлено! Спасибо!
3. Нет проблем, рад помочь
Ответ №1:
Причина, по которой это не сработало, заключается в том, что токен не был добавлен в переменные конфигурации в heroku. Для этого перейдите на страницу настроек вашего проекта, нажмите «Добавить переменные конфигурации» и добавьте свои переменные.
Ответ №2:
Heroku не читает ваш .env
файл. Обычно я вижу те, которые используются для загрузки среды при разработке или тестировании, но не в производстве. Вы можете установить переменную среды на вкладке «Настройки» на панели инструментов Heroku, или вы можете установить ее со своего терминала с помощью командной строки Heroku:
heroku config:set DISCORD_TOKEN=myvalue
Вы можете проверить свои переменные среды с помощью:
heroku config
Или вы можете проверить одну переменную среды с помощью
heroku config:get DISCORD_TOKEN