2009-10-05 6 views
16

内部のPythonライブラリ(卵)をたくさん保持しているチームにいるとしたら、ピックアップにアップロードする理由は何でもありません。 easy_installがあなたのチームのメンバーのために働くように、どのようにライブラリ(卵)をホストすることができますか?これは働いていた場合 あなた自身の卵レポジトリをどのようにホストしていますか?

は、基本的には

(someproj)[email protected]:~$ easy_install myproprietary.lib-dev 
user: uberdev 
password:... 
fetching...... 
Searching for myproprietary.lib-dev 
Reading http://dev.mycompany.corp/myproprietary.lib-dev 
Reading http://dev.mycompany.corp 
Reading http://dev.mycompany.corp/dist 
Best match: myproprietary.lib-dev 
Downloading http://dev.mycompany.corp/dist/myproprietary.lib-dev 

私はそこにインストールすることができますそこのサーバーのいくつかの並べ替えがありますが、私はこの問題に関する専門家からいくつかの指導をいただければと思います仮定....クールになります。

おかげ

+3

あなたはカートンを手に入れて冷蔵庫に入れます! *リムショット* –

答えて

8

は、ディレクトリにすべての開発者がすべてのあなたの卵を展開します。 (例えばウェブサーバ上で)到達することができる。そのディレクトリから卵をインストールするには

、タイプ:

$ easy_install -H None -f http://server/vdir TheEggToInstall 

か。

$ easy_install -H None -f /path/to/directory TheEggToInstall 

-H None手段(-fで指定されたものを除く)任意のホストからの卵のダウンロードを許可していません。

ディレクトリは、httpでアクセスすることも、マウントするディレクトリ(NFS、Windows共有など)でもかまいません。多分FTPでも動作しますか?

easy_install documentationにはこの情報があります。

+0

とても感謝しています。私はあなたが設定ファイルであなたの好みのURLを設定することができますページから参照してください。 easy_installは基本的なHTTP認証を処理します。これは、質問に完全に答えます。 –

+0

@codeape、私は私の私的なウェブサイトにホストされた卵子ファイルを持っています。 https://test.xxx.com/versions/ easy_install -Hなし-f https://test.xxx.com/version/ netforce_account-3.1.0-py3.5.egg、私は非常に受け取りますtest.xxホストと(許可されていないホスト;詳細はhttp:/ /bit.ly/1dg9ijsを参照)などの不要な結果。 、私は何が欠けていますか? –

+0

コンソール出力を投稿できますか? – codeape

3

あなたのチームが分散されている場合 - と話す条件で - その後、元の簡単なSubversionリポジトリは、サーバーのいくつかの他の種類よりも優れています。

プロジェクトを作成し、すべての人にチェックアウトトランクを持たせるだけです。物事が変わったら、更新するように伝えます。

あなたのチームが話し言葉で同じ場所に配置されている場合、「公式」ライブラリとの共有ドライブもうまく機能します。単にマウントしてPYTHONPATHに含めてください。

ローカライズされたコピーが必要な場合は、正式なソースをサブバージョン(または共有ドライブ)にgood setup.pyファイルで提供してください。彼らは単にディレクトリにCDを入れてpython setup.py installを実行すると、それ以外のことが起きます。 setup.pyはすでにPythonディストリビューションに含まれているので、それはeasy_installよりも簡単です。

卵は、発言していない人のためのものです。

あなたのチームメンバーは通常、発言しており、追加された卵の複雑さは必要ありません。基本setup.pyで十分です。

+0

あなたはいくつかの良い点を挙げています。私はバージョン管理を共有メカニズムとして使用すると1つのリポジトリがあれば動作すると考えていましたが、多くのリポジトリがある場合は、1つの卵につき1つ、チームメンバーが利用できるさまざまなバージョンの卵を持つことが卵のレポ中央の場所になるだろう。より一般的には、easy_installが卵を見つける仕組みの背景にある解答を理解したかったのですが、それは答えに基づいて比較的簡単なようです。 –

1

まず、一般的なパッケージが公開されている場合、PyPIにパッケージをアップロードするのは一般的には悪い考えです。easy_installingパッケージに依存するパッケージは、eggサーバを起動して実行する必要がある、PyPIと同様です。関連するすべてのサーバーで、より多くのシングルポイントの障害が発生します。

しかし、それがPyPI上にリストアップされるべきではないプライベートパッケージ、またはPloneのような大きなシステムの一部としてのみ有用なパッケージであれば、別の問題です。次に、easy___installとbuildoutなどでサーバー上の卵を探す必要があります。それはかなり厳しいです。 eggsディレクトリをWebサーバーに置き、easy_installに-fパラメーターを指定してそのディレクトリーを指定するだけです。ここで

は、このようなリポジトリの例です:http://dist.plone.org/release/3.3.1/

+1

原則として私はあなたに同意します。しかし、一部の企業は「知的財産」について十分に注意を払っています。 また、とにかく、pypiにアップロードすると、私はそれをサポートしてバグや機能のリクエストを取っても構わないと思います。常にそうであるとは限りません。少なくとも、チームと共有する必要がある時点と、世界と共有する必要がある時点が異なる場合があります。 –

2

IはClueReleaseManager ClueReleaseManager

を使用することは、http://pypi.python.orgによって提供 としては、PyPIサーバーのバックエンドの実装です。 SQLAlchemy(デフォルトでは sqliteの上)を使用してすべてのプロジェクトメタデータを格納し、ファイルシステム をプロジェクトファイルの格納に使用します。

関連する問題