我如何推出自己的 PyPI?例如,对于“鸡蛋”分配

问题描述 投票:0回答:9

我想运行我自己的内部 PyPI 服务器,以便在我的组织内进行 egg 分发。

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

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

我的问题:

  1. 为什么我不能使用Cheese Shop本身? (我找不到它并且不确定它是否存在)
  2. 其他人是如何解决这个问题的? (目前我们使用blush SVN来分发‘鸡蛋’)

这看起来很规范:Python WikiPython 实现。不过,我对反馈很感兴趣。

我如何推出自己的 PyPI?

python pypi
9个回答
22
投票

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


16
投票

更新: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]

9
投票

仓库

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

Warehouse 是下一代 Python 包存储库,旨在取代 目前为 PyPI

提供支持的遗留代码库

...

您可以使用

docker
docker-compose
在本地运行 Warehouse。看 开始使用 在文档中了解如何设置的说明。

它由 Python 打包权威 (PyPA) 维护,他们与 Python 核心开发团队的成员合作,并且有一个 live 版本在 https://pypi.org/ 运行,它镜像了所有内容在旧版 PyPI 中 (https://pypi.python.org/)。


6
投票

devpi

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


5
投票

有一个名为 djangopypi2 的 djangopypi 分支,你可以从 https://github.com/popen2/djangopypi2/ 获取它,我安装了它并为我工作,这个选项是我从大约 24 个列表中选择的我在最近的搜索中找到的替代方案,您可以在这里看到列表:http://uyeya.blogspot.com/2013/10/list-of-local-alternatives-of-pypi.html


2
投票

更新:crate.io 已关闭,域名现在完全是另一回事了。

一个没有被提及的项目是https://crate.io/,它看起来非常活跃。它声称是“下一代 Python 打包索引”,但他们的存储库很好地分成了几部分,似乎欢迎根据您的目的进行定制和重新混合。


1
投票

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


-1
投票

这个(旧的)列表中还缺少另一个:

djangopypi

基于 Django,这可能有点矫枉过正,但我喜欢 django,如果它不令人满意,它可以非常简单地根据您的需要进行修改。


-1
投票

并且板条箱源代码可用,但至少可以说,文档不存在:

Crate.Web

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

我特别考虑静态的,我一直认为应该有一种非常简单的方法来直接探索一些[预先配置的]存储库并直接从我的 github/bitbucket 公共和私人存储库购买奶酪,只需一个简单的方法(gunicorn)进程正在运行。

© www.soinside.com 2019 - 2024. All rights reserved.