如何修复 Linux 上的 pip“外部管理环境”错误

在Ubuntu 23.04和Fedora 38上解决Python pip“外部管理环境”错误

如果您是Python的常用用户,并且最近转移到了Ubuntu 23.04或Fedora 38等版本,那么在使用Python包管理器pip安装软件包时,您很可能会遇到“外部管理环境”的错误提示。

这个错误可能会让人感到沮丧和非常意外,因为在旧版本的Ubuntu、Fedora和其他发行版中,这种情况从未发生过。让我们深入了解导致这个错误的根本原因,以及如何迅速地解决它。

“外部管理环境”错误发生的原因

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

这样做是为了避免发行版的包管理器与Python包管理工具之间产生冲突。您可以在官方PEP-668文档中了解更多详细信息。如果您想恢复或覆盖此机制,有三种方法可以尝试。

1. 删除“外部管理”文件

这是解决pip“外部管理”错误最直接的方法。您需要做的就是导航到/usr/lib/python3.xx目录,并删除其中的EXTERNALLY-MANAGED文件。以下是执行此操作的命令:

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

这便是解决此错误所需的全部操作。如果您选择恢复此机制,可以使用touch命令再次创建相同的文件:

sudo touch EXTERNALLY-MANAGED

现在,您应该能够顺利地使用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调用每个软件包。

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

在Ubuntu/Debian衍生版本上:

sudo apt-get install pipx

在基于Arch的系统上:

sudo pacman -S pipx

在Fedora/CentOS/RHEL上:

sudo dnf install pipx

安装pipx后,像使用pip安装软件包一样使用它。这是一个示例命令:

pipx install openai

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

现在您知道如何修复“外部管理”错误了

在修复“外部管理环境”错误后,您应该能够继续处理您的项目或练习Python编程。如果您专注于后者,您可能想了解学习编程的不同游戏化方法,这将帮助您以实践和有益的方式更快地学习Python或任何其他编程语言。