python找不到与pipx一起安装的模块

06odsfpq  于 2023-06-20  发布在  Python
关注(0)|答案(2)|浏览(171)

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'
>>>

我做错了什么?

yqlxgs2m

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的回答也强调了..

njthzxwz

njthzxwz2#

从Python 3.11开始,Debian鼓励用户创建一个单独的Python虚拟环境来安装Python软件包。
因为Debian声明它的Python安装是 * 外部管理的 *,pip(和其他安装程序)将拒绝安装系统范围的软件包。安装只能在虚拟环境或单独的Python安装中进行。这是因为Python包安装程序(如pip)不知道APT管理的包对库和版本的约束。请参阅PEP-668,了解多个安装程序在同一Python安装上运行时可能发生的问题的完整讨论。
因此,最佳的方法是创建一个虚拟环境,比如MyEnv,并在其中安装软件包:

$ mkdir -p $HOME/.venvs  # create a folder for all virtual environments 
$ python3 -m venv $HOME/.venvs/MyEnv  # create MyEnv

这将创建一个包含配置文件pyvenv.cfg的目录$HOME/.venvs/MyEnv,其中包含此虚拟环境的一些详细信息,例如Python可执行文件和Python版本。
验证虚拟环境中的Python版本:

$HOME/.venvs/MyEnv/bin/python --version

创建的虚拟环境的可执行文件位于$HOME/.venvs/MyEnv/bin下。
若要将包安装到虚拟环境中,请使用

$HOME/.venvs/MyEnv/bin/python -m pip install <some-package>

为了“激活”虚拟环境,即将其配置变量添加到shell环境中,使用

source $HOME/.venvs/MyEnv/bin/activate

参考Python的virtualenvpip指南,在https://packaging.python.org/en/latest/guides/installing-using-pip-and-virtual-environments

相关问题