Debain stable希望我使用pipx安装Python模块。我也是
$ pipx install auditwheel
$ pipx ensurepath
$ python3 -m pipx ensurepath
$ python3
Python 3.11.2 (main, Mar 13 2023, 12:18:29) [GCC 12.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import auditwheel
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'auditwheel'
>>>
我做错了什么?
2条答案
按热度按时间yqlxgs2m1#
Debian文档https://www.debian.org/releases/bookworm/amd64/release-notes/ch-information.en.html#python3-pep-668
如果您需要安装未在Debian中打包的Python应用程序(或版本),我们建议您使用pipx(在pipx Debian包中)安装它。pipx将设置一个与其他应用程序和系统Python模块隔离的环境,并将应用程序及其依赖项安装到其中。
重点是,文档确实谈到了应用程序,并且在该段下的第二个段落指向将软件包安装到虚拟环境;
如果您需要安装未在Debian中打包的Python库模块(或版本),我们建议您尽可能将其安装到虚拟环境中。您可以使用venv Python stdlib模块(在python3-venv Debian包中)或virtualenv Python第三方工具(在virtualenv Debian包中)创建virtualenv。例如,不运行pip install --user foo,而是运行:mkdir -p ~/.venvs && python3 -m venv ~/.venvs/foo && ~/.venvs/foo/bin/python -m pip install foo将其安装在专用的virtualenv中。
对此,@AlQuemist的回答也强调了..
njthzxwz2#
从Python 3.11开始,Debian鼓励用户创建一个单独的Python虚拟环境来安装Python软件包。
因为Debian声明它的Python安装是 * 外部管理的 *,
pip
(和其他安装程序)将拒绝安装系统范围的软件包。安装只能在虚拟环境或单独的Python安装中进行。这是因为Python包安装程序(如pip
)不知道APT管理的包对库和版本的约束。请参阅PEP-668,了解多个安装程序在同一Python安装上运行时可能发生的问题的完整讨论。因此,最佳的方法是创建一个虚拟环境,比如
MyEnv
,并在其中安装软件包:这将创建一个包含配置文件
pyvenv.cfg
的目录$HOME/.venvs/MyEnv
,其中包含此虚拟环境的一些详细信息,例如Python可执行文件和Python版本。验证虚拟环境中的Python版本:
创建的虚拟环境的可执行文件位于
$HOME/.venvs/MyEnv/bin
下。若要将包安装到虚拟环境中,请使用
为了“激活”虚拟环境,即将其配置变量添加到shell环境中,使用
参考Python的
virtualenv
和pip
指南,在https://packaging.python.org/en/latest/guides/installing-using-pip-and-virtual-environments。