如何滚动我自己的pypi?

时间:2009-08-05 19:43:36

标签: python pypi

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

我找到了一些项目,例如:

据我了解,pypi.python.org使用名为Cheese Shop的软件。

我的问题:

  1. 为什么我不能使用cheeseshop本身? (我找不到它,不确定它是否存在)
  2. 其他人如何解决这个问题? (目前我们使用 blush svn来分发鸡蛋)
  3. *编辑:这似乎是规范的http://wiki.python.org/moin/PyPiImplementations。不过,我对反馈感兴趣。

10 个答案:

答案 0 :(得分:16)

对于轻量级解决方案,请使用pypiserver

答案 1 :(得分:14)

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

答案 2 :(得分:6)

Warehouse

Warehouse将是您2017年最好的选择。来自项目的自述文件:

  

Warehouse是一个旨在取代的下一代Python包存储库   当前为PyPI

提供支持的遗留代码库

...

  

您可以使用dockerdocker-compose在本地运行仓库。看到   Getting started   在文档中有关如何设置它的说明。

The Python Packaging Authority (PyPA)维护,他与Python核心开发团队的成员合作,并且有一个实时版本在https://pypi.org/ 运行,它反映了遗留PyPI(https://pypi.python.org/)。

答案 3 :(得分:4)

有一个名为djangopypi的djangopypi的叉子你可以从https://github.com/popen2/djangopypi2/得到它,我安装它并且适用于我,这个选项是我从一个大约24个替代品的列表中选择我在一个最近搜索,您可以在此处查看列表:http://uyeya.blogspot.com/2013/10/list-of-local-alternatives-of-pypi.html

答案 4 :(得分:4)

devpi

我们在企业环境中使用它并且非常满意。它支持复制,私有索引和索引继承。

答案 5 :(得分:3)

更新:crate.io已关闭,域名现在完全不同了。

一个未被提及的项目是https://crate.io/,它似乎非常活跃。它声称是“下一代Python包装索引”,但是他们将它们的存储库很好地分成几块似乎欢迎定制和重新混合到你的目的。

答案 6 :(得分:2)

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

答案 7 :(得分:0)

此(旧)列表中的另一个缺失:

djangopypi

基于Django,这可能是一种轻微的矫枉过正,但我​​喜欢django,如果不满意,它可以非常简单地根据您的需要进行修改。

答案 8 :(得分:0)

可以使用crate源代码,虽然文档可以说是最不可能的,但不存在:

<强> Crate.Web

这是一个提供Python包索引的Django应用程序。使用https://github.com/crateio中的其他几个包,这样您就可以在不使用django的情况下推出自己的版本。

我特别想到一个静态的,我一直认为应该有一个非常简单的方法直接探索一些[预先配置的]存储库并直接从我的github / bitbucket公共和私人回购中购买奶酪,只需要一个简单的(枪炮)过程。

答案 9 :(得分:0)

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

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