Mac使用crontab运行Python脚本报No module named 'requests'错误求助
问题根因
你在crontab中调用的是系统自带的/usr/bin/python3,该Python实例的第三方包搜索路径和你安装requests的Python3.9路径不互通,系统Python不会主动读取/usr/local/lib/python3.9/site-packages下的安装包,因此触发模块找不到的报错。
解决方案
方法1:替换crontab中的Python执行路径
首先在终端执行which python3.9获取你安装了requests的Python3.9的完整执行路径,通常输出为/usr/local/bin/python3.9,将crontab中的命令替换为对应路径即可:15 21 * * * /usr/local/bin/python3.9 /Users/username/Python/Filename.py修改完成后可以先在终端直接执行完整的
/usr/local/bin/python3.9 /Users/username/Python/Filename.py命令,确认无报错再写入crontab。方法2:脚本内追加包搜索路径
在Filename.py文件的最开头添加以下代码,手动指定requests所在的包路径:import sys sys.path.append("/usr/local/lib/python3.9/site-packages")该方法不需要修改crontab配置,仅改动脚本本身即可生效。
方法3:crontab中声明环境变量
在你的crontab配置的最顶部添加环境变量声明,指定全局的Python包搜索路径:PYTHONPATH=/usr/local/lib/python3.9/site-packages原有定时任务命令不需要修改,保存后即可生效。
内容的提问来源于stack exchange,提问作者Tcs106
相关产品推荐
相关产品推荐

