当前位置:   article > 正文

树莓派5 pip安装包mqtt 包,报 externally-managed-environment

externally-managed-environment

出现此错误是因为您的环境已根据[PEP 668]标记为“外部管理”(https://peps.python.org/pep-0668/). 这样做是为了防止通过“apt”和“pip”包管理器安装的包之间发生冲突。

  1. error: externally-managed-environment
  2. × This environment is externally managed
  3. ╰─> To install Python packages system-wide, try apt install
  4. python3-xyz, where xyz is the package you are trying to
  5. install.
  6. If you wish to install a non-Debian-packaged Python package,
  7. create a virtual environment using python3 -m venv path/to/venv.
  8. Then use path/to/venv/bin/python and path/to/venv/bin/pip. Make
  9. sure you have python3-full installed.
  10. If you wish to install a non-Debian packaged Python application,
  11. it may be easiest to use pipx install xyz, which will manage a
  12. virtual environment for you. Make sure you have pipx installed.
  13. See /usr/share/doc/python3.11/README.venv for more information.
  14. 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.
  15. hint: See PEP 668 for the detailed specification.

解决方法1:

安装包时加上 --break-system-packages

  1. pip install 包名 --break-system-packages
  2. 例:
  3. pip install -i https://pypi.tuna.tsinghua.edu.cn/simple paho-mqtt --break-system-packages

 解决方法2:

这个问题的原因是开发者希望你用虚拟环境,venv是Python的虚拟环境管理工具,它可以创建独立的Python环境,让不同项目使用不同的Python版本和依赖库,避免版本冲突和依赖冲突问题。使用Python venv可以方便地创建、激活、退出、删除虚拟环境,以及在虚拟环境中安装、升级、卸载包等操作。创建虚拟环境操作如下:

  1. 创建虚拟环境命令:

    python -m venv myenv  # myenv 为要创建的虚拟环境名字(虚拟环境工作目录)
  2. 激活虚拟环境:

    • On Linux/Mac:
      source myenv/bin/activate
    • On Windows:
      myenv\Scripts\activate
  3. 然后再用pip安装:

    pip install -i https://pypi.tuna.tsinghua.edu.cn/simple paho-mqtt

此解决方案创建了一个单独的环境,您可以在其中安装Python包,而不会干扰系统范围的包。

解决方法3:

如果不想用虚拟环境,也不行pip唠叨,那么就删除EXTERNALLY-MANAGED文件,(在Debian 12上是可以的)

sudo rm -rf /usr/lib/python3.11/EXTERNALLY-MANAGED

解决方法4:

使用 pipx,pipx 工具允许你在隔离的虚拟环境中安装和运行 Python 应用,它是一个跨平台的自由开源程序,可以在 Linux、Mac OS 和 Windows 上运行。

1、安装

  1. sudo apt install pipx
  2. pipx ensurepath

2、使用

pipx install 安装包

3、管理

  1. pipx list:列出所有通过pipx安装的工具。
  2. pipx uninstall some-tool:卸载名为some-tool的工具。
  3. pipx upgrade some-tool:升级名为some-tool的工具到最新版本。

问 pipx 与 pip 的区别与联系?

文心一言的回答如下:

pip和pipx都是Python的包管理工具,但它们在功能、使用方式、环境管理以及安装路径等方面存在一些显著的区别。

  1. 功能和使用方式:
  • pip是一个包管理器,主要用于安装Python包和库。使用pip安装包时,你需要使用命令pip install <包名>,然后包将被安装到系统范围的Python环境中。
  • pipx是一个工具管理器,专注于安装和管理Python工具。使用pipx安装工具时,你需要使用命令pipx install <工具名>,然后工具将被安装到独立的虚拟环境中,并自动创建一个可执行的二进制文件。
  1. 环境管理:
  • pip安装的包会被放在Python的系统环境中,这意味着它们对系统的其他Python程序是可见的。
  • pipx则创建独立的虚拟环境来安装和管理工具,这些工具与系统范围的Python环境相隔离。这意味着在一个pipx环境中安装的工具不会干扰或影响其他环境或其他Python程序。
  1. 安装路径:
  • pip安装的包路径是Python环境的一部分,通常是/usr/local/lib/python3.x/site-packages(在Linux和Mac上)或C:\Python3.x\Lib\site-packages(在Windows上)。
  • pipx创建的环境路径位于用户主目录的.local/pipx/venvs下。

pip和pipx的联系在于它们都是为了方便Python开发者管理和安装软件包和工具而设计的工具。pipx在设计和功能上是对pip的一种补充,它提供了更加灵活和隔离的环境管理功能,特别适用于需要安装多个版本或避免环境干扰的场景。

总的来说,pip和pipx各有其特点和适用场景。对于一般的Python包管理需求,pip已经足够使用。而如果你需要更加灵活和隔离的环境管理,或者需要安装多个版本的Python工具,那么pipx将是一个很好的选择。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/天景科技苑/article/detail/884965
推荐阅读
相关标签
  

闽ICP备14008679号