最近升级了服务器系统,从 Debian 11 到了 Debian 12,然后安装 pip 包的时候就发现存在这个问题。
➜ ~ pip3 install torch torchvision torchaudio
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.
根据提示,我们这里换用 pipx
来安装包
首先安装 pipx
sudo apt install pipx
之后把 pip
命令换成 pipx
命令就行
➜ ~ pipx install torch --include-deps
installed package torch 2.0.1, installed using Python 3.11.2
These apps are now globally available
- convert-caffe2-to-onnx
- convert-onnx-to-caffe2
- torchrun
⚠️ Note: '/home/xxx/.local/bin' is not on your PATH environment variable. These apps will not be globally accessible until your PATH is
updated. Run `pipx ensurepath` to automatically add it, or manually modify your PATH in your shell's config file (i.e. ~/.bashrc).
done! ✨ ✨
后面那个 --include-deps
是为了确保依赖也一起安装的。
最后记得添加这一行到 .bashrc
或者 .zshrc
export PATH=$PATH:"/home/xxx/.local/bin"
或者直接执行也一样的
pipx ensurepath