組織内でEggを配布するために、独自の内部pypiサーバーを実行したいと思います。
次のようないくつかのプロジェクトを見つけました。
私が理解しているように、pypi.python.orgはCheeseShopと呼ばれるソフトウェアを使用しています。
私の質問:
*編集:これは標準的なようです http://wiki.python.org/moin/PyPiImplementations 。それでも、私はフィードバックに興味があります。
更新:PyPiは、チーズショップの代わりとなる 倉庫 を搭載しています。
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
私たちは企業環境でそれを使用しており、かなり満足しています。レプリケーション、プライベートインデックス、およびインデックスの継承をサポートします。
更新:crate.ioがシャットダウンし、ドメインが完全に別のものになりました。
言及されていないプロジェクトの1つは https://crate.io/ で、これは非常に活発なようです。これは「次世代Pythonパッケージングインデックス」」であると主張していますが、リポジトリは、カスタマイズや目的に合わせたリミックスを歓迎するように、うまく分割されています。
より軽量なソリューションが必要な場合は、pypiサーバー全体をデプロイして、 basketweaver によって生成されたサーバーインデックスを使用してみてください。
そして、クレートのソースコードが利用可能ですが、ドキュメントは少なくとも言うことができますが、存在しません。
これはDjangoアプリケーションがPythonパッケージインデックスを提供します。 https://github.com/crateio の他のパッケージをいくつか使用しますそのため、Djangoなしで独自のバージョンをロールアウトできる可能性があります。
私は特に静的なものについて考えています。私はいつも、いくつかの[構成済み]リポジトリを直接探索し、github/bitbucketのパブリックリポジトリとプライベートリポジトリから直接チーズを購入する非常に簡単な方法があるはずだと思っていました。 gunicorn)プロセスが実行されています。
同じ問題が発生し、 ClueReleaseManager 内部PyPIサーバー/カスタムPythonリポジトリをホストする問題を解決しました。
それは質問2に答えます、そして私はあなたがすでに質問1に答えを持っていると思います。