我在使用 ARM 架构的 Beaglebone 上运行 Debian。该发行版具有 python 3.5,但我的依赖项之一aioserial
需要 3.6。我从源代码构建了 python 3.6 到/opt/python-3.6
目录,并将 bin 文件链接到/usr/local/bin
.现在正在运行python --version
节目 3.6。伟大的。
我的另一个依赖项 PyQT5 不允许我轻松地通过 pip 安装,因此在 ARM 上推荐的方法是使用 apt: apt install python3-pyqt5 python3-pyqt5.qtquick .....
。它安装成功,但运行我的应用程序显示:
ModuleNotFoundError: No module named 'PyQt5'
显然它正在为旧的 python 3.5 安装 pyqt。如何让它为我的定制版本安装 pyqt?
我尝试将符号链接切换/usr/bin/python
为我自定义的符号链接,但这不起作用。我可以将 3.6 指向自定义库目录吗?或者以某种方式将库移动到我的自定义目录?如果是,它们存储在哪里?
答案1
使用:
/opt/python-3.6/bin/pip3 install pyqt5
这是安装 PyPI.org 上列出的任何 Python 包的方法。每个特定的 Python 解释器安装都有其自己独立的包世界。您通过 apt 安装的 pyqt5 仅为与操作系统发行版的 python3 解释器一起使用而构建和安装。
对于需要编译的内容,可能需要先决步骤:确保您的系统具有编译安装的软件包所需的所有库依赖项。在像您这样的 Debian 风格的系统上,获取您自己构建某些东西所需的简单方法是sudo apt-get build-dep python3-pyqt5
- 获取构建所需的一切建造python3-pyqt5 debian 软件包。这很可能是 pip 构建从 pypi.org 下载的 pyqt5 所需的一切。
顺便说一句,当您根据需要构建自己的 Python(不错的选择!)时,我建议使用 3.9 而不是 3.6。始终使用最新版本。
由于您已将 /usr/local/bin/python 符号链接放置到 /opt 安装中,因此我还建议放置 /usr/local/bin/pip3 符号链接。
切勿替换任何已安装和管理的系统包管理器(即:将 /usr/bin/python 路径恢复到原来的位置)。操作系统发行版依赖于它自己的托管 python 来实现自己的包的功能。