我在 Ubuntu 20.04 上使用 conda/pip 安装 PyQt5 时遇到了一些困惑

我在 Ubuntu 20.04 上使用 conda/pip 安装 PyQt5 时遇到了一些困惑

语境

我想安装适用于Qt5的在我的 conda 基础环境中,以及一些其他库中。我已经在不同的会话中完成了这项任务。问题是,当我进入 Visual Studio Code 并将我的所有库导入 python 文件时,我的 linter 无法单独解决 PyQt5 中缺少的导入。我已经检查过 IDE 中选择的解释器是 anaconda3 基础环境之一。所以我认为我在 conda 未激活时安装了 PyQt5(因为我已经使用它有一段时间了)。然后我在我的 conda 环境中安装了它,所以现在一切都很好,除了我可能安装了多个 PyQt5 副本,这并不理想。我想了解我实际做了什么以及在我的 Ubuntu 分区中存储了什么,更多是为了获取知识而不是为了恢复一些磁盘空间。

基于 Shell 的磁盘检查

我收集了一些有关我的安装的信息,并在此报告它们,以帮助您了解我的 Ubuntu 安装中的内容。所有后续命令均在基本 conda 环境中执行。

$conda list | grep -e qt5 -e Qt5
pyqt5                     5.15.4                   pypi_0    pypi
pyqt5-qt5                 5.15.2                   pypi_0    pypi
pyqt5-sip                 12.8.1                   pypi_0    pypi

$pip install pyqt5
Requirement already satisfied: pyqt5 in ./anaconda3/lib/python3.8/site-packages (5.15.4)
Requirement already satisfied: PyQt5-Qt5>=5.15 in ./anaconda3/lib/python3.8/site-packages (from pyqt5) (5.15.2)
Requirement already satisfied: PyQt5-sip<13,>=12.8 in ./anaconda3/lib/python3.8/site-packages (from pyqt5) (12.8.1)

$ dpkg --list | grep -e qt5 -e Qt5
ii  libpyside2-dev                              5.14.0-1~exp1ubuntu5                  amd64        Python bindings for Qt5 (development files)
ii  libpyside2-py3-5.14                         5.14.0-1~exp1ubuntu5                  amd64        Python 3 bindings for Qt5 (base files)
ii  libqt5concurrent5:amd64                     5.12.8+dfsg-0ubuntu1                  amd64        Qt 5 concurrent module
ii  libqt5core5a:amd64                          5.12.8+dfsg-0ubuntu1                  amd64        Qt 5 core module
ii  libqt5dbus5:amd64                           5.12.8+dfsg-0ubuntu1                  amd64        Qt 5 D-Bus module
ii  libqt5designer5:amd64                       5.12.8-0ubuntu1                       amd64        Qt 5 designer module
ii  libqt5designercomponents5:amd64             5.12.8-0ubuntu1                       amd64        Qt 5 Designer components module
ii  libqt5gui5:amd64                            5.12.8+dfsg-0ubuntu1                  amd64        Qt 5 GUI module
ii  libqt5help5:amd64                           5.12.8-0ubuntu1                       amd64        Qt 5 help module
ii  libqt5network5:amd64                        5.12.8+dfsg-0ubuntu1                  amd64        Qt 5 network module
ii  libqt5opengl5:amd64                         5.12.8+dfsg-0ubuntu1                  amd64        Qt 5 OpenGL module
ii  libqt5opengl5-dev:amd64                     5.12.8+dfsg-0ubuntu1                  amd64        Qt 5 OpenGL library development files
ii  libqt5positioning5:amd64                    5.12.8+dfsg-0ubuntu1                  amd64        Qt Positioning module
ii  libqt5printsupport5:amd64                   5.12.8+dfsg-0ubuntu1                  amd64        Qt 5 print support module
ii  libqt5qml5:amd64                            5.12.8-0ubuntu1                       amd64        Qt 5 QML module
ii  libqt5quick5:amd64                          5.12.8-0ubuntu1                       amd64        Qt 5 Quick library
ii  libqt5quickparticles5:amd64                 5.12.8-0ubuntu1                       amd64        Qt 5 Quick particles module
ii  libqt5quickshapes5:amd64                    5.12.8-0ubuntu1                       amd64        Qt 5 Quick Shapes module
ii  libqt5quicktest5:amd64                      5.12.8-0ubuntu1                       amd64        Qt 5 Quick Test library
ii  libqt5quickwidgets5:amd64                   5.12.8-0ubuntu1                       amd64        Qt 5 Quick Widgets library
ii  libqt5sensors5:amd64                        5.12.8-0ubuntu1                       amd64        Qt Sensors module
ii  libqt5sql5:amd64                            5.12.8+dfsg-0ubuntu1                  amd64        Qt 5 SQL module
ii  libqt5sql5-sqlite:amd64                     5.12.8+dfsg-0ubuntu1                  amd64        Qt 5 SQLite 3 database driver
ii  libqt5svg5:amd64                            5.12.8-0ubuntu1                       amd64        Qt 5 SVG module
ii  libqt5test5:amd64                           5.12.8+dfsg-0ubuntu1                  amd64        Qt 5 test module
ii  libqt5webchannel5:amd64                     5.12.8-0ubuntu1                       amd64        Web communication library for Qt
ii  libqt5webkit5:amd64                         5.212.0~alpha4-1ubuntu2               amd64        Web content engine library for Qt
ii  libqt5webkit5-dev:amd64                     5.212.0~alpha4-1ubuntu2               amd64        Web content engine library for Qt - development files
ii  libqt5widgets5:amd64                        5.12.8+dfsg-0ubuntu1                  amd64        Qt 5 widgets module
ii  libqt5x11extras5:amd64                      5.12.8-0ubuntu1                       amd64        Qt 5 X11 extras
ii  libqt5xml5:amd64                            5.12.8+dfsg-0ubuntu1                  amd64        Qt 5 XML module
ii  libqwt-qt5-6                                6.1.4-1.1build1                       amd64        Qt widgets library for technical applications (runtime, qt5)
ii  libqwt-qt5-dev                              6.1.4-1.1build1                       amd64        Qt widgets library for technical applications (development, qt5)
ii  pyqt5-dev                                   5.14.1+dfsg-3build1                   all          Development files for PyQt5
ii  python3-pyqt5                               5.14.1+dfsg-3build1                   amd64        Python 3 bindings for Qt5
ii  python3-pyqt5.qtopengl                      5.14.1+dfsg-3build1                   amd64        Python 3 bindings for Qt5's OpenGL module
ii  python3-pyqt5.qtsvg                         5.14.1+dfsg-3build1                   amd64        Python 3 bindings for Qt5's SVG module
ii  python3-pyqt5.qtwebkit                      5.14.1+dfsg-3build1                   amd64        Python 3 bindings for Qt5's WebKit module
ii  python3-pyside2.qtcore                      5.14.0-1~exp1ubuntu5                  amd64        Python bindings for Qt5 core module (Python 3)
ii  python3-pyside2.qtgui                       5.14.0-1~exp1ubuntu5                  amd64        Python bindings for Qt5 Gui module (Python 3)
ii  python3-pyside2.qtsvg                       5.14.0-1~exp1ubuntu5                  amd64        Python bindings for Qt5 Svg module (Python 3)
ii  python3-pyside2.qtwidgets                   5.14.0-1~exp1ubuntu5                  amd64        Python bindings for Qt5 Widgets module (Python 3)
ii  qdoc-qt5                                    5.12.8-0ubuntu1                       amd64        Qt 5 qdoc tool
ii  qhelpgenerator-qt5                          5.12.8-0ubuntu1                       amd64        Qt 5 qhelpgenerator tool
ii  qt5-assistant                               5.12.8-0ubuntu1                       amd64        Qt 5 Assistant
ii  qt5-gtk-platformtheme:amd64                 5.12.8+dfsg-0ubuntu1                  amd64        Qt 5 GTK+ 3 platform theme
ii  qt5-qmake:amd64                             5.12.8+dfsg-0ubuntu1                  amd64        Qt 5 qmake Makefile generator tool
ii  qt5-qmake-bin                               5.12.8+dfsg-0ubuntu1                  amd64        Qt 5 qmake Makefile generator tool — binary file
ii  qt5-qmltooling-plugins:amd64                5.12.8-0ubuntu1                       amd64        Qt 5 qmltooling plugins
ii  qtattributionsscanner-qt5                   5.12.8-0ubuntu1                       amd64        Qt 5 qtattributionsscanner tool

抱歉,这个不太准确grep,但我不太擅长。此外,我怀疑我还有更多 Qt 内容,因为我刚刚发现,我的应用程序列表中有一些 Qt 条目,我不认为它们默认出现在系统中,也不认为它们严格与 python 相关。也许它们在 中列出dpkg --list | grep -e qt5 -e Qt5,但我无法理解。我还附上了部分 shell 历史记录,以防它有助于更​​好地理解我所做的事情:

$ history | grep -e qt5 -e Qt5
 1795  conda install PyQt5
 1796  pip install PyQt5
 1799  pip remove PyQt5
 1800  pip uninstall PyQt5
 1805  sudo apt-get install python3-pyqt5
 1855  conda install PyQt5
 1877  conda install pyqt5
 1881  pip uninstall pyqt5
 1885  conda uninstall PyQt5
 1892  pip install PyQt5
 1938  pip install pyqt5
 1939  pip install PyQt5

我从中删除了所有不必要的命令(例如history)。无论如何,当我在基础 conda 环境中的 Python 无法看到 Qt5 库时,我认为我的历史命令数为 1797-1798(请参阅上一节)

我想要的是

显然,我并没有完全理解自己在做什么,所以我想得到一些见解。我还想更好地了解如何确定 或 中列出的包dpkg实际上conda只是另一个包的一部分,例如上述 的所有实例pyqt5-sip,因为我 100% 确定 从未在我的终端中写过“sip”。

谢谢!

相关内容