在 Python 开发过程中,私有源常用于内部项目依赖管理,或者加速依赖安装过程。今天我们将介绍如何使用 pypiserver 快速搭建一个本地私有 PyPI 源,并提供如何上传和安装 Python 包的操作步骤。
搭建本地私有源有很多种方案,常见的有:
pypiserver:上手难度最小,使用方便,适合小型项目或者开发环境。
pip2pi:提供了更多的配置选项,适合中小型的私有 PyPI 源。
bandsnatch:适用于企业级源,支持自动同步官方 PyPI 包,适合大规模的包管理需求。
在本文中,我们将重点介绍如何使用 pypiserver 搭建本地源,它因其简单易用而成为开发者的首选。
pypiserver首先,我们需要安装 pypiserver。运行以下命令即可通过 pip 安装:
pip install pypiserver
在本地创建一个文件夹,用于存放我们上传的 Python 包:
mkdir ~/packages
启动 pypiserver 服务:
pypi-server run此时,服务会在 http://localhost:8080 启动,默认使用端口 8080。
在浏览器中访问 http://localhost:8080,可以看到类似以下的页面,证明服务已成功启动。

接下来,我们将准备一些 Python 包并上传到私有源。
进入我们之前创建的包存放目录:
cd ~/packages可以直接从外部源下载所需的 Python 包。例如,下载 simplejson 包:
pip download -i https://pypi.tuna.tsinghua.edu.cn/simple simplejson这将把 simplejson 包下载到当前目录。
我们可以通过 pip search 来搜索本地私有源中的包:
pip search -i http://localhost:8080 simplejson在安装之前,可以检查包是否已安装:
pip show simplejson如果未安装,将会显示类似以下信息:
WARNING: Package(s) not found: simplejson现在我们可以从本地私有源安装包。使用以下命令:
pip install -i http://localhost:8080/simple simplejson输出类似以下内容,表示包已成功安装:
Looking in indexes: http://localhost:8080/simple
Collecting simplejson
Downloading http://localhost:8080/packages/simplejson-3.17.2-cp37-cp37m-win_amd64.whl (73 kB)
|████████████████████████████████| 73 kB ...
Installing collected packages: simplejson
Successfully installed simplejson-3.17.2安装完成后,可以使用 pip show 命令查看已安装包的信息:
pip show simplejson输出类似以下内容:
Name: simplejson
Version: 3.17.2
Summary: Simple, fast, extensible JSON encoder/decoder for Python
Home-page: https://github.com/simplejson/simplejson
Author: Bob Ippolito
Author-email: bob@redivi.com
License: MIT License
Location: d:\python37\lib\site-packages
Requires:
Required-by:如果你需要在其他主机上安装该包,只需要指定你的私有源地址即可。例如:
pip install -i http://10.20.16.254:8080 --trusted-host 10.20.16.254 psutil到此为止,我们已经完成了本地私有 PyPI 源的搭建。通过 pypiserver,你可以快速搭建一个轻量级的私有 PyPI 服务,并管理和安装你自己的 Python 包。
本次搭建的私有源仅适用于开发和小型项目。如果需要搭建企业级的私有源,并且需要定时同步官方源,建议使用 bandsnatch 进行搭建。
希望这篇博客对你搭建私有源有所帮助。如果有任何问题,欢迎留言讨论!
提示:如遇链接失效,请在评论区留言反馈