macOS运行后台定时程序遇ImportError: No module named schedule问题求助
问题原因
这是因为macOS系统同时存在Python2和Python3两个独立的运行环境,两者的模块安装目录完全分离:
- 你执行
python -V显示的Python2.7.18,是系统默认python命令对应的版本,运行程序时调用的就是这个环境。 - 而
pip -V指向Python3.10,说明你用pip install schedule把模块装到了Python3.10的环境里,Python2的环境中根本没有这个模块,所以运行时会报错找不到schedule。
解决办法
直接用Python3的命令来运行程序,有几种可行方式:
- 最直接的替换:用
python3代替python,修改后的运行命令为:python3 /Users/teddy/Desktop/herumblödeln/main.py & - 如果系统里有多个Python3版本,想指定用3.10,可以先查询它的完整路径:
然后用查到的路径运行程序,例如:which python3.10/usr/local/bin/python3.10 /Users/teddy/Desktop/herumblödeln/main.py & - 要是想让
python命令默认指向Python3,可以修改shell配置文件(zsh用户改~/.zshrc,bash用户改~/.bash_profile),添加一行:
保存后执行alias python=python3source ~/.zshrc(对应你的shell类型)生效,之后再用python命令就会调用Python3了。
注意:不建议给Python2安装模块,因为Python2已经停止官方维护,存在安全风险,优先使用Python3环境运行你的程序。
内容的提问来源于stack exchange,提问作者Ma.Te.Pa
相关产品推荐
相关产品推荐

