質問
組織内で卵を配布するために、独自の内部pypiサーバーを実行したい。
次のようなプロジェクトをいくつか見つけました:
私が理解しているように、pypi.python.orgはCheese Shopというソフトウェアを使用しています。
私の質問:
- チーズショップ自体を使用できないのはなぜですか? (見つからない、存在するかどうかわからない)
- 他の人はこの問題をどのように解決しますか? (現在、 blush svnを使用して卵を配布しています)
* edit:これは正規の http://wiki.python.org/moin/PyPiImplementations。それでも、フィードバックに興味があります。
解決
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]
他のヒント
軽量ソリューションの場合は、 pypiserver を使用します。
倉庫
倉庫は、2017年の最善策です。プロジェクトのREADMEから:
Warehouseは、置き換えるために設計された次世代のPythonパッケージリポジトリです。 現在 PyPI
を強化しているレガシーコードベース
...
docker
およびdocker-compose
を使用して、Warehouseをローカルで実行できます。見る はじめに 設定方法についてはドキュメントをご覧ください。
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
devpi
私たちは企業環境でそれを使用しており、かなり満足しています。レプリケーション、プライベートインデックス、インデックスの継承をサポートしています。
更新:crate.ioがシャットダウンし、ドメインは完全に別のものになりました。
言及されていないプロジェクトの1つは https://crate.io/ で、これは非常に活発なようです。 「次世代のPythonパッケージングインデックス」であると主張されていますが、リポジトリはきめ細かく分割されており、目的に合わせたカスタマイズやリミックスを歓迎しているようです。
より軽いソリューションが必要な場合、pypiサーバー全体をデプロイするには、バスケットウィーバー。
この(古い)リストから別の行方不明:
djangopypi
Djangoベース、これは少しやり過ぎかもしれませんが、私はdjangoが大好きであり、満足できない場合に必要に応じて変更するのは非常に簡単です。
そして、クレートのソースコードが利用可能ですが、ドキュメントは、少なくともそれは言えるとは言えませんが、
これは、Pythonパッケージインデックスを提供するDjangoアプリケーションです。 https://github.com/crateio からいくつかの他のパッケージを使用しているため、独自のパッケージを展開できます。 djangoなしのバージョン。
静的なものについて具体的に考えています。[事前に設定された]リポジトリを直接調べて、github / bitbucketのパブリックおよびプライベートリポジトリから直接チーズを購入する非常に簡単な方法があるはずだといつも思っていました。実行中の単純な(gunicorn)プロセス。
同じ問題に遭遇し、 ClueReleaseManager が内部PyPIサーバーをホストする問題を解決しました/ custom Pythonリポジトリ。
これは質問2に答えますが、質問1の答えはすでにあると思います。