古之立大事者,不惟有超世之才,亦必有坚忍不拔之志。

使用私有的PyPI仓库源突破网络限制

Python admin 389℃ 0评论

通常我们使用pip安装Python包,默认从官方PyPI仓库下载,而很多公司存在网络隔离环境(无法访问外网),在安装Python扩展包时往往需要从PyPI下载源码解压安装,但是有的时候甚至需要自建包(并不上传官方PyPI,内部使用),这时候就需要搭建私有源来解决。

Python官方提供了PyPI私有源搭建的解决方案说明,主要有以下几种:

当然官方文档也介绍了使用镜像/代理、工具/扩展等方法解决的介绍,但是我们今天只介绍搭建私有源。如上面介绍的多个解决方案,比较主流的是pypiserver,原因在于其轻量易用。

一 使用pypiserver搭建PyPI私有源

在浏览器验证 http://localhost:8080:

查看”http://localhost:8080/packages/

尝试查找某个特定Python库,如simples:

如果需要在连接的时候添加用户名和密码验证,可以使用 htpasswd 和 passlib。

这只是稍作展示,具体使用可要比这个复杂,主要原因是这个服务依赖于我们维护PyPI的离线包,否则就无法下载安装。常见的也是官方推荐的解决方案是使用 bandersnatch,它会定期更新抓取官方镜像。

二 客户端配置和工具包上传

这时候客户端需要更新“~/.pypirc”配置,填写正确的地址(假设为1.1.1.1)和账号密码。以下为内容展示,建议不要在文件中出现注释信息。

有了这些配置,在上传工具包时可以指定到私有源。上传工具包仍然是使用setup.py的register/upload命令,在使用这两个命令是会去“~/.pypirc”配置文件中查找PyPI的配置。你可以通过提供参数指明使用的源是官方的还是私有的,如发布到私有源local中:

二 为pip配置指定PyPI源

上面我们介绍了搭建私有源和打包工具包上传私有源的方法,这里我们讲一下如何为pip配置指定的PyPI源来获取安装包。在日常开发中,我们经常遇到网络卡顿造成安装一个Python扩展包耗时很久的情况,或者我们已经有了一个私有PyPI源如何使用的问题,这时候就需要为pip配置PyPI源啦。

方法很简单,修改pip的配置文件”~/.pip/pip.conf”,没有需要创建,然后修改配置:

如果不想要配置,可以在pip命令中直接指定(只适合临时使用):

如果公司也没有网络隔离场景也没有内部PyPI源,你个人也无意搭建一个,这时候可以使用国内开源的PyPI源。

  • 阿里云 http://mirrors.aliyun.com/pypi/simple/
  • 中国科技大学https://pypi.mirrors.ustc.edu.cn/simple/
  • 豆瓣(douban) http://pypi.douban.com/simple/
  • 清华大学 https://pypi.tuna.tsinghua.edu.cn/simple/

转载请注明:北凉柿子 » 使用私有的PyPI仓库源突破网络限制

喜欢 (0)or分享 (0)
发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址