Mac下pip安装Python模块后IDLE导入报ModuleNotFoundError求助
Mac下pip装包后IDLE/脚本导入报ModuleNotFoundError解决
核心原因
设备上同时存在多套完全隔离的Python 3.9环境,pip装包的目标环境和你实际运行代码的环境不匹配:
- 你执行
pip3 install时默认调用的是Homebrew版Python对应的pip,包被安装到/opt/homebrew/lib/python3.9/site-packages路径下,仅Homebrew版Python可读取该路径下的包 - 你日常打开的IDLE、终端默认调用的
python3、以及/usr/local/bin/python3均为python.org官网下载安装的Python 3.9.1,部署路径为/Library/Frameworks/Python.framework/Versions/3.9/,其默认包搜索路径不包含Homebrew的site-packages目录,因此无法识别已安装的第三方模块,所有通过Homebrew版pip安装的包都会触发相同的导入报错。
可直接落地的解决方法
二选一即可:
方法1:为当前默认使用的官网版Python安装第三方包
不要直接使用裸pip3命令,调用当前Python环境自带的pip执行安装即可:
/Library/Frameworks/Python.framework/Versions/3.9/bin/pip3 install pyperclip
安装完成后,现有IDLE、默认python3命令跑脚本都可以正常导入模块。
如果需要后续直接敲pip3默认对应这个环境的包管理工具,修改shell配置文件(zsh对应~/.zshrc,bash对应~/.bash_profile),将/Library/Frameworks/Python.framework/Versions/3.9/bin的路径配置到PATH变量的最靠前位置,优先级高于/opt/homebrew/bin即可。
方法2:统一使用Homebrew版Python运行代码
如果不需要保留多套Python环境,直接切换到Homebrew版Python作为默认运行环境:
- 执行
brew install python-tk安装IDLE依赖的tkinter组件(Homebrew版Python默认不自带该依赖) - 后续运行脚本统一用
/opt/homebrew/bin/python3,打开IDLE调用Homebrew版对应的idle3命令,即可正常读取之前已经安装到Homebrew site-packages路径下的所有第三方包。
验证方式
安装完成后,在你运行代码的对应Python环境中执行以下命令,确认输出的路径列表中包含对应版本的site-packages目录即可:
import sys print(sys.path)
内容的提问来源于stack exchange,提问作者Deon O'Brien
相关产品推荐
相关产品推荐

