树莓派Pi4通过apt-get为指定Python版本安装python3-pycoral包的问题
我完全理解你的困扰——apt-get确实会严格绑定系统默认的python3版本来安装包,单纯改终端的alias根本影响不到它的安装逻辑。这里给你几个可行的解决方案,按推荐程度排序:
方案一:临时切换系统默认Python版本安装(最稳妥)
apt-get是根据系统/usr/bin/python3软链接指向的版本来决定包安装路径的,所以我们可以用update-alternatives临时切换默认版本,安装完再切回去,避免影响系统其他工具:
先把你的Python3.9和3.11加入备选版本列表:
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.9 1 sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.11 2数字代表优先级,2比1高,所以默认会是3.11,后面我们手动切换即可。
切换默认Python3到3.9:
sudo update-alternatives --config python3执行后会弹出选项列表,输入对应Python3.9的序号回车确认。
现在安装python3-pycoral:
sudo apt-get install python3-pycoral这时候apt会自动把包安装到Python3.9的对应目录下。
安装完成后,一定要切回默认的3.11,避免破坏系统依赖:
sudo update-alternatives --config python3选择对应3.11的序号回车即可。
方案二:手动解压deb包并复制到Python3.9目录
如果不想碰系统默认Python版本,可以直接下载deb包,解压后把文件复制到3.9的site-packages里:
下载python3-pycoral的deb包:
apt-get download python3-pycoral这会在当前目录生成一个类似
python3-pycoral_xxx.deb的文件。创建临时目录解压deb包:
mkdir temp_pycoral dpkg -x python3-pycoral_*.deb temp_pycoral找到Python3.9的site-packages路径:
python3.9 -c "import site; print(site.getsitepackages()[0])"输出的路径比如
/usr/local/lib/python3.9/site-packages/或者/usr/lib/python3.9/site-packages/。复制解压后的pycoral文件到这个路径:
sudo cp -r temp_pycoral/usr/lib/python3/dist-packages/pycoral /path/to/python3.9/site-packages/ sudo cp temp_pycoral/usr/lib/python3/dist-packages/*.egg-info /path/to/python3.9/site-packages/把
/path/to/替换成上一步得到的实际路径。清理临时文件:
rm -rf temp_pycoral python3-pycoral_*.deb
⚠️ 注意:这个方法可能会遇到依赖问题,如果pycoral依赖的其他库没有在Python3.9里安装,可能需要手动用python3.9 -m pip install补上。
额外提示:其实可以试试pip安装
你提到没有pip版本,但pycoral官方是提供对应Python3.9的pip包的,比如针对arm64架构的Pi4,可以直接用:
python3.9 -m pip install pycoral==2.0.0
如果之前安装失败,可能是没指定版本或者架构,不妨试试这个方法,比apt更灵活。
备注:内容来源于stack exchange,提问作者phil_fill




