sudo pip install -r requirements.txt
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.12/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.
您遇到的错误消息表明,您试图安装包的Python环境是由外部管理的,可能是由操作系统或另一个包管理器管理的。这在通过系统包管理器(如Debian系列系统的apt
)管理Python包的环境中很常见。
以下是一些解决方法:
1. 使用虚拟环境
创建和使用虚拟环境是一种常见的管理Python包的方法,不会影响系统范围内的安装。下面是如何操作:
# 创建虚拟环境
python3 -m venv myenv
# 激活虚拟环境
source myenv/bin/activate
# 现在安装依赖项
pip install -r requirements.txt
2. 通过 apt
安装系统包
如果您需要的包在系统仓库中可用,您可以使用 apt
安装它们。例如:
sudo apt update
sudo apt install python3-pip
然后您可以使用 pip
安装所需的包:
pip install -r requirements.txt
3. 使用 pipx
安装非Debian打包的应用程序
如果您需要安装非Debian打包的Python应用程序,可以使用 pipx
。首先,如果您还没有安装 pipx
,请先安装:
sudo apt install pipx
python3 -m pipx ensurepath
然后使用 pipx
安装包:
pipx install <package_name>
4. 覆盖错误(不推荐)
如果您认为这个错误是不正确的,并且您仍然希望继续,可以通过传递 --break-system-packages
标志来覆盖它。然而,这样做可能会破坏您的Python安装或操作系统,因此不推荐。
sudo pip install -r requirements.txt --break-system-packages
总结
使用虚拟环境通常是最安全和最灵活的方法。它允许您管理依赖项,而不影响系统范围的Python安装。如果您有特定的需求需要系统范围的安装,可以考虑使用 apt
或 pipx
。