Crontab 启动 Python 脚本但 SystemD 不启动?

Crontab Launches Python Script but SystemD Does Not?

我可以通过 ssh 登录我的 AWS EC2 服务器并输入:

cd /opt/myWebApp
sudo python3 /opt/myWebApp/manage.py myCronJob

...它 运行s。

我也可以通过 crontab 启动相同的脚本:

0 */6 * * * sudo python3 /opt/myWebApp/manage.py myCronJob --settings=server.settings.production 

但是当我尝试在 SystemD 中使用 .service 文件 运行 时:

ExecStart='/usr/bin/python3.7' /opt/myWebApp/manage.py myCronJob --settings=server.settings.production

...我得到:

ImportError: Couldn't import Django. Are you sure it's installed and available on your PYTHONPATH environment variable? Did you forget to activate a virtual environment?

$PYTHONPATH$VIRTUAL_ENV 为空。 /opt/myWebApp/server_venv 也是空的。在 /usr/bin/python3.7 处有一个 python,但我如上所述在 SystemD .service 文件中引用它,它会抛出该错误。

我错过了什么?

解决了!

ExecStart='/etc/alternatives/python3' ./manage.py myCronJob --settings=server.settings.production
WorkingDirectory=/opt/myWebapp
User=myUser

用户(上面代码中的'myUser')可以访问 Django。