托管您自己的简单仓库

如果您希望托管您自己的简单仓库[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 服务器缓存对包索引的请求