如何修复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 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或任何语言。