AberSheeran
Aber Sheeran

pip 安装与脚本安装

起笔自
所属文集: Python-Package
共计 1126 个字符
落笔于

很多著名的库,例如 poetry 虽然提供了 PyPi 包,但它们仍然推荐使用它们自身编写的安装脚本去安装。

这是为什么?

众所周知,使用 pip 命令默认是安装到系统的 python 环境里的。当你安装的包过多,总会遇到依赖冲突的事(如果没遇到,说明你很幸运)——一个库依赖于另一个库的 0.5 版本,而第三个库依赖于 1.2 版本,两个版本大相径庭完全无法兼容。就会导致你必须放弃一个。

而 poetry 等著名库的安装脚本会为你创建好虚拟环境,在虚拟环境中安装。看起来很美好,不过……对于新手而言,譬如我的几个朋友,他们对电脑没那么熟悉,如果你让他找 pip 安装的路径他们还算能勉强搞定。但这种对于他们来说像是黑魔法一样的脚本安装方式,卸载都是一件困难的事情。

其实这个问题的解决办法很简单,不再使用脚本安装。统统用 pipx 去安装。

pipx 是一个专门用于安装命令行工具的命令行工具。当然,折腾它的脚本安装方式也不是十分容易的事——如果你搞不明白 get-poetry.sh 的安装与卸载,那么肯定也对 pipx 的脚本安装与卸载迷迷糊糊的。

但这都不重要。直接使用系统的 pip 命令安装就好了。依赖冲突?除了 pipx 本身以外,其他命令行工具全部用 pipx 管理,这就解决了冲突问题。

pip install -U pipx

pipx 的原理十分简单易懂:在安装命令时,它自动创建一个虚拟环境,并把你需要安装的包安装进去,将包安装后产生的可执行文件暴露在环境变量里。它本身就是使用 Python 编写的,十分适合在在各种需要安装很多发布在 PyPi 的命令行工具的系统上使用。

而接下来这一步,会难倒很多不看程序输出、或者不看程序英文输出的人,尽管它已经在 pipx 安装之后被输出了。

在安装完 pipx 之后,你需要执行 pipx ensurepath 命令来确保 pipx 用以暴露可执行文件的文件夹被包含在环境变量里。注意:执行完这条命令后,你需要关闭控制台并重新启动一个新的,在原本那个控制台里,设置并不会生效。

接下来就可以愉快的使用 pipx 来管理你的命令行程序们了,以下是三个最常用的命令,分别是安装、卸载、升级和列举已安装的包和位置。

pipx install PACKAGE

pipx uninstall PACKAGE

pipx upgrade PACKAGE

pipx list

以下是我自己安装的命令行工具:

pipx install docker-compose
pipx install poetry
pipx install pipenv
pipx install certbot
如果你觉得本文值得,不妨赏杯茶
poetry 使用指北
ContextVars 详解