web-dev-qa-db-ja.com

自分のpypiをロールする方法は?

組織内でEggを配布するために、独自の内部pypiサーバーを実行したいと思います。

次のようないくつかのプロジェクトを見つけました。

私が理解しているように、pypi.python.orgはCheeseShopと呼ばれるソフトウェアを使用しています。

私の質問:

  1. チーズショップ自体が使えないのはなぜですか? (私はそれを見つけることができません、それが存在するかどうかはわかりません)
  2. 他の人はこの問題をどのように解決しますか? (現在、卵を配布するためにblushsvnを使用しています)

*編集:これは標準的なようです http://wiki.python.org/moin/PyPiImplementations 。それでも、私はフィードバックに興味があります。

45
drue

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

軽量ソリューションの場合は、 pypiserver を使用します。

20
wangeek

倉庫

倉庫 は2017年の最善の策です。プロジェクトのREADMEから:

Warehouseは次世代ですPython現在 PyPI を強化しているレガシーコードベースを置き換えるように設計されたパッケージリポジトリ

.。

dockerおよびdocker-composeを使用してWarehouseをローカルで実行できます。設定方法については、ドキュメントの はじめに を参照してください。

これは、Python)のメンバーと協力して作業する Python Packaging Authority(PyPA) によって維持されます。コア開発チームであり、ライブバージョンは https://pypi.org/で実行されており、レガシーPyPIのすべてをミラーリングしています( https://pypi.python.org/ )。

9
Day

Djangopypi2という名前のdjangopypiのフォークがあります https://github.com/popen2/djangopypi2/ 、私はそれをインストールして動作します、このオプションは私が選択したものです最近の検索で見つけた約24の選択肢のリストは、ここで確認できます: http://uyeya.blogspot.com/2013/10/list-of-local-alternatives-of-pypi .html

5
juliocesar

devpi

私たちは企業環境でそれを使用しており、かなり満足しています。レプリケーション、プライベートインデックス、およびインデックスの継承をサポートします。

5
David

更新:crate.ioがシャットダウンし、ドメインが完全に別のものになりました。

言及されていないプロジェクトの1つは https://crate.io/ で、これは非常に活発なようです。これは「次世代Pythonパッケージングインデックス」」であると主張していますが、リポジトリは、カスタマイズや目的に合わせたリミックスを歓迎するように、うまく分割されています。

3
tilgovi

より軽量なソリューションが必要な場合は、pypiサーバー全体をデプロイして、 basketweaver によって生成されたサーバーインデックスを使用してみてください。

2
Taras Mankovski

そして、クレートのソースコードが利用可能ですが、ドキュメントは少なくとも言うことができますが、存在しません。

Crate.Web

これはDjangoアプリケーションがPythonパッケージインデックスを提供します。 https://github.com/crateio の他のパッケージをいくつか使用しますそのため、Djangoなしで独自のバージョンをロールアウトできる可能性があります。

私は特に静的なものについて考えています。私はいつも、いくつかの[構成済み]リポジトリを直接探索し、github/bitbucketのパブリックリポジトリとプライベートリポジトリから直接チーズを購入する非常に簡単な方法があるはずだと思っていました。 gunicorn)プロセスが実行されています。

0
Stefano

同じ問題が発生し、 ClueReleaseManager 内部PyPIサーバー/カスタムPythonリポジトリをホストする問題を解決しました。

それは質問2に答えます、そして私はあなたがすでに質問1に答えを持っていると思います。

0
stuxnetting

この(古い)リストから欠落している別の:

djangopypi

Djangoベースで、少しやり過ぎかもしれませんが、私はDjangoが大好きで、満足できない場合に必要に応じて変更するのが非常に簡単です。

0
Stefano