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


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

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

    1. Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple
    2. Collecting numpy
    3. Downloading https://files.pythonhosted.org/packages/45/b7/de7b8e67f2232c26af57c205aaad29fe17754f793404f59c8a730c7a191a/numpy-1.21.6.zip (10.3MB)
    4. 100% |████████████████████████████████| 10.3MB 51kB/s
    5. Installing build dependencies ... done
    6. Building wheels for collected packages: numpy
    7. 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,再安装相应库即可:

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

    四、注意事项

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

    ModuleNotFoundError: No module named 'serial'

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

    4.1使用虚拟环境解决 

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

    1. # 更换自己的虚拟环境路径
    2. sudo /home/pi/Env/bin/pip install -U pip setuptools

     在systemctl中配置:

    ExecStart=/home/pi/Env/bin/python /home/pi/run.py

    五、总结

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

  • 相关阅读:
    《数论概论》
    Python 文件处理指南:打开、读取、写入、追加、创建和删除文件
    C语言CRC-8 MAXIM格式校验函数
    股东入股可用的出资形式主要有哪些
    ChatGPT说明与介绍与ChatGPT如何实现的
    Node版本管理工具——Nvm
    UI自动化测试(弹出框,多窗口)
    L2-041 插松枝
    路由器二次开发一步一步把工业路由器变成一个高端的可指定出网、节点和链路的路由器,包含详细过程及快捷脚本(五)
    文件下载的其他方法
  • 原文地址:https://blog.csdn.net/monsterk1/article/details/138698286