在python项目中,需要引入第三方的包,可以通过pip很简单的引入;但是有个问题,公司内部的包,也不能发布到pypi仓库吧,所以搭建自己的私服就很有必要了,下面介绍一下基于PypiServer搭建私服的教程

I. 搭建教程

1. 安装方式

首先确认我们的环境时Centos,python版本为3.7

安装命令比较简单,如下

1
2
3
4
pip install pypiserver
# 下面指定python包存储的路径
cd ~/
mkdir -p python-repository/packages

上面完成之后,就可以开启私服了

1
pypi-server -p 8080 -P . -a . ~/python-repository/packages

上面的 -P . -a . 表示我们开启的私服,不要求安全校验,可以直接下载和上传包

2. 安全校验

上面的没有加安全限制,实际场景可能就不太合适了,如果我们要加上用户名/密码限制,可以如下配置

安装 htpasswd

1
2
pip install passlib
yum -y install httpd-tools

生成密码文件: 用户名+密码= user/pwd123456

1
htpasswd -sc htpasswd.txt user

上面执行之后,会提示输入密码,完成之后,就over了

接下来,我们启动私服,需要修改一下启动命令,下面-a list表示上传,下载,查看包都需要校验

1
pypi-server -P htpasswd.txt -a list -p 8888 ~/python-repository/packages

3. 使用说明

前面的私服算是搭建完成了,接下来就是使用姿势了,对我们而言,需要关注的无非安装和发布两个操作了

发布包

首先设置配置文件,vim ~/.pypirc

1
2
3
4
5
6
7
8
[distutils]
index-servers =
local

[local]
repository: http://127.0.0.1:8888
username: user
password: pwd123456

然后到需要上传的项目下,执行下面的命令即可

1
python3.7 setup.py sdist upload -r local

安装包

我们通过pip进行包安装,默认是从pypi.org下载包,所以需要额外设置下从私服下包

设置配置文件: vim ~/.pip/pip.conf

1
2
3
[global]
extra-index-url = http://user:pwd123456@127.0.0.1:8888
trusted-host = 127.0.0.1

其中 extra-index-url 的value 前面是用户名:密码,注意走的是http协议,因此需要在下面配置上信任host

上面配置完毕之后,下载包就可以和之前的操作一样了

1
pip3.7 install demoPackage==1.0.0

II. 其他

1. 一灰灰Bloghttps://liuyueyi.github.io/hexblog

一灰灰的个人博客,记录所有学习和工作中的博文,欢迎大家前去逛逛

2. 声明

尽信书则不如,已上内容,纯属一家之言,因个人能力有限,难免有疏漏和错误之处,如发现bug或者有更好的建议,欢迎批评指正,不吝感激

3. 扫描关注

一灰灰blog

QrCode

知识星球

goals