Debian 模块中的 PyQt5 依赖项
PyQt5 dependency in a module on Debian
我有一个 Python 模块和一个使用 PyQt5 的 __main__。我已经在 Debian Buster 机器上安装了 PyQt5:
apt-get install python3-pyqt5
__main__
程序 运行 如果我执行
python3 mymodule/__main__.py
来自源目录。现在我已经将模块安装到 python:
python3 setup.py install
成功了。 setup.py 列出了对 pyqt5 的依赖:
setup(
# ...
install_requires=['PyQt5'],
entry_points={"gui_scripts": ["mymodule = mymodule.__main__:main"]},
安装程序创建了一个脚本 /usr/local/bin/mymodule
。当我 运行 时,我收到一条错误消息:
pkg_resources.DistributionNotFound: The 'PyQt5' distribution was not found and is required by mymodule
我错过了什么?
编辑:尝试通过 pip 安装 pyqt5,出现以下错误:
seva@sandbox:~$ sudo pip3 install pyqt5
Collecting pyqt5
Using cached https://files.pythonhosted.org/packages/3a/fb/eb51731f2dc7c22d8e1a63ba88fb702727b324c6352183a32f27f73b8116/PyQt5-5.14.1.tar.gz
Installing build dependencies ... done
Complete output from command python setup.py egg_info:
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/usr/lib/python3.7/tokenize.py", line 447, in open
buffer = _builtin_open(filename, 'rb')
FileNotFoundError: [Errno 2] No such file or directory: '/tmp/pip-install-26kj5hrc/pyqt5/setup.py'
----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-install-26kj5hrc/pyqt5/
OS 级别的包管理器被设计为在自身内部是一致的。但它们并不是为了与语言包管理器进行互操作而设计的。 apt-get
-installed python3-pyqt5
可以被其他 Debian 软件包识别但不能被 pip
/setuptools
.
因此,要么将您的包转换为 .deb
(例如,使用 stdeb
),将依赖项设置为 python3-pyqt5
并使用 apt
/[=13 安装它=]/dpkg
。或者你使用 pip
:
安装所有东西
pip install pyqt5
pip install . # to install your package
如果您的依赖项在包中正确声明,后一个命令应该足够了 — pip
将 运行 前者本身。
PS。另外请考虑 virtualenv
将 pip
安装的软件包与系统安装的软件包分开。 virtualenv
本身可以是系统安装的或用户安装的:
apt install python3-virtualenv
或
pip install [--user] virtualenv
我有一个 Python 模块和一个使用 PyQt5 的 __main__。我已经在 Debian Buster 机器上安装了 PyQt5:
apt-get install python3-pyqt5
__main__
程序 运行 如果我执行
python3 mymodule/__main__.py
来自源目录。现在我已经将模块安装到 python:
python3 setup.py install
成功了。 setup.py 列出了对 pyqt5 的依赖:
setup(
# ...
install_requires=['PyQt5'],
entry_points={"gui_scripts": ["mymodule = mymodule.__main__:main"]},
安装程序创建了一个脚本 /usr/local/bin/mymodule
。当我 运行 时,我收到一条错误消息:
pkg_resources.DistributionNotFound: The 'PyQt5' distribution was not found and is required by mymodule
我错过了什么?
编辑:尝试通过 pip 安装 pyqt5,出现以下错误:
seva@sandbox:~$ sudo pip3 install pyqt5
Collecting pyqt5
Using cached https://files.pythonhosted.org/packages/3a/fb/eb51731f2dc7c22d8e1a63ba88fb702727b324c6352183a32f27f73b8116/PyQt5-5.14.1.tar.gz
Installing build dependencies ... done
Complete output from command python setup.py egg_info:
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/usr/lib/python3.7/tokenize.py", line 447, in open
buffer = _builtin_open(filename, 'rb')
FileNotFoundError: [Errno 2] No such file or directory: '/tmp/pip-install-26kj5hrc/pyqt5/setup.py'
----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-install-26kj5hrc/pyqt5/
OS 级别的包管理器被设计为在自身内部是一致的。但它们并不是为了与语言包管理器进行互操作而设计的。 apt-get
-installed python3-pyqt5
可以被其他 Debian 软件包识别但不能被 pip
/setuptools
.
因此,要么将您的包转换为 .deb
(例如,使用 stdeb
),将依赖项设置为 python3-pyqt5
并使用 apt
/[=13 安装它=]/dpkg
。或者你使用 pip
:
pip install pyqt5
pip install . # to install your package
如果您的依赖项在包中正确声明,后一个命令应该足够了 — pip
将 运行 前者本身。
PS。另外请考虑 virtualenv
将 pip
安装的软件包与系统安装的软件包分开。 virtualenv
本身可以是系统安装的或用户安装的:
apt install python3-virtualenv
或
pip install [--user] virtualenv