Mac OS High Sierra下Python 3.6安装Kivy后出现Module not found error
Kivy模块找不到的解决建议
嘿,我之前也碰到过一模一样的问题,大概率是Python环境冲突或者安装路径没对齐导致的,给你几个靠谱的排查和解决步骤:
1. 先确认你用的Python是不是安装Kivy的那套
brew和pip3很容易和系统自带的Python搞混,尤其是装了多个版本的时候:
- 先查当前终端用的Python版本:
python3 --version,得确保是3.6 - 再看pip3对应的Python路径:
pip3 --version,输出里会显示它属于哪个Python,比如pip 20.2.4 from /usr/local/lib/python3.6/site-packages/pip (python 3.6),如果不是3.6,那问题根源就在这了。
2. 检查Kivy的安装路径是否被Python识别
就算pip显示装了Kivy,也可能路径没被Python收录:
- 先确认Kivy已安装:
pip3 list | grep Kivy,能看到版本号说明装了 - 找到Kivy的安装位置:
pip3 show Kivy,看Location那一行的路径 - 打开Python3.6的交互模式:
python3.6,输入import sys; print(sys.path),看看刚才的Location路径在不在列表里。如果不在,那Python肯定找不到它。
3. 修复brew和Python的关联
brew安装的Python有时候会和系统版本冲突,试试这些:
- 重新链接Python3.6:
brew link python@3.6 --force(权限不够就加sudo) - 确认
python3指向brew的版本:which python3,正常应该输出/usr/local/bin/python3,而不是系统的/usr/bin/python3 - 实在不行,直接用Python3.6的绝对路径运行脚本,比如
/usr/local/bin/python3.6 your_script.py,看看能不能找到Kivy。
4. 彻底重装Kivy(避免环境混乱)
如果上面的方法都不管用,干脆卸载重装,这次要选对姿势:
- 先卸载所有相关包:
pip3 uninstall -y kivy kivy-deps* - 用brew补全Kivy的依赖:
brew install sdl2 sdl2_image sdl2_ttf sdl2_mixer gstreamer - 重点:用Python3.6自带的pip来装,确保安装到正确环境:
python3.6 -m pip install kivy
别直接用pip3,用python3.6 -m pip能100%对应到你要的Python版本。
5. 虚拟环境是终极方案(强烈推荐)
多个Python版本混装太容易踩坑,给Python3.6整个专属虚拟环境就稳了:
- 先装virtualenv:
python3.6 -m pip install virtualenv - 创建虚拟环境:
virtualenv -p python3.6 kivy_env - 激活环境:
source kivy_env/bin/activate(Mac/Linux) - 在激活的环境里装Kivy:
pip install kivy - 之后运行脚本都在这个环境里,绝对不会再出现模块找不到的问题。
内容的提问来源于stack exchange,提问作者py_ios_dev
相关产品推荐
相关产品推荐

