Почему Telegram-бот не видит переменные окружения?
Есть Telegram-бот, написанный на языке Python. Для обеспечения безопасности, какие-либо конфигурационные настройки я вынес в файл /etc/environment.
Проблема в том, что Бот видит эти переменные только при ручном запуске исполняемого файла. При попытке запустить бота через файл-сервис, он терпит неудачу, так как все переменные окружения возвращают *NoneType". Что это может быть?
Файл config.py:
import os
API_TOKEN = os.getenv('API_KEY_TWO')
ADMIN_ID = os.getenv('ADMIN_IDS').split(' ')
POSTGRES_CONFIG = {
'host': os.getenv('POSTGRES_HOST'),
'user': os.getenv('POSTGRES_USER'),
'password': os.getenv('POSTGRES_PASSWORD'),
'port': os.getenv('POSTGRES_PORT'),
'database': os.getenv('POSTGRES_DATABASE_TWO')
}
REDIS_CONFIG = {
'address': os.getenv('REDIS_ADDRESS'),
}
Файл /etc/environment/:
API_KEY_ONE="1333415565:AAEb0gAeXYs1***********************"
API_KEY_TWO="1382393718:AAHl-k_J5LqR***********************"
ADMIN_IDS="434903526 250020439"
POSTGRES_HOST="l*******t"
POSTGRES_USER="*********"
POSTGRES_PASSWORD="*******"
POSTGRES_PORT=5432
POSTGRES_DATABASE_ONE="aiogram_bot"
POSTGRES_DATABASE_TWO="aiogram_bot_excel"
REDIS_ADDRESS="redis://localhost"
Код ошибки:
Sep 23 01:51:19 351354-cq47489.tmweb.ru systemd[1]: aiogram_bot.service: Main process exited, code=exited, status=1/FAILURE
Sep 23 01:51:19 351354-cq47489.tmweb.ru systemd[1]: aiogram_bot.service: Failed with result 'exit-code'.
Sep 23 01:51:24 351354-cq47489.tmweb.ru systemd[1]: aiogram_bot.service: Service hold-off time over, scheduling restart.
Sep 23 01:51:24 351354-cq47489.tmweb.ru systemd[1]: aiogram_bot.service: Scheduled restart job, restart counter is at 3.
Sep 23 01:51:24 351354-cq47489.tmweb.ru systemd[1]: Stopped Aiogram Database Bot.
Sep 23 01:51:24 351354-cq47489.tmweb.ru systemd[1]: Started Aiogram Database Bot.
Sep 23 01:51:24 351354-cq47489.tmweb.ru python3.8[634]: Traceback (most recent call last):
Sep 23 01:51:24 351354-cq47489.tmweb.ru python3.8[634]: File "app.py", line 6, in <module>
Sep 23 01:51:24 351354-cq47489.tmweb.ru python3.8[634]: from config.config import ADMIN_ID, REDIS_CONFIG
Sep 23 01:51:24 351354-cq47489.tmweb.ru python3.8[634]: File "/home/cesoneemz/aiogram_bot/config/config.py", line 5, in <module>
Sep 23 01:51:24 351354-cq47489.tmweb.ru python3.8[634]: ADMIN_ID = os.getenv('ADMIN_IDS').split('')
Sep 23 01:51:24 351354-cq47489.tmweb.ru python3.8[634]: AttributeError: 'NoneType' object has no attribute 'split'
Sep 23 01:51:24 351354-cq47489.tmweb.ru systemd[1]: aiogram_bot.service: Main process exited, code=exited, status=1/FAILURE
Sep 23 01:51:24 351354-cq47489.tmweb.ru systemd[1]: aiogram_bot.service: Failed with result 'exit-code'.
Sep 23 01:51:29 351354-cq47489.tmweb.ru systemd[1]: aiogram_bot.service: Service hold-off time over, scheduling restart.
Sep 23 01:51:29 351354-cq47489.tmweb.ru systemd[1]: aiogram_bot.service: Scheduled restart job, restart counter is at 4.
Sep 23 01:51:29 351354-cq47489.tmweb.ru systemd[1]: Stopped Aiogram Database Bot.
Ответы (1 шт):
Автор решения: Andrey Pupkin
→ Ссылка
ну как бы по логу
Sep 23 01:51:24 351354-cq47489.tmweb.ru python3.8[634]: AttributeError: 'NoneType' object has no attribute 'split'
Пересмотрите
ADMIN_ID = os.getenv('ADMIN_IDS').split(' ')