我正在尝试设置一个正在执行我的python文件的cron作业。 python文件使用一些手动安装的模块。 cron作业现在抛出一个错误,因为它“无法找到”指定的模块(是的,我测试过它:如果手动执行脚本确实有效并且可以访问模块)。
我现在收到了神秘的信息(从主持人的支持)到'尝试在命令中添加-m标志,然后是无法找到的模块的路径。'不幸的是我不太明白这个建议。
假设我的cron作业命令(通过Cpanel )开箱即用:
0 * * * * python /home/public_html/cgi-bin/cronrun.py
如果python脚本不依赖外部模块,则可以正常工作。
所以我的问题是:
非常感谢你!
答案 0 :(得分:0)
您的cron作业不太可能与您拥有的环境相同。要看到这一点,首先运行env> [somepath_that_you_can_reach]。然后设置一个cron,使用不同的路径在shell脚本中执行相同的操作。比较两者。您将需要您的PYTHONPATH与cron作业相同。如果这是问题,那么在你的python脚本中:
import sys
sys.path.append('[the path part that you need for it to work]')
在导入语句之前。