Ubuntu 16.04环境下Python3.6.5无法导入kivy模块求助
这种环境版本不匹配的坑在多Python版本的Linux系统里真的很容易踩,我帮你一步步排查解决:
1. 先确认你的Python和pip是一对儿
很多时候问题出在pip3和python3对应了不同的Python环境。先跑这两个命令看看路径:
which python3 which pip3
正常情况下,这两个输出的路径应该在同一个目录下(比如/usr/local/bin/或者~/.local/bin/)。如果路径不一样,说明你用的pip3不是给当前python3安装包的工具,这时候别再用pip3 install了,改用Python自带的模块方式安装,确保包装到正确的环境里:
python3 -m pip install kivy
2. 检查Kivy是否真的在Python的搜索路径里
先看看Kivy装到了哪里:
pip3 show kivy
你会看到类似Location: /some/path/python3.6/site-packages的行,记下来这个路径。
然后看看Python的搜索路径里有没有这个位置:
python3 -c "import sys; print('\n'.join(sys.path))"
如果刚才的Location路径不在输出列表里,那Python肯定找不到Kivy。这时候要么重新安装(用步骤1的python3 -m pip方式),要么手动把路径加到Python的环境变量里(不过更推荐前者)。
3. 针对Ubuntu 16.04的特殊情况
Ubuntu 16.04默认的系统Python3是3.5,你装的3.6.5应该是额外安装的。这时候一定要明确指定用3.6版本的Python和pip来操作:
# 卸载可能装错位置的Kivy python3.6 -m pip uninstall -y kivy # 先升级pip python3.6 -m pip install --upgrade pip # 重新安装Kivy python3.6 -m pip install kivy
然后运行脚本的时候也要明确用python3.6:
python3.6 your_kivy_script.py
4. 排除虚拟环境的干扰
如果你之前用过虚拟环境(比如virtualenv、venv),可能不小心把Kivy装到了某个虚拟环境里,但运行脚本的时候没激活环境。这时候要么激活对应的虚拟环境再跑脚本,要么用上面的全局安装方式重新装一遍。
5. 用最小测试脚本验证
写个最简单的脚本test_kivy.py试试:
import kivy kivy.require('1.11.1') # 换成你实际安装的Kivy版本号 from kivy.app import App from kivy.uix.label import Label class MyApp(App): def build(self): return Label(text='Hello Kivy!') if __name__ == '__main__': MyApp().run()
然后用python3.6 test_kivy.py(或者对应你的Python版本)运行,如果能弹出窗口就没问题了。
内容的提问来源于stack exchange,提问作者G. Thaler

