赞
踩
出现此错误是因为您的环境已根据[PEP 668]标记为“外部管理”(https://peps.python.org/pep-0668/). 这样做是为了防止通过“apt”和“pip”包管理器安装的包之间发生冲突。
- 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.
在安装包时加上 --break-system-packages
- pip install 包名 --break-system-packages
- 例:
- pip install -i https://pypi.tuna.tsinghua.edu.cn/simple paho-mqtt --break-system-packages
这个问题的原因是开发者希望你用虚拟环境,venv是Python的虚拟环境管理工具,它可以创建独立的Python环境,让不同项目使用不同的Python版本和依赖库,避免版本冲突和依赖冲突问题。使用Python venv可以方便地创建、激活、退出、删除虚拟环境,以及在虚拟环境中安装、升级、卸载包等操作。创建虚拟环境操作如下:
创建虚拟环境命令:
python -m venv myenv # myenv 为要创建的虚拟环境名字(虚拟环境工作目录)
激活虚拟环境:
source myenv/bin/activate
myenv\Scripts\activate
然后再用pip安装:
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple paho-mqtt
此解决方案创建了一个单独的环境,您可以在其中安装Python包,而不会干扰系统范围的包。
如果不想用虚拟环境,也不行pip唠叨,那么就删除EXTERNALLY-MANAGED文件,(在Debian 12上是可以的)
sudo rm -rf /usr/lib/python3.11/EXTERNALLY-MANAGED
使用 pipx,pipx 工具允许你在隔离的虚拟环境中安装和运行 Python 应用,它是一个跨平台的自由开源程序,可以在 Linux、Mac OS 和 Windows 上运行。
1、安装
- sudo apt install pipx
- pipx ensurepath
2、使用
pipx install 安装包
3、管理
pipx list
:列出所有通过pipx安装的工具。pipx uninstall some-tool
:卸载名为some-tool
的工具。pipx upgrade some-tool
:升级名为some-tool
的工具到最新版本。问 pipx 与 pip 的区别与联系?
文心一言的回答如下:
pip和pipx都是Python的包管理工具,但它们在功能、使用方式、环境管理以及安装路径等方面存在一些显著的区别。
pip install <包名>
,然后包将被安装到系统范围的Python环境中。pipx install <工具名>
,然后工具将被安装到独立的虚拟环境中,并自动创建一个可执行的二进制文件。/usr/local/lib/python3.x/site-packages
(在Linux和Mac上)或C:\Python3.x\Lib\site-packages
(在Windows上)。.local/pipx/venvs
下。pip和pipx的联系在于它们都是为了方便Python开发者管理和安装软件包和工具而设计的工具。pipx在设计和功能上是对pip的一种补充,它提供了更加灵活和隔离的环境管理功能,特别适用于需要安装多个版本或避免环境干扰的场景。
总的来说,pip和pipx各有其特点和适用场景。对于一般的Python包管理需求,pip已经足够使用。而如果你需要更加灵活和隔离的环境管理,或者需要安装多个版本的Python工具,那么pipx将是一个很好的选择。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。