以下为使用pypiserver来配置一个简单PyPi服务器的步骤,可以用于在组织内部进行Python package的部署。
安装
$ pip install pypiserver
服务器配置
# 创建目录,存放package。
$ mkdir ~/packages
# 安装htpasswd
$ sudo apt-get update
$ sudo apt-get install apache2-utils
# 生成密钥文件
$ htpasswd -sc htpasswd.txt {your_password}
服务器启动
# 这里只简单运行一个server,监听8080端口。可以使用supervisor来管理server进程。
# -P 添加支持用户认证。
$ pypi-server -p 8080 -P ~/htpasswd.txt ~/packages &
客户端配置
$ vi ~/.pip/pip.conf
[global]
# pip在主server搜不到package时,使用该url搜索。
extra-index-url = http://{your_server}:8080/
# 防止pip报不支持http错误。
trusted-host = {your_server}
$ vi ~/.pypirc
[distutils]
index-servers =
pypi
local
[pypi]
username:<your_pypi_username>
password:<your_pypi_passwd>
[local]
# 上传服务器认证用到该配置。
repository: http://{your_server}:8080
username: {your_user_name}
password: {your_password}
上传到服务器
# sdist: build package. upload: upload to local pypi server.
$ python setup.py sdist upload -r local
通过pip安装package
$ pip install -U {your_package}