引入

通常我们 pip 安装的 python 包都是从 https://pypi.python.org/pypi 安装,偶尔国内网速慢的话也可以修改为 https://pypi.doubanio.com/simple 但是遇到一些公司内部的私有包需要管理,搭建自己的 pypi server ,可以简化很多

安装

1
2
3
4
pip install pypiserver
mkdir /data/pypi-package

/usr/local/bin/python3.5 /usr/local/bin/pypi-server -p 28080  --fallback-url https://pypi.doubanio.com/simple /data/pypi-package/

增加上传 package 的用户认证部分

1
2
3
4
5
6
pip install passlib
yum install httpd-tools

htpasswd -sc /PATH/TO/PRIVATEPYPI/.htaccess user_name # 回车后输入用户密码

/usr/local/bin/python3.5 /usr/local/bin/pypi-server -p 28080 -P /root/.htaccess --fallback-url https://pypi.doubanio.com/simple /data/pypi-package/ # 设置密码后使用此方法启动

进程守护

发现可以正常使用,使用 supervisor 进行进程守护,修改如下配置文件后重启 supervisor 这部分即可

1
2
3
4
5
6
7
8
[program:pypiserver]
command=/usr/local/bin/python3.5 /usr/local/bin/pypi-server -p 28080 -P /root/.htaccess --fallback-url https://pypi.doubanio.com/simple /data/pypi-package/
numprocs=4
stdout_logfile=/var/log/pypi_server.log
stderr_logfile=/var/log/pypi_server.log
autostart=true
autorestart=true
startsecs=10

客户端设置上传方法

在用户主目录中增加 .pypirc 文件,文件中配置如下:

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

[yourpypi]
repository:http://YOUR/SEVER/IP:/YOUR/SERVER/PORT
username:your_user_name
password:your_user_password

文件打包并上传

1
python setup.py sdist upload -r yourpypi 

安装

1
pip install --trusted-host your_host --extra-index-url http://your_host:your_port/ package_name