PyPI 是 Python 包索引,可以方便地搜索、安装和管理 Python 包和依赖。但有时候我们希望在内部环境中使用自己的私有包和依赖,这时候就需要搭建 PyPI 私有服务器。
pypiserver 是一个轻量级的 PyPI 服务器,可以方便地搭建 PyPI 私有服务器。下面将介绍如何安装和配置 pypiserver,以及如何上传和管理私有包和依赖。
安装和配置 pypiserver
首先,安装 pypiserver:
pip install pypiserver
接着,在需要搭建 PyPI 私有服务器的目录下,创建一个名为 packages
的文件夹,这里将存放私有包和依赖:
mkdir packages
然后,在该目录下创建一个名为 htpasswd
的文件,用于存放用户名和密码,用于访问私有服务器:
htpasswd -c htpasswd username
接着,启动 pypiserver:
pypi-server -p 8080 -P htpasswd packages/
其中,-p
参数指定端口号,-P
参数指定存放用户名和密码的文件,packages/
是包和依赖的存放目录。
现在,可以通过浏览器访问 http://localhost:8080/simple/
,应该能够看到空的包列表。
上传和管理私有包和依赖
接下来,将介绍如何上传和管理私有包和依赖。
首先,使用 pip
安装 twine
:
pip install twine
然后,创建一个私有包,假设为 mypackage
,并在该包目录下执行:
python setup.py sdist
这将生成一个名为 dist/mypackage-0.0.1.tar.gz
的包文件。
接着,使用 twine
上传包文件:
twine upload --repository-url http://localhost:8080/ --user=username --password=password dist/*
其中,--repository-url
参数指定私有服务器的 URL,--user
和 --password
参数指定访问私有服务器的用户名和密码,dist/*
表示上传 dist
目录下的所有包文件,上传成功后,可以在私有服务器的包列表中看到新上传的包。
如果需要管理私有包和依赖,可以在私有服务器的 packages
目录下手动添加或删除包文件。当添加或删除包文件后,需要重新启动 pypiserver:
pypi-server -p 8080 -P htpasswd packages/
使用私有服务器的包和依赖
最后,将介绍如何使用私有服务器的包和依赖。
首先,需要将私有服务器的 URL 添加到 pip
的配置中:
pip config set global.index-url http://localhost:8080/simple/
然后,可以使用 pip
安装私有包和依赖:
pip install mypackage
这将从私有服务器中安装 mypackage
包。
如果需要安装私有依赖,可以在 requirements.txt
中指定私有服务器的 URL:
-i http://localhost:8080/simple/
mypackage==0.0.1
然后,使用 pip
安装依赖:
pip install -r requirements.txt
这将从私有服务器中安装 mypackage
包和其他依赖。
至此,本文介绍了如何安装和配置 pypiserver,以及如何上传和管理私有包和依赖,以及如何使用私有服务器的包和依赖。希望本文对大家有所帮助。