【发布时间】:2017-08-06 23:26:49
【问题描述】:
我有一个可以从命令行完美运行的脚本:
/home/anaconda2/bin/python /project_folder/script.py
我在下面添加了一些细节:
$ echo $PYTHONPATH
:/project_folder/
$ which python
/home/anaconda2/bin/python
完美无缺地运行脚本。
然后在 crontab 中(对于另一个没有本地导入问题的脚本已经成功)我无法运行该脚本。
不工作的代码的crontab:
PYTHONPATH=/project_folder
* * * * * /home/anaconda2/bin/python /project_folder/script.py
什么都没有发生。这让我和我的大部分时间都在试图解决这个问题 - 非常感谢任何帮助。
【问题讨论】:
-
确保您的脚本需要的所有环境变量都已定义。 Cron 不会运行交互式登录运行的所有相同启动脚本。
-
这里有一些对静默失败的 cron 有用的提示:unix.stackexchange.com/questions/207/…
-
我该如何解决@GreenMatt(顺便说一句)
-
不确定你想弄清楚什么:那个 cron 没有运行你交互式登录的所有启动脚本?这来自阅读文档,这通常来自于试图弄清楚为什么你的脚本不能从 cron 运行! ;-) 需要哪些环境变量?反复试验或检查您的启动脚本是我通常的解决方法。此外,cron 可能正在通过电子邮件发送结果或记录它们。我建议您查看您的 .bashrc(或等效文件),看看您是否正在更改 PATH 或 PYTHONPATH 变量作为起点。
-
@SteelyDanish:一种方法是让 cron 调用一个 Bash 包装脚本,该脚本设置 PATH,然后运行您的 Python 脚本。或者,有一些方法可以使用 Python 脚本设置环境;看看:stackoverflow.com/questions/5971312/…
标签: python import crontab anaconda pythonpath