如何推出我自己的pypi?
我想运行我自己的内部pypi服务器,在我的组织内分发蛋。
我find了几个项目,比如:
- http://pypi.python.org/pypi/EggBasket/
- http://plone.org/products/plonesoftwarecenter
据我了解,pypi.python.org使用称为奶酪店的软件。
我的问题:
- 为什么我不能使用奶酪店? (我找不到它,不知道它是否存在)
- 别人怎么解决这个问题呢? (目前我们用腮红 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的遗留代码库
…
您可以使用
docker
和docker-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存储库的问题。
这回答问题二,我想你已经有了问题的答案。