即使在添加路径(cron调用.sh文件,而该文件又调用.py文件)之后,crontab也无法使用anaconda python

即使在添加路径(cron调用.sh文件,而该文件又调用.py文件)之后,crontab也无法使用anaconda python,python,shell,cron,anaconda,Python,Shell,Cron,Anaconda,我有一份工作: 1 11 * * * /home/ubuntu/anaconda3/bin/python /home/ubuntu/ga_data/gaV4/tva_gaApiUpdate.sh > /dev/null 2 >> tvaUpdater.log 下面是.sh文件: #!/bin/bash cd /home/ubuntu/ga_data/gaV4 python gaAPIWorkingVersion.py echo "ran cron at" | tee -a

我有一份工作:

1 11 * * * /home/ubuntu/anaconda3/bin/python /home/ubuntu/ga_data/gaV4/tva_gaApiUpdate.sh > /dev/null 2 >> tvaUpdater.log
下面是.sh文件:

#!/bin/bash
cd /home/ubuntu/ga_data/gaV4
python gaAPIWorkingVersion.py
echo "ran cron at" | tee -a  "$tvaUpdater.log"
echo $(date) | tee -a  "$tvaUpdater.log"
日志文件的输出为:

Traceback (most recent call last):
  File "gaAPIWorkingVersion.py", line 13, in <module>
    from apiclient.discovery import build
ImportError: No module named apiclient.discovery
但这也带来了一个错误


如何让cron使用正确版本的python(本例中为anaconda)?

尝试将cron更改为:

1 11 * * * /home/ubuntu/ga_data/gaV4/tva_gaApiUpdate.sh > /dev/null 2 >> tvaUpdater.log
和脚本

#!/bin/bash
cd /home/ubuntu/ga_data/gaV4
/home/ubuntu/anaconda3/bin/python gaAPIWorkingVersion.py
echo "ran cron at" | tee -a  "$tvaUpdater.log"
echo $(date) | tee -a  "$tvaUpdater.log"
确保scit直接运行的用户与cronjob的用户相同。 如果您仍然有问题,请检查

#!/bin/bash
cd /home/ubuntu/ga_data/gaV4
/home/ubuntu/anaconda3/bin/python gaAPIWorkingVersion.py
echo "ran cron at" | tee -a  "$tvaUpdater.log"
echo $(date) | tee -a  "$tvaUpdater.log"