树莓派3B+ Python3.9无法导入RPi.GPIO模块求助
问题核心原因
系统通过apt安装的python3-rpi.gpio包,和你当前运行的Python 3.9环境不匹配,模块未安装到该解释器的搜索路径下。
apt源提供的
0.6.5~stretch-1版本RPi.GPIO,是为Debian Stretch系统自带的Python 3.5版本适配的,包文件默认安装到系统原生命令/usr/bin/python3对应的site-packages目录下。
你当前使用的Python 3.9.0属于手动编译安装的独立环境,默认安装路径一般为/usr/local/bin/python3.9,其模块搜索路径不会加载系统原生Python3的包目录,因此会触发ModuleNotFoundError: No module named 'RPi'的报错。
Python2环境导入正常,是因为apt安装的python-rpi.gpio包刚好对应Python2.7的模块路径,和当前Python2解释器环境完全匹配。
分步解决操作
- 先确认当前报错的Python3解释器的实际路径:在Python3.9的交互界面执行
import sys; print(sys.executable); print(sys.path),记录解释器的真实执行路径和模块搜索目录,排除调用错解释器的问题。 - 不要复用apt安装的旧版RPi.GPIO包,通过Python3.9自带的pip工具安装适配版本:
- 为Python3.9准备pip环境,执行
<你查到的Python3.9实际路径> -m ensurepip --upgrade - 提前安装编译依赖避免安装报错:
sudo apt-get install build-essential - 执行模块安装命令:
<你查到的Python3.9实际路径> -m pip install rpi.gpio,该操作会把模块直接安装到Python3.9专属的site-packages目录下,不会和系统环境的包产生冲突。
- 为Python3.9准备pip环境,执行
- 安装完成后重新进入Python3.9交互界面,执行
import RPi.GPIO验证导入结果。 - 避坑提示:
- 不要直接使用全局
pip install rpi.gpio命令,避免把包装到系统自带Python3的环境里,导致Python3.9还是找不到模块。 - 不要把apt安装的旧版RPi.GPIO目录通过软链映射到Python3.9的模块路径下,0.6.5版本的代码没有做Python3.9的语法兼容,软链后会触发语法解析错误,提升排查难度。
- 不要直接使用全局
内容的提问来源于stack exchange,提问作者A. McDonald
相关产品推荐
相关产品推荐

