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

出现此错误是因为您的环境已根据[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.

解决方法1:

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

pip install 包名 --break-system-packages
例:
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、安装

sudo apt install pipx
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将是一个很好的选择。

  • 27
    点赞
  • 61
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值