我有个私信:
1 11 * * * /home/ubuntu/anaconda3/bin/python /home/ubuntu/ga_data/gaV4/tva_gaApiUpdate.sh > /dev/null 2 >> tvaUpdater.log
下面是.sh文件:
^{pr2}$日志文件的输出是:
Traceback (most recent call last):
File "gaAPIWorkingVersion.py", line 13, in <module>
from apiclient.discovery import build
ImportError: No module named apiclient.discovery
我用cron调用一个.sh文件,这个文件又调用一个.py文件。我这样做是因为在.sh文件中,我用cd更改目录,这样就不必将.py脚本中的路径更改为绝对路径。这是因为我的较大的.py脚本从它的目录中打开了几个文件。因此,我不直接在cron中调用python,而是通过首先调用.sh文件来间接调用。在
当我自己直接运行.sh或.py脚本时,一切正常。只有当cron试图这么做时,我才得到上面的错误。在
如果我在终端中which python
,我得到/home/ubuntu/anaconda3/bin/python
。在
我试着将这行代码添加到.sh文件中,如下所示:
#!/bin/bash
cd /home/ubuntu/ga_data/gaV4
python /home/ubuntu/anaconda3/bin/python gaAPIWorkingVersion.py
但这也带来了一个错误。在
如何让cron使用正确版本的python(本例中是anaconda)?在
尝试将您的cron更改为:
和脚本
^{pr2}$确保scip直接运行的用户与cronjob的用户相同。 如果仍有问题,请检查Cannot Import Python MySQL module when running a script using crontab
相关问题 更多 >
编程相关推荐