通常我会通过SSH登录我的EC2实例并运行:
source MYVENV/bin/activate
如何设置我的cronjob以激活虚拟环境?我的Django脚本需要存储在~/.bash_profile中的环境变量
我试着按照这里的步骤做,但没有用。
SHELL=/bin/bash
*/1 * * * * root source /home/ec2-user/MYVENV/activate && python /home/script.py
这是我目前的设置。
我在日志中看到以下错误:
/bin/bash: root:找不到命令
发布于 2019-06-27 22:37:44
创建shell脚本,如scripts.sh
#!/bin/bash
source /home/user/MYVENV/bin/activate
python /path/to/file/script.py
然后在cron put中
*/1 * * * * bash /path/to/shell/script/scripts.sh
该脚本将加载所有环境变量,并从环境中的python执行
发布于 2019-04-26 10:57:13
您可以直接从您的环境中运行python解释器,例如
MYENV/bin/python script.py
要找出环境python解释器的目录是什么,请更改为虚拟环境,然后运行
which python
在您的情况下,这应该成为
*/1 * * * * /home/ec2-user/MYVENV/python /home/script.py
发布于 2019-04-26 10:57:20
您可以创建一个包装器bash脚本来执行您的Django脚本。请参见下面的示例。
#!/bin/bash -l // this should pick up your ~/.bash_profile environment variables
cd /path to project dir/ // set it up if your project is not in python path
source /Users/<user>/.virtualenvs/dslab/bin/activate // this activates your environment
python /home/script.py // run your script
https://stackoverflow.com/questions/55860101
复制相似问题