在基于Debian的Linux发行版上,pip通常检测apt (在/usr/lib/pythonX/dist-packages中)安装的Python包。但是,这对PyQt5无效(例如,在运行pip list或pip freeze时不显示PyQt5)。有人知道为什么吗?
使用Docker,您可以运行以下步骤来再现问题:
python3-pip和python3-pyqt5:
apt更新apt安装--不安装-推荐python3 3-pip python3 3-pyqt5 5pip会被列出来。python3-requests
apt安装--不安装-建议python3 3-请求
然后跑
pip3列表
再来一次。将列出requests包。发布于 2018-10-08 10:38:21
首先,查看包安装了哪些文件:
dpkg-query -L python3-requests在输出中,您将看到:
/usr/lib/python3/dist-packages/requests-2.18.4.egg-info/PKG-INFO
该文件以以下内容开头:
Metadata-Version: 1.1
Name: requests
Version: 2.18.4python3-pyqt5包不包含此类文件。
我可以想象,有些Debian包是这样的,而另一些包则不包括这些元数据。
Debian指出:(https://wiki.debian.org/Python/FAQ)
我们不希望在.egg中提供“.deb”文件。然而,我们希望提供“鸡蛋元信息”,以便用户可以使用鸡蛋,如果他们愿意的话。Python 2.5默认使用distutils实现这一点。对于基于setuptools的setup.py,您需要将“--单版本-外部管理”选项传递给"setup.py安装“调用。
发布于 2018-10-08 10:58:50
确实,PyQt5没有出现在pip list输出中。相反,pycairo和PyGObject会出现。
如果您执行python3,然后运行import PyQt5,则导入它时不会出现任何错误。我已经在一个带有Ubuntu基本映像的坞容器上检查了它,但是对于Debian来说,它应该是一样的。
root@d6b7f119b352:/# python3
Python 3.6.7rc1 (default, Sep 27 2018, 09:51:25)
[GCC 8.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import PyQt5
>>>或
>>> from PyQt5.QtWidgets import QApplication, QWidget, QLabel
>>>https://stackoverflow.com/questions/52699914
复制相似问题