Arc*_*hie 7 python variables environment cron dotenv
我正在从 python 库运行一个 python 脚本,该脚本.env使用 dotenv 从库根目录中的文件加载一些环境变量。
这可以从命令行运行,但是当我尝试使用以下命令作为 cronjob 运行时:
* * * * * source ./path_to_venv/activate; python ./path_to_script.py
Run Code Online (Sandbox Code Playgroud)
我收到一个关键错误,因为它找不到环境变量。
有什么想法为什么这不起作用吗?
非常感谢您的帮助!
Eme*_*men 10
我也使用 crontab 来执行我的 Node JS 项目。我必须明确声明我的.env文件的路径,如下所示:
require('dotenv').config({ path: '/var/www/html/myproject/.env' });
Run Code Online (Sandbox Code Playgroud)
在 python-dotenv 中,我相信可以通过使用类似的方法来完成:
require('dotenv').config({ path: '/var/www/html/myproject/.env' });
Run Code Online (Sandbox Code Playgroud)
我不知道是否有更优雅的解决方案。通过在 cronjob 顶部添加环境变量,我能够使我的脚本在 crontab 中运行。
API_KEY=value
API_KEY_SECRET=value
ACCESS_TOKEN=value=value
ACCESS_TOKEN_SECRET=value
# run on 8hrs interval
0 */8 * * * . $HOME/Coding/python/web-scraper-corona/venv/bin/activate && $HOME/Coding/python/web-scraper-corona/venv/bin/python3 /home/chan-dev/Coding/python/web-scraper-corona/twitter-covid19-bot.py >> /tmp/test.txt 2>&1
Run Code Online (Sandbox Code Playgroud)