我想运行我自己的内部 pypi 服务器,以便在我的组织内分发鸡蛋。
我找到了一些项目,例如:
据我了解,pypi.python.org 使用名为 Cheese Shop 的软件。
我的问题:
- 为什么我不能使用 cheeseshop 本身?(我找不到它,不确定它是否存在)
- 其他人如何解决这个问题?(目前我们使用blush svn来分发鸡蛋)
*编辑:这似乎是规范的http://wiki.python.org/moin/PyPiImplementations。不过,我对反馈很感兴趣。
我想运行我自己的内部 pypi 服务器,以便在我的组织内分发鸡蛋。
我找到了一些项目,例如:
据我了解,pypi.python.org 使用名为 Cheese Shop 的软件。
我的问题:
*编辑:这似乎是规范的http://wiki.python.org/moin/PyPiImplementations。不过,我对反馈很感兴趣。
对于轻量级解决方案,请使用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]
仓库将是您在 2017 年的最佳选择。来自项目的自述文件:
Warehouse 是下一代 Python 包存储库,旨在替换当前支持PyPI的遗留代码库
...
docker
您可以使用和本地运行 Warehousedocker-compose
。 有关如何设置的说明,请参阅 文档中的入门。
它由与 Python 核心开发团队成员合作的 Python Packaging Authority (PyPA)维护,并且在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生成的服务器索引。
并且 crate 源代码是可用的,尽管文档至少可以说是不存在的:
它是一个提供 Python 包索引的 Django 应用程序。使用来自https://github.com/crateio的其他几个包,这样您就可以在没有 django 的情况下推出自己的版本。
我特别考虑的是静态的,我一直认为应该有一种非常简单的方法可以直接从我的 github/bitbucket 公共和私人存储库中直接探索一些 [预配置] 存储库并购买奶酪,只需一个简单的 ( gunicorn) 进程正在运行。
我遇到了同样的问题,ClueReleaseManager为我解决了托管内部 PyPI 服务器/自定义 Python 存储库的问题。
这回答了问题二,我想你已经有了问题一的答案。