树莓派、ubuntu低版本python3安装库

如果遇到树莓派中自带低版本python3,又不想额外去安装python3时,可能会遇到版本过低,无法安装库的情况,以下用我实际情况举例解决方案。

本次遇到的问题是树莓派低版本中,python3为3.7.3,需要安装numpy,出现卡在以下内容的情况:

复制代码
Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple
Collecting numpy
  Downloading https://files.pythonhosted.org/packages/45/b7/de7b8e67f2232c26af57c205aaad29fe17754f793404f59c8a730c7a191a/numpy-1.21.6.zip (10.3MB)
    100% |████████████████████████████████| 10.3MB 51kB/s 
  Installing build dependencies ... done
Building wheels for collected packages: numpy
  Running setup.py bdist_wheel for numpy ... \

一、升级软件包管理

复制代码
sudo apt-get update

sudo apt-get upgrade

二、安装pip

树莓派中不默认安装pip,需要额外安装:

复制代码
sudo apt-get install python3-pip

也可以额外再装一个虚拟环境来进行python的虚拟环境创建:

复制代码
sudo apt-get install python3-venv

三、升级setuptools

复制代码
sudo pip3 install -U pip setuptools 

解决的关键就在于升级一下setuptools,再安装相应库即可:

bash 复制代码
pi@raspberrypi:~ $ pip3 install numpy
WARNING: pip is being invoked by an old script wrapper. This will fail in a future version of pip.
Please see https://github.com/pypa/pip/issues/5599 for advice on fixing the underlying issue.
To avoid this problem you can invoke Python with '-m pip' instead of running pip directly.
Defaulting to user installation because normal site-packages is not writeable
Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple
Collecting numpy
  Downloading numpy-1.21.6-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.metadata (2.1 kB)
Downloading numpy-1.21.6-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (13.0 MB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 13.0/13.0 MB 6.5 MB/s eta 0:00:00
Installing collected packages: numpy
  WARNING: The scripts f2py, f2py3 and f2py3.7 are installed in '/home/pi/.local/bin' which is not on PATH.
  Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
Successfully installed numpy-1.21.6

四、注意事项

如果使用systemctl执行应用,由于用的是root用户来执行,而不是用pi,因此会发现安装的库无法引用,例如:

python 复制代码
ModuleNotFoundError: No module named 'serial'

这是由于在pi用户下安装的python3-pip在/home/pi/.local进行配置,因此root用户下无法获取到/home/pi/.local,而是使用的是/root/.local的内容。

4.1使用虚拟环境解决

使用虚拟环境可以解决上面的问题,但是在虚拟环境中安装numpy还会遇到升级setuptools的问题:

python 复制代码
# 更换自己的虚拟环境路径
sudo /home/pi/Env/bin/pip install -U pip setuptools 

在systemctl中配置:

python 复制代码
ExecStart=/home/pi/Env/bin/python /home/pi/run.py

五、总结

安装版本较低的python3的库时,很多东西还是需要升级一下,不然会遇到不知名的情况,网上资料还少。

相关推荐
BK贝壳5 小时前
亿级用户签到位图选型复盘:用 bool-hybrid-array 扛冷启动打卡,也把它和 Roaring/Redis 的边界测清楚了
数据结构·python·性能优化·numpy
2601_966949656 小时前
如何根据研究的起止时间截取分钟级行情?Python 实战与 QuantDash 数据处理指南
开发语言·python·pandas·量化交易·1024程序员节·股票数据·quantdash
readhere10 小时前
从ZYNQ7000开发板,学会启动嵌入式Linux系统——入门学习:EBAZ4205篇目录
linux·启动·嵌入式linux·zynq7000·ebaz4205
在世修行10 小时前
智学文枢:页面切换与跨页数据预填
python·桌面应用·signal·1024程序员节·pyside·跨页跳转·状态预填
2601_9628857211 小时前
如何用 Python 把 K 线重采样成任意周期?
开发语言·python
打工仔折腾 AI11 小时前
在 Ubuntu ARM64 部署 Q1 V3.0 MuJoCo 模型:加载、单步推理与执行器响应解析
linux·运维·人工智能·python·深度学习·ubuntu·性能优化
‎ദ്ദിᵔ.˛.ᵔ₎11 小时前
关于Linux 线程局部存储的认识
linux·运维
信誓旦旦的程序猿12 小时前
【Python量化实战宝典 #21】北向资金跟随手册:聪明钱择时信号(Python 可跑)
python·1024程序员节·股票数据api·股票数据api接口·股票api数据接口·股票量化数据api·股票量化数据接口
严谨的麻辣烫12 小时前
静态 ISP 代理请求超时怎么排查?Python 与 curl 实战
python·http·requests·1024程序员节·网络排障
小小de风呀13 小时前
de风——【从零开始学习Linux】(九):进程基础 —— 从冯诺依曼体系到 fork 创建进程
linux·学习