首页 > 解决方案 > 在 ubuntu 18.04 上安装/导入 pyqt5 有困难

问题描述

目标:pyqt5在Ubuntu 18.04下导入python3

我知道这里和其他地方有很多类似问题的答案。我已经尝试了很多,但我没有看到任何与我的情况完全匹配的东西。

从全新安装 Ubuntu 18.04 开始,我尝试了很多方法来让语句import pyqt5在 Python 3.6.9 中成功,这是该发行版上的默认 python3。

他们都没有成功。

在几次尝试中,重新安装 Ubuntu 几次,我让 pip3 遇到 404 下载https://pypi.org/simple/python3-pyqt5/并通过将 URL 粘贴到 Firefox 中确认错误并获得 404。(我还检查了 Firefox 是否可以正常访问 Internet)

但通常我运行的过程似乎表明 pyqt 已成功加载但仍无法在 Python3 中导入它。

我从各种网站尝试过的事情包括:

下面显示了我从重新安装开始所做的更完整的列表。

有关解决方案的任何建议或在我的系统上查看什么?

我上周通过从 Ubuntu.com 下载可执行文件创建了 Ubuntu 18.04.4 的可启动记忆棒。与该版本打包的所有内容似乎都可以正常工作,包括其他情况下的 Python 3.6.9。除了以下步骤,我几乎什么都不做。

sudo apt install python3-pip

pip3 install humanfriendly   (just to ensure that pip3 works for a simply pypi module)
pip3 install --upgrade pip
pip3 install python3-pyqt5
sudo apt-get install pyqt5-dev-tools  (no complaints from pip3 seems to work okay)
sudo apt-get install qttools5-dev-tools   (seems to work)
in python3 
    >>>import pyqt5
    Traceback (most recent call last):
        File "<stdin>", line 1, in <module>
        ModuleNotFoundError: No module named 'pyqt5'

pip3 uninstall pyqt5        (Successfully uninstalled PyQt5-5.14.0)
pip3 install pyqt5 --user   (Successfully installed pyqt5-5.14.1
Try to import in python3 again, same result: "No module named 'pyqt5'"
cd ~/.local/bin
ls 
humanfriendly  pip  pip3  pip3.6  pylupdate5  pyrcc5  pyuic5
(there seems not to be an entry for pyqt5 although there is for some of its stand-alone componentes)

pip3 uninstall pyqt5
ls
humanfriendly  pip  pip3  pip3.6
(what was there went away)

pip3 uninstall pyqt5  (Successfully uninstalled PyQt5-5.14.1)
pip3 install pyqt5 --user (seems to succeed)
try to import in python3 (same error)
pip3 uninstall pyqt5  (Successfully uninstalled PyQt5-5.14.1)

next I tried sudo pip3 uninstall pyqt5
seems to work; not importable in python3; sudo pip3 uninstall

next I created a virtual env, ~/.vents/tevs
activate the venv

pip3 install pyqt5==5.14.0
    Installing collected packages: PyQt5-sip, pyqt5
attempt to import pyqt5 in python3:  fails as before

pip3 uninstall pyqt5
    (Successfully uninstalled PyQt5-5.14.0 after listing thousands of files
     in .venvs/tevs/lib/python3.6/site-packages/PyQt5)

pip3 install python3-pyqt5
    (fails with HTTP Error: 404 Client Error: 
    Not Found for url: https://pypi.org/simple/python3-pyqt5/)

标签: pythonpython-3.xpyqtpyqt5ubuntu-18.04

解决方案


OP注释中应注意几个问题:

  1. 库的名称不一定与如何导入库的名称匹配,另一方面 pip 接受 pyqt5 和 PyQt5 等名称作为等效名称,但是当您导入它时,您应该使用PyQt5, not pyqt5,以便测试您是否已安装您可以执行以下操作:

    • 在控制台上运行:

      $ python3 -c "from PyQt5.Qt import PYQT_VERSION_STR; print(PYQT_VERSION_STR)"
      5.14.1
      
    • 在 python 控制台上运行:

      Python 3.8.1 (default, Jan 22 2020, 06:38:00) 
      [GCC 9.2.0] on linux
      Type "help", "copyright", "credits" or "license" for more information.
      >>> from PyQt5.Qt import PYQT_VERSION_STR
      >>> print(PYQT_VERSION_STR)
      5.14.1
      
  2. python3-pyqt5 是为您的社区编译的 pyqt5 版本提供 ubuntu 存储库的包的名称,该版本通常是非当前版本。所以安装pyqt5有几种方法:

    • 使用 ubuntu 存储库:sudo apt-get install python3-pyqt5
    • 使用 pip:(python3 -m pip pyqt5如果需要,必须使用 sudo)或python3 -m pip install pyqt5 --user(此方法也适用于 virtualenv)

因此我可以得出结论,OP 已成功安装 PyQt5,但未能验证安装是否正确,因此我建议使用 (1) 中指示的内容


推荐阅读