我想运行我自己的内部 PyPI 服务器,以便在我的组织内进行 egg 分发。
我找到了一些项目,例如:
据我了解,pypi.python.org 使用名为 Cheese Shop 的软件。
我的问题:
这看起来很规范:Python Wiki,Python 实现。不过,我对反馈很感兴趣。
我如何推出自己的 PyPI?
对于轻量级解决方案,请使用 pypiserver。
更新:PyPi 现在由 Warehouse 提供支持,它是 Cheese Shop 的替代品。
Cheese Shop 的源代码可以从 https://bitbucket.org/pypa/pypi/src 下载。您链接到的页面上还有一个使用 Apache 作为“哑”Python 包存储库的示例:
# Mount pypi repositories into URI space
Alias /pypi /var/pypi
# /pypi/dev: Redirect for unknown packages (fallback to pypi)
RewriteCond /var/pypi/dev/$1 !-d
RewriteCond /var/pypi/dev/$1 !-f
RewriteRule ^/pypi/dev/([^/]+)/?$ http://pypi.python.org/pypi/$1/ [R,L]
RewriteCond /var/pypi/dev/$1/$2 !-f
RewriteRule ^/pypi/dev/([^/]+)/([^/]+)$ http://pypi.python.org/pypi/$1/$2 [R,L]
# /pypi/stable: Redirect for unknown packages (fallback to pypi)
RewriteCond /var/pypi/stable/$1 !-d
RewriteCond /var/pypi/stable/$1 !-f
RewriteRule ^/pypi/stable/([^/]+)/?$ http://pypi.python.org/pypi/$1/ [R,L]
RewriteCond /var/pypi/stable/$1/$2 !-f
RewriteRule ^/pypi/stable/([^/]+)/([^/]+)$ http://pypi.python.org/pypi/$1/$2 [R,L]
Warehouse 将是您 2017 年最好的选择。来自项目的自述文件:
Warehouse 是下一代 Python 包存储库,旨在取代 目前为 PyPI
提供支持的遗留代码库
...
您可以使用
和docker
在本地运行 Warehouse。看 开始使用 在文档中了解如何设置的说明。docker-compose
它由 Python 打包权威 (PyPA) 维护,他们与 Python 核心开发团队的成员合作,并且有一个 live 版本在 https://pypi.org/ 运行,它镜像了所有内容在旧版 PyPI 中 (https://pypi.python.org/)。
我们正在企业环境中使用它,并且非常满意。它支持复制、私有索引和索引继承。
有一个名为 djangopypi2 的 djangopypi 分支,你可以从 https://github.com/popen2/djangopypi2/ 获取它,我安装了它并为我工作,这个选项是我从大约 24 个列表中选择的我在最近的搜索中找到的替代方案,您可以在这里看到列表:http://uyeya.blogspot.com/2013/10/list-of-local-alternatives-of-pypi.html
更新:crate.io 已关闭,域名现在完全是另一回事了。
一个没有被提及的项目是https://crate.io/,它看起来非常活跃。它声称是“下一代 Python 打包索引”,但他们的存储库很好地分成了几部分,似乎欢迎根据您的目的进行定制和重新混合。
如果您想要比部署整个 PyPI 服务器更轻的解决方案,您可以尝试使用由 basketweaver 生成的服务器索引。
并且板条箱源代码可用,但至少可以说,文档不存在:
它是一个提供 Python 包索引的 Django 应用程序。使用来自 https://github.com/crateio 的其他几个软件包,因此您可以在没有 django 的情况下推出自己的版本。
我特别考虑静态的,我一直认为应该有一种非常简单的方法来直接探索一些[预先配置的]存储库并直接从我的 github/bitbucket 公共和私人存储库购买奶酪,只需一个简单的方法(gunicorn)进程正在运行。