在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或任何其他编程语言。