首页 > 解决方案 > 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)

任何帮助表示赞赏!

标签: pythonpython-3.xcron

解决方案


有几件事可能是罪魁祸首,但为了确保您运行的解释器与使用的 cron 相同,请确保包含 python3 的完整路径,即

0-59 * * * * /Users/jaai/anaconda3/bin/python3/python ~/PycharmProjects/dailySearch.py trees >> ~/woah.log 2>&1

如果问题仍然存在,那么也许您应该考虑为 cron 设置 PYTHONPATH 环境变量,以便它与您的 shell 设置的匹配。


推荐阅读