如何推出我自己的pypi?

我想运行我自己的内部pypi服务器,在我的组织内分发蛋。

我find了几个项目,比如:

  • http://pypi.python.org/pypi/EggBasket/
  • http://plone.org/products/plonesoftwarecenter

据我了解,pypi.python.org使用称为奶酪店的软件。

我的问题:

  1. 为什么我不能使用奶酪店? (我找不到它,不知道它是否存在)
  2. 别人怎么解决这个问题呢? (目前我们用腮红 svn分发鸡蛋)

*编辑:这似乎canonical http://wiki.python.org/moin/PyPiImplementations 。 不过,我对反馈感兴趣。

奶酪店的来源可以从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] 

对于轻量级解决scheme,请使用pypiserver 。

有一个名为djangopypi2的djangopypi的分支,你可以从https://github.com/popen2/djangopypi2/得到它,我安装它并为我工作,这个选项是我从约24个替代scheme中select的在最近的search中发现,你可以看到这里的列表:; http : //uyeya.blogspot.com/2013/10/list-of-local-alternatives-of-pypi.html

更新:crate.io已closures,该域现在是完全不同的东西。

一个没有提到的项目是https://crate.io/ ,它似乎非常活跃。 它声称是“下一代Python包装指数”,但它们的库很好地分成几块,似乎欢迎定制和混合到你的目的。

如果您想要更轻的解决scheme,然后部署整个pypi服务器,您可以尝试使用basketweaver生成的服务器索引。

仓库

仓库将是你2017年最好的select。从项目的自述文件:

仓库是下一代Python软件包储存库,旨在取代目前支持PyPI的遗留代码库

您可以使用dockerdocker-compose在本地运行仓库。 有关如何设置的说明,请参阅文档中的入门指南 。

它由Python包装pipe理局(PyPA)维护,与Python核心开发团队成员合作,并有一个https://pypi.org/运行实时版本,它反映了传统PyPI( https: //pypi.python.org/ )。

另一个从这个(老式)名单中失踪:

djangopypi

基于Django,这可能是一个微小的矫枉过正,但我​​喜欢Django的,它使得它非常简单,修改它,以满足您的需要,如果它不满意。

和箱子的源代码是可用的,虽然文件是可以说,最less可以说,不存在:

Crate.Web

这是一个提供Python包索引的Django应用程序。 使用来自https://github.com/crateio的其他一些软件包,以便您可以在没有django的情况下推出自己的版本。;

我特别想到一个静态的,我一直认为应该有一个非常简单的方法直接从我的github / bitbucket公共和私人回购直接探索一些[预configuration]存储库和商店奶酪,只是一个简单的( gunicorn)进程运行。

我遇到了同样的问题, ClueReleaseManager解决了为我托pipe一个内部PyPI服务器/自定义Python存储库的问题。

这回答问题二,我想你已经有了问题的答案。