本文同步发布于字节话云公众号。
前言
工作中会用到一些内部的 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
,接下来就是开发、测试(要考虑在Linux
、macOS
、Windows
的兼容性)和发布到 pypi 上。具体实现其实很简单,就不多做介绍。本文主要介绍 chpip
的安装和用法。
chpip
项目地址: https://github.com/Prodesire/chpip 欢迎 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 源的繁琐。如果你也有类似烦恼,不妨装上它体验一下\~