在 cron 作业 (Python) 中,-m 标志代表什么以及如何使用它?

In cron jobs (Python), what does the -m flag stand for and how is it used?

我正在尝试设置一个正在执行我的 python 文件的 cron 作业。 python 文件正在使用一些手动安装的模块。 cron 作业现在抛出一个错误,因为它 'cannot find' 指定的模块(是的,我测试了它:如果手动执行,脚本确实可以工作并且可以访问模块)。

我现在确实收到了神秘信息(来自托管商的支持)'尝试将 -m 标志添加到命令中,然后是它找不到的模块的路径。' 不幸的是,我不太理解这个建议。

假设我的 cron 作业命令(通过 Cpanel)开箱即用:

0 * * * * python /home/public_html/cgi-bin/cronrun.py

如果 python 脚本不依赖于外部模块,这会起作用。

所以我的问题是:

非常感谢您!

您的 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]')

在您的导入语句之前。