托管您自己的简单存储库#

如果您希望托管您自己的简单存储库 [1],您可以使用软件包(例如 devpi)或简单地创建正确的目录结构并使用可以提供静态文件并生成自动索引的任何 Web 服务器。

在任何一种情况下,由于您将托管的存储库可能不在用户的默认存储库中,因此您应在项目的说明中指导他们在安装程序中进行适当配置。例如,使用 pip

python3 -m pip install --extra-index-url https://python.example.com/ foobar
py -m pip install --extra-index-url https://python.example.com/ foobar

此外,强烈建议您使用有效的 HTTPS 提供您的存储库。目前,用户安装的安全取决于所有存储库使用有效的 HTTPS 设置。

“手动”存储库#

目录布局相当简单,在根目录中,您需要为每个项目创建一个目录。此目录应为项目的规范化名称。在每个目录中,只需放置每个可下载文件即可。如果您有项目“Foo”(版本 1.0 和 2.0)和“bar”(版本 0.1),您最终应该得到一个类似于

.
├── bar
│   └── bar-0.1.tar.gz
└── foo
    ├── Foo-1.0.tar.gz
    └── Foo-2.0.tar.gz

一旦您有了此布局,只需配置您的 Web 服务器以启用自动索引来提供根目录。对于使用 Twisted 中内置 Web 服务器的示例,您只需运行 twistd -n web --path .,然后指导用户将 URL 添加到其安装程序的配置中。

现有项目#

项目

包上传

PyPI 故障转移 [2]

其他说明

devpi

具有继承、同步、复制、故障转移;镜像的多重索引

simpleindex

pypiserver

pypiprivate

PyPI Cloud

未维护;还缓存代理;身份验证、授权

pywharf

未维护;在 GitHub 中提供文件

Pulp-python

还镜像、代理;Pulp 的插件

pip2pi

还镜像;手动同步

dumb-pypi

不是服务器,而是静态文件站点生成器

http.server

标准库

Apache

使用 mod_rewritemod_cache_disk,您可以通过 Apache 服务器缓存对包索引的请求