我对 Unix 和 crontab 很陌生。我遇到的唯一主要问题是将终端指向我尝试运行的特定程序的 python 模块。从命令行程序运行良好,但不会从 crontab。

第一个 cronjob 给我发送了一封电子邮件,说 cronjob 正在运行。第二个(createUpdate)运行我构建的脚本,设置为每分钟运行一次。

crontab -l 返回:

*/1 * * * * python /Users/JohnDoe/Desktop/emailalert.py
*/1 * * * * PYTHONPATH =/Library/Frameworks/Python.framework/Versions/Current/lib/python2.7/site-packages; export PYTHONPATH; python /Users/JohnDoe/Desktop/createUpdate.py

我是否正确构建了 PYTHONPATH?

我应该在 cron 之前打破它吗?

是否需要“导出 PYTHONPATH”?

编辑
我忘了添加错误
/bin/sh: PYTHONPATH: command not found
Traceback (most recent call last):
  File "/Users/JohnDoe/Desktop/createUpdate.py", line 1, in <module>
    import beatbox
ImportError: No module named beatbox

最佳答案

正确的方法是

*/1 * * * * PYTHONPATH=/Library/Frameworks/Python.framework/Versions/Current/lib/python2.7/site-packages python /Users/JohnDoe/Desktop/createUpdate.py

请注意变量赋值中的空格。没有分号,也不需要导出变量,因为在命令之前声明它们已经使它们对命令本身有效。

关于python - Crontab |缺少 Python 模块,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23136675/

10-13 07:20