如何修复Linux上的pip "externally—managed—environment"错误

如果您经常使用Python,最近又改用Ubuntu 23.04或Fedora版本38,那么在使用Python包管理器pip安装包时,很可能会遇到“外部管理环境”错误。

这可能是令人沮丧和相当令人惊讶的,因为这个错误永远不会出现在旧版本的Ubuntu,Fedora和其他发行版中。让我们来了解到底是什么导致了这个错误,以及如何快速修复它。

为什么会出现“外部管理的环境”错误

所有Linux发行版的最新版本都采用了PEP-668中定义的标准。这些更改确保了默认情况下不会在全局环境中安装PIP包。

这是为了避免发行版的包管理器和Python包管理工具之间的冲突而实现的。您可以在PEP-668官方文档中了解详细信息。如果您希望恢复或覆盖此机制,您可以采取三种方法。

1.删除"外部保护"文件

这是对pip "externaly—managed"错误的最简单的修复。您所要做的就是导航到/usr/lib/python3.xx,并删除目录中的EXTERNALLY—EXCEED文件。以下是这样做的命令:

cd/usr/lib/python3.11sudo rm外部环境 

这就是修复错误所需做的全部工作。如果您选择恢复此机制,请使用触摸命令再次创建相同的文件:

sudo touch户外 

现在,您应该可以使用pip或pip3无缝地安装软件包了。

2.使用虚拟环境安装pip包

您可以采取的另一种方法是为Python项目使用虚拟环境。虚拟环境是将程序特定包与操作系统隔离的一种很好的方式,还允许您整齐地组织项目。

以下是如何使用pip创建虚拟环境和安装包:

  • 首先,创建虚拟环境:
    python3—m venv venv 
  • 使用SOURCE命令将激活文件放入bin目录中:
    source venv/bin/activate 
  • 您的shell提示符应该用虚拟环境名称更新。现在,您可以安装任何您想要的Python包。

    正如你所看到的,openai Python包一开始无法安装,但在创建并切换到虚拟环境后,它被无障碍地安装。

    3.使用pipx安装Python软件包

    pipx是一个用于在虚拟和隔离环境中安装Python包的实用程序。它可以自动执行一些步骤,例如为每个包创建虚拟环境,并在. local/bin文件夹中创建指向包的符号链接,这样你就可以随时从shell调用每个包。

    使用PIPEX安装包可以帮助您避免在虚拟环境中安装包时出现“外部管理的环境”错误。要使用PIPEX,首先使用您的发行版的默认包管理器安装它。

    关于Ubuntu/Debian衍生品:

    sudo apt—get install pipx 

    关于Arch—based系统:

    sudo pacman—S pipx 

    在Fedora/CentOS/RHEL上:

    sudo dnf install pipx 

    一旦安装了pipx,就像使用pip安装软件包一样使用它。下面是一个示例命令:

    pipx install openai 

    要了解更多关于pipx的信息,可以使用man命令参考它的手册页。

    现在你知道如何修复"外部管理"错误

    修复了“externaly—managed—environment”错误后,您应该能够继续处理您的项目或练习一般的Python编程。如果你专注于后者,你可能想看看学习编程的不同游戏化方式,这些方式将帮助你以亲身实践和有益的方式更快地学习Python或任何语言。