Я использую базовый cron, для которого требуются переменные среды, которые я установил с помощью virtualenvwrapper
. Переменные среды устанавливаются в /home/ubuntu/.virtualenvs/testcron/bin/activate
Когда я запускаю команду cd /home/ubuntu/test_script && /home/ubuntu/.virtualenvs/testcron/bin/python3 my_script.py
, сценарий запускается, как задумано, без ошибок. Сценарий импортирует переменную среды и распечатывает ее.
Однако, когда я запускаю тот же сценарий через cron (* * * * * cd /home/ubuntu/test_script && /home/ubuntu/.virtualenvs/testcron/bin/python3 my_script.py
), я получаю эту ошибку.
Traceback (most recent call last):
File "my_script.py", line 7, in <module>
main()
File "my_script.py", line 4, in main
print(os.environ['SOME_ENV_VARIABLE'])
File "/home/ubuntu/.virtualenvs/testcron/lib/python3.5/os.py", line 725, in __getitem__
raise KeyError(key) from None
KeyError: 'SOME_ENV_VARIABLE'
Когда я запускаю следующее, у меня, кажется, нет никаких проблем
~$ /home/ubuntu/.virtualenvs/testcron/bin/python3
>>> import os
>>> os.environ['SOME_ENV_VARIABLE']
'my_env_variable_value'
Я упускаю что-то очевидное, есть ли у меня проблема с конфигурацией virtualenvwrapper или есть уловка для запуска crons таким образом?