python - crontab Python 脚本中的“ImportError:没有名为请求的模块”
问题描述
我正在尝试在 crontab 中设置 Python 脚本。我有以下内容:
0-59 * * * * python ~/PycharmProjects/dailySearch.py trees >> ~/woah.log 2>&1
在我的日志文件中,我得到ImportError: No module named requests
. 我已经搜索了其他 SO 问题并尝试了各种建议,但均未成功。
当我在 IDLE 中运行脚本时,将sys.version
我的版本显示为3.7.1 (default, Dec 14 2018, 13:28:58)
我安装了两个 Python 版本,虽然我正在运行 python3 (3.7.1),但我不确定我的请求和 pip 是否也安装在它应该在的位置
python3 位于:/Users/jaai/anaconda3/bin/python3
点子3:/Users/jaai/anaconda3/bin/pip3
为了确认我正在使用 pip3 安装请求,我运行sudo pip3 install requests
了以下命令:
Requirement already satisfied: requests in /Users/jaai/anaconda3/lib/python3.7/site-packages (2.22.0)
Requirement already satisfied: urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1 in /Users/jaai/anaconda3/lib/python3.7/site-packages (from requests) (1.24.1)
Requirement already satisfied: certifi>=2017.4.17 in /Users/jaai/anaconda3/lib/python3.7/site-packages (from requests) (2018.11.29)
Requirement already satisfied: chardet<3.1.0,>=3.0.2 in /Users/jaai/anaconda3/lib/python3.7/site-packages (from requests) (3.0.4)
Requirement already satisfied: idna<2.9,>=2.5 in /Users/jaai/anaconda3/lib/python3.7/site-packages (from requests) (2.8)
任何帮助表示赞赏!
解决方案
有几件事可能是罪魁祸首,但为了确保您运行的解释器与使用的 cron 相同,请确保包含 python3 的完整路径,即
0-59 * * * * /Users/jaai/anaconda3/bin/python3/python ~/PycharmProjects/dailySearch.py trees >> ~/woah.log 2>&1
如果问题仍然存在,那么也许您应该考虑为 cron 设置 PYTHONPATH 环境变量,以便它与您的 shell 设置的匹配。
推荐阅读
- java - 不使用 SimpleDateFormat 将日期字符串转换为另一个日期字符串的最有效方法
- mqtt - 无法通过 MQTT 向 ThingsBoard 网关发送数据
- python-3.x - 连接两个 float64 列而不在 python 中转换为 str 的最佳方法是什么?
- r - 嵌套列表中的 lapply data.table setDT 不起作用或不是幂等的?
- sql - ORA-06502: PL/SQL: 数字或值错误: 字符串缓冲区太小只有三个数字
- javascript - 我有六个反应文件,每个文件都导出一个数组,我想将六个文件减少到一个
- apache-flink - Apache Flink - 显示计数器值但未显示仪表值
- meson-build - 介子:如何让 find_library() 在不寻常的路径下工作?
- sql - 如何从 sqlite 表中获取排名
- c# - 如何访问序列化数组中的单个项目?