树莓派Python2.7.14环境下RPi.GPIO、PIL模块缺失问题求助
解决Python 2.7.14环境下找不到RPi.GPIO和PIL模块的问题
这问题我碰到过好几次——核心原因是你手动安装的Python 2.7.14和树莓派自带的2.7.9是完全独立的运行环境,之前装的模块都默认跑到系统自带的Python环境里去了,所以新环境根本找不到它们。给你几个靠谱的解决办法:
1. 先确认你调用的是正确的Python版本
首先得搞清楚你运行应用时用的是不是自己装的2.7.14:
- 打开终端输入
which python,看输出路径。如果是/usr/bin/python或者/usr/bin/python2.7,那用的还是系统自带的2.7.9;你手动装的2.7.14一般在/usr/local/bin/python2.7这个路径。 - 如果调用错了,要么用绝对路径运行你的应用(比如
/usr/local/bin/python2.7 your_app.py),要么把新Python的路径加到环境变量最前面:export PATH=/usr/local/bin:$PATH(要永久生效的话可以加到~/.bashrc里)。
2. 用对应版本的pip安装模块
系统自带的pip默认绑定的是自带的Python,所以你得给新的2.7.14装专属的pip:
- 先运行这个命令确保新Python有pip:
/usr/local/bin/python2.7 -m ensurepip - 然后用这个pip安装需要的模块:
注意:PIL已经停止维护了,现在官方推荐用它的分支Pillow,所以直接装/usr/local/bin/pip2.7 install RPi.GPIO pillowpillow就可以,代码里的import PIL依然能正常用。
3. 临时方案:手动添加模块路径(不推荐长期用)
如果你不想重新装模块,可以把系统已装模块的路径加到新Python的搜索路径里:
- 先打开系统自带的Python2.7.9,输入以下命令找到模块位置:
import RPi.GPIO print(RPi.GPIO.__file__) # 得到类似 /usr/lib/python2.7/dist-packages/RPi/GPIO/__init__.py import PIL print(PIL.__file__) # 类似路径 - 然后在你的应用脚本最开头加上:
这个方法只是临时救急,长期用还是建议用对应pip装到正确环境里,避免后续出现其他依赖问题。import sys sys.path.append("/usr/lib/python2.7/dist-packages") # 把上面得到的模块所在的父目录加进来
4. 额外注意:安装Pillow可能需要依赖库
如果装Pillow时失败,大概率是缺少编译依赖,先装这些开发库:
sudo apt-get update sudo apt-get install libjpeg-dev zlib1g-dev
然后再重新用对应pip装Pillow。
内容的提问来源于stack exchange,提问作者Rodrigo Vernini
相关产品推荐
相关产品推荐

