是时候用 chpip 管理 pip 源了

892 阅读2分钟

本文同步发布于字节话云公众号。

前言

工作中会用到一些内部的 Python 包,自然就需要将 pip 源设置为内部 pypi 服务的 URL。但拿着同一台笔记本回到家中时,要么需要开启 VPN 连接到公司内网,要么需要将 pip 源设置为国内镜像源。

设置 pip 源虽然能用 pip config set global.index-url https://mirrors.ustc.edu.cn/pypi/web/simple 这样一条命令搞定,但 index-url 总是记不住需要去查就感觉很麻烦。如果能有个命令能非常方便的切换不就很爽了吗?

设计思路

我希望这个命令能具备以下能力:

  • 可以设置具有别名的 pip 源。我需要管理多个 pip 源,每个源都要有别名,这样在使用的时候可以通过别名来指定。
  • 可以根据别名切换 pip 源。当想用某个 pip 源时,只需通过别名来设置即可。毕竟 URL 难记,但名字不难记。
  • 可以什么都不指定切换到上一次的 pip 源。如果我最常用两个 pip 源(比方说公司内网和中科大的 pip 源),我希望简单输入个命令就能快速切换到上一次的 pip 源。
  • 能看到当前使用哪个 pip 源。

想好了这个命令的功能,不如就叫它 chpip ,表示 change pip ,接下来就是开发、测试(要考虑在LinuxmacOSWindows的兼容性)和发布到 pypi 上。具体实现其实很简单,就不多做介绍。本文主要介绍 chpip 的安装和用法。

chpip 项目地址: github.com/Prodesire/c… 欢迎 Star。

安装 chpip

安装 chpip 非常简单:

$ pip install chpip

使用 chpip

设置 pip 源

使用 chpip set 命令设置 pip 源,其中 -n 指定名称,-i 指定源的 URL:

$ chpip set -n ustc -i https://mirrors.ustc.edu.cn/pypi/web/simple
Set Python package index with name `ustc` successful.

如果需要管理多个 pip 源,可以多次调用 chpip set 命令以设置不同名称的 pip 源。

切换 pip 源

使用 chpip 命令切换成上一次的 pip 源。如果是首次运行 chpip set 后进行切换,则切换成设置的 pip 源。示例如下:

$ chpip
Change Python package index to `ustc` successful.
$ chpip
Change Python package index to `default` successful.

通过 -n 选项可以切换到指定名称的 pip 源:

$ chpip -n ustc
Change Python package index to `ustc` successful.

查看 pip 源

使用 chpip show 命令查看所有的 pip 源,和当前使用的 pip 源(前头会有 *):

$ chpip show
  default (https://pypi.org/simple)
* ustc (https://mirrors.ustc.edu.cn/pypi/web/simple)

最后

有了 chpip ,记性不好的我终于可以告别现场查 pip 源的繁琐。如果你也有类似烦恼,不妨装上它体验一下~