从 .sh 脚本调用 .py 脚本出现错误“ImportError: 没有名为 apiclient.discovery 的模块”

从 .sh 脚本调用 .py 脚本出现错误“ImportError: 没有名为 apiclient.discovery 的模块”

我有一个 python 脚本,希望每天使用 cron 作业来调用它。由于 .py 脚本会从其目录中加载多个文件,因此我没有将 .py 脚本中的所有文件路径更改为完整路径,而是使用更改目录的 cronjob 调用了 .sh 脚本。这是 .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"

我知道 cronjob 已经运行,因为我在日志文件中看到了正确的日期。但是,日志文件包含一条消息:

回溯(最近一次调用):文件“gaAPIWorkingVersion.py”,第 13 行,来自 apiclient.discovery 导入构建 ImportError:没有名为 apiclient.discovery 的模块

软件包已安装。当我直接调用 .sh 脚本(而不是 cron)时,一切都按预期运行。

/home/ubuntu/ga_data/myscript.sh # works

仅当从 cron 调用脚本时才会发生此错误。

这可能是什么原因造成的?我可以将什么内容添加到我的 crontab 或 .sh 脚本中以成功运行该脚本?

注意,如果它有用或重要,我会使用 Anaconda python。

答案1

必须在 crontab 中预先添加 python 路径所以回答。

例如01 00 * * * /usr/bin/python /home/ubuntu/data_scripts/test.py

相关内容