记一次公司内部搭建pypi私有服务器

需求

  • 公司内部python接口封装、web PO模型封装等,后续需要单独打包,形成统一形式,降低代码耦合,并且这些打包文件不能上传到Pypi官方服务器,所以需要单独搭建私有Pypi服务器,仅公司内部使用

需求详解

  • 私有Pypi服务器必须具备以下两点功能:
    • 可以通过twine upload的形式上传新打包好的python库
    • 可以通过pip install的形式下载服务器上现有的python库
  • 不需要具备的功能:
    • 同步Pypi官方源(如果同步官方源的话,会大量消耗服务器存储资源,如果需要下载官方源的库,可以通过终端修改为国内源的方式解决)

解决方案

  • 调研发现,pypiserver模块可以满足现有需求

搭建方式

  • pypiserver是封装好的一个私有Pypi服务器,直接安装启动即可实现服务,但是需要一些额外配置,下面具体描述

下载安装

  • 执行命令pip install pypiserver即可下载

运行

  • 服务器内创建一个文件夹,用于存放python库:mkdir pypi_packages
  • 运行服务:pypi-server run -p 8080 ./pypi_packages 服务端口号即为设定的8080端口

上传设定

如果只是运行起来,是无法直接向服务器内上传打包好的python库的,如果要实现流水线打包上传,需要执行以下操作

  • 上传身份验证
    • 通过htpasswd命令生成验证文件:htpasswd -c ./htpasswd pypiuser,然后输入校验密码
    • 如果命令报错,则需要安装该命令模块:yum install httpd-tools
  • 服务中加入上传身份校验
    • 安装Python密码校验库:pip install passlib
    • 执行命令:pypi-server -p 8080 --passwords ./htpasswd packages/ 即可加入身份校验

pip下载配置

上述只是将Pypi Server搭建完成了,但是本地pip install安装还是有些问题,需要执行以下配置

  • 用户根目录创建.pip目录,并在目录内创建pip.conf配置文件
  • pip.conf配置文件中,写入以下内容,保存
[global]
index-url = http://your_pypiserver_ip:port/simple/
trusted-host = your_pypiserver_ip
  • 其中your_pypiserver_ip为当前Pypi私有服务器IP,或公司内部解析到IP上的域名

搭建完成

至此,一个私有的服务就搭建完成了,即可使用 yum install 实现下载。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值