我有一个运行django应用程序的docker容器,该应用程序也在其中运行cron作业。由于此错误,托管命令不断失败:
manage.py中的第14行
line 14
) from exc
^
SyntaxError: invalid syntax
我的cron工作如下:
0 1 * * 1-5 python manage.py myCommand
我尝试将其更改为此,以查看是否可以解决问题:
0 1 * * 1-5 /usr/local/bin/python /absolute/path/to/project/manage.py myCommand
答案 0 :(得分:2)
这是使用错误的Python版本时遇到的典型错误。在您对问题的评论之后:
docker容器正在使用python 3.5。当我运行python -V时,我得到 Python 3.5.6
您可以看到您的用户的 $PATH
在使用shell会话您打开时指向Python 3.5.6。有关cron作业的一件事经常使人们陷入困境:cron打开了另一个外壳,无法访问您的$PATH
。因此,在您的情况下,它指向的是Python 2.x。
有很多方法可以克服这个问题。可能最简单的一种是通过运行
来检查Python 3的位置$ which python3
,并在cron命令中使用输出的路径。例如,对于我的系统,它将是:
0 1 * * 1-5 /usr/bin/python3 manage.py myCommand