AnerYubo

搭建本地私有 PyPI 源

2025/12/11
39
1

在 Python 开发过程中,私有源常用于内部项目依赖管理,或者加速依赖安装过程。今天我们将介绍如何使用 pypiserver 快速搭建一个本地私有 PyPI 源,并提供如何上传和安装 Python 包的操作步骤。

工具选择

搭建本地私有源有很多种方案,常见的有:

  • pypiserver:上手难度最小,使用方便,适合小型项目或者开发环境。

  • pip2pi:提供了更多的配置选项,适合中小型的私有 PyPI 源。

  • bandsnatch:适用于企业级源,支持自动同步官方 PyPI 包,适合大规模的包管理需求。

在本文中,我们将重点介绍如何使用 pypiserver 搭建本地源,它因其简单易用而成为开发者的首选。


服务搭建

1. 安装 pypiserver

首先,我们需要安装 pypiserver。运行以下命令即可通过 pip 安装:

pip install pypiserver

2. 创建包路径

在本地创建一个文件夹,用于存放我们上传的 Python 包:

mkdir ~/packages

3. 启动服务

启动 pypiserver 服务:

pypi-server run

此时,服务会在 http://localhost:8080 启动,默认使用端口 8080

4. 查看 Web 页面

在浏览器中访问 http://localhost:8080,可以看到类似以下的页面,证明服务已成功启动。


准备包

接下来,我们将准备一些 Python 包并上传到私有源。

1. 切换到包目录

进入我们之前创建的包存放目录:

cd ~/packages

2. 下载示例包

可以直接从外部源下载所需的 Python 包。例如,下载 simplejson 包:

pip download -i https://pypi.tuna.tsinghua.edu.cn/simple simplejson

这将把 simplejson 包下载到当前目录。

3. 从本地源搜索

我们可以通过 pip search 来搜索本地私有源中的包:

pip search -i http://localhost:8080 simplejson

安装包

1. 安装包前检查

在安装之前,可以检查包是否已安装:

pip show simplejson

如果未安装,将会显示类似以下信息:

WARNING: Package(s) not found: simplejson

2. 安装包

现在我们可以从本地私有源安装包。使用以下命令:

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

3. 安装后验证

安装完成后,可以使用 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 包。


Tip

  • 本次搭建的私有源仅适用于开发和小型项目。如果需要搭建企业级的私有源,并且需要定时同步官方源,建议使用 bandsnatch 进行搭建。


希望这篇博客对你搭建私有源有所帮助。如果有任何问题,欢迎留言讨论!

资源下载

提示:如遇链接失效,请在评论区留言反馈