如果您升级到 Ubuntu 23.04 并尝试运行pip install,会收到一个错误提示,但这不是一个 bug。
在 Ubuntu 23.04 中,pip install命令无法正常工作,是因为有意识地改变了策略,以避免 Python 包管理器和 Ubuntu 底层的 APT 之间的冲突。Debian 也采取了相同的方法。
基本上,在 Ubuntu 23.04 中,不能在虚拟环境之外运行pip install。如果尝试这样做,会收到到一个类似于「externally managed environment」的错误提示。
externally managed environment
好消息是,有很多解决方法可用,不需要通过强制安装包来覆盖策略更改,这样不会危及您 Ubuntu 23.04 系统的稳定性。
在 Ubuntu 23.04 中安装 Python 应用程序
1. 使用软件源版本
如果需要的 Python 包在 Ubuntu/Debian 软件源中有,可以从软件源安装。例如,sudo apt install python3-foo,其中foo是您需要的包的名称。
如果不确定需要的包是否在软件源中,只需键入python3-,然后按Tab 键即可看到可用的所有内容。
2. 使用 venv 创建虚拟环境
如果您想安装的 Python 包不在 Ubuntu 软件源中,或者想要安装比 Ubuntu 软件源中更新的版本,可以使用 venv 创建虚拟环境。
sudo apt install python3-venv
python3 -m venv .venv/anynamehere
这将在您的主目录中创建一个名为.venv的目录。在里面,可以找到创建的虚拟环境,以及一个复制的 Python 和 pip。您可以使用它们在该环境中安装所需内容。
3. 使用 pipx(推荐)
最后,可以尝试使用 pipx。唯一的「限制」是 pipx 不能与 Python 库一起使用,因此如果需要使用库,则无法使用此选项。但是,如果想要的是一个 Python 应用程序,则使用 pipx 会更加方便。
- pipx 会自动为安装的每个应用程序创建虚拟环境。
- pipx 会自动在.local/bin中创建一个链接,这样就可以像以前一样从命令行运行它们,这样很方便。
在 Ubuntu 上运行以下命令安装 pipx:
sudo apt install pipx
将其添加到 PATH 中(这样就可以全局运行):
pipx ensurepath
然后像这样安装应用程序,其中foo是想要安装的应用程序的名称:
pipx install foo
例如,要安装终端启动页面工具Please,只需运行pipx install please-cli,然后运行please。
在本文中,我们介绍了三种解决 Ubuntu 23.04 中 pip 策略变更的方法,这意味着您不能像在早期版本中那样简单地运行pip install。其中,Pipx 是最简单、最优雅的解决方案,它减少了操作步骤,使您能够专注于安装和运行您喜爱的 Python 应用程序。