一 问题描述
在Linux操作系统中,通过终端的命令pip install package-name
或pip3 install package-name
来下载python第三方库可能会出现以下报错:
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.
hint: See PEP 668 for the detailed specification.
二 解决方法
仔细阅读报错信息,会发现
× 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.
中强调尝试用apt install python3-xyz
命令安装python第三方库.
于是,解决方法为:
pip3 install package-name
–>>转变为
sudo apt-get install python3-package-name
重要提示:一些python版本默认集成的第三方库可能没有被Linux环境下的python版本集成,而且这个没有被默认集成的第三方库的名称可能与标准的第三方库的名称不同,如tkinter库,它在Windows环境下的python版本默认集成,但在Linux环境下通常没有被默认集成,而需要通过sudo apt-get install python3-tk
命令来下载,而不是通过sudo apt-get install python3-tkinter
命令来下载
三 示例
如果我要安装pandas库,若使用pip命令:
pip3 install pandas
会出现报错:
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.
hint: See PEP 668 for the detailed specification.
若使用apt命令:
sudo apt-get install python3-pandas
则会出现以下成功提示:(省略部分输出)
正在读取软件包列表... 完成
正在分析软件包的依赖关系树... 完成
正在读取状态信息... 完成
下列软件包是自动安装的并且现在不需要了:
hplip-data libhpmud0 libsane-hpaio printer-driver-hpcups
printer-driver-postscript-hp python3-pexpect python3-ptyprocess
python3-software-properties ubuntu-advantage-desktop-daemon
unattended-upgrades
使用'sudo apt autoremove'来卸载它(它们)。