Python包的处理和正确的虚拟环境使用

问题描述 投票:0回答:1

我最近将操作系统更改为 Debian 12。之前,当我想安装一些 python 软件包时,我使用了

pip install <package>
。但现在,我收到此错误消息:

error: externally-managed-environment

× This environment is externally managed
╰─> To install Python packages system-wide, try apt install
    python3-xyz, where xyz is the package you are trying to
    install.

    If you wish to install a non-Debian-packaged Python package,
    create a virtual environment using python3 -m venv path/to/venv.
    Then use path/to/venv/bin/python and path/to/venv/bin/pip. Make
    sure you have python3-full installed.

    If you wish to install a non-Debian packaged Python application,
    it may be easiest to use pipx install xyz, which will manage a
    virtual environment for you. Make sure you have pipx installed.

    See /usr/share/doc/python3.11/README.venv for more information.

note: If you believe this is a mistake, please contact your Python installation or OS distribution provider. You can override this, at the risk of breaking your Python installation or OS, by passing --break-system-packages.
hint: See PEP 668 for the detailed specification.

处理 python 包的最佳方法是什么?现在,如果可能的话,我会在系统范围内安装它们(

apt install -y python3-<package>
),但有时这些软件包在我的存储库中不可用。我读过一些关于 venv 的内容,但我不太理解它。如果我按照使用虚拟环境安装包的步骤操作,则会创建一个名为 .venv 的目录,但我应该在我的 HOME 或每个 python 项目文件夹上创建此目录吗?如果我需要以 root 用户身份执行 python 程序怎么办?会从用户HOME目录中获取虚拟环境吗?

我想学习如何以最好的“健康”方式处理python,就目前而言,我想最好的选择是在系统范围内安装软件包,但是当不可能时,我应该如何处理?使用

--break-system-packages
似乎并不正确。

python python-venv python-packaging
1个回答
0
投票

如果您正在使用一些Python程序(不是开发它们),我建议使用pipx来安装它们。 Pipx 将为您的工具创建一个虚拟环境。

安装pipx:

sudo apt install pipx
pipx ensurepath

及其使用后:

pipx install <package>

已安装软件包的升级是这样完成的:

pipx upgrade-all
© www.soinside.com 2019 - 2024. All rights reserved.