Crontab | 缺少Python模块

sha*_*ter 4 python crontab

我是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 
Run Code Online (Sandbox Code Playgroud)

我正确构建了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
Run Code Online (Sandbox Code Playgroud)

小智 11

正确的方法是

*/1 * * * * PYTHONPATH=/Library/Frameworks/Python.framework/Versions/Current/lib/python2.7/site-packages python /Users/JohnDoe/Desktop/createUpdate.py
Run Code Online (Sandbox Code Playgroud)

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

  • 当我使用 sudo crontab 时,缺少一些 python 模块。使用 PYTHONPATH 显示“site-packages”目录的路径就可以了。以防万一有人遇到类似的问题。 (2认同)