繁体   English   中英

Cron作业未与python导入模块一起运行

[英]Cron job not running with python import modules

我需要在python脚本上运行cron作业以生成底图图。

  1. 脚本本身可以手动运行。

  2. 在程序开始时执行一个简单的print("Hello") ,其余部分都注释掉,在cron上也可以正常运行
    */10 * * * * /usr/bin/python3 ~/PythonFiles/TestScript.py > /dev/null 2>&1 >>log.txt

我使用chmod +x使该文件成为可执行文件,并在程序开始时添加了shebang( #!/home/usr/anaconda3/bin/python )。 我也可以在程序开始时通过打印的消息来监视日志文件中的活动

  1. 当我运行包含模块( urllib.request, datetime, matplotlib, basemap, pygrib, numpy, ... )的“普通”程序时,脚本随后停止将任何内容输出到log.txt

因此,我怀疑这与模块及其位置有关。 我检查了一下,发现它们似乎已安装在各个地方(.../pkgs, .../conda-meta, .../site-packages等)。

首先,我怀疑是正确的吗?
其次,如何解决此问题,以便cron知道在哪里可以找到运行该作业的所有库?

非常感谢!

我怀疑这与模块位置路径有关。 在浏览网站并调整对cron的输入后,以下工作有效!

SHELL=/bin/sh
HOME=/home/stephane
PYTHONPATH=/home/stephane/anaconda3/bin/python
PATH=/home/stephane/anaconda3/lib/python3.6/site-packages

*/2 * * * *  /home/stephane/anaconda3/bin/python ~/PythonFiles/TestScript.py >/dev/null 2>&1 >> log.txt

注意:matplotlib似乎需要“将matplotlib导入为mpl; mpl.use('Agg')”才能启动cron。

谢谢大家!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM