2012-02-29 21 views
2

私のpythonプロジェクトのいくつかは、ここに記載されているような設定で継続的に統合されてテストされています:"Pretty" Continuous Integration for Python継続的な統合、easy_installとダウンロードの問題

私は現在、easy_installを使用してプロジェクトとその依存関係、テストツール(鼻、カバレッジ)をインストールしています。

easy_installは、インターネット接続、PyPI、またはパッケージダウンロードサーバーのいずれかがダウンしているか、応答していないようなため、依存関係をダウンロードできなかったため、ビルドレポートが失敗したと報告することがあります。

パッケージのローカルキャッシュを使用してビルドが失敗するのを防ぎたいと思います。新しい依存関係をダウンロードできない場合は、ローカルのものを使用します(できるだけ更新する必要があります)。依存関係のAPI変更のために私のプロジェクトが中断されることをできるだけ早く警告したいので、最初に新しい依存関係をダウンロードしようとすることが重要です。

私の質問は次のとおりです。ネットワーキングの問題を解決しないようなキャッシュを設定するにはどうすればよいですか?私は最初にその問題にcollective.eggproxyを使用しようとしましたが、私が知る限りすべてのエラーをキャプチャしません。

+0

私もこれを検討しています。 – monkut

+0

Collective.eggproxy note:2012年2月上旬にgithubに移行しました。https://github.com/camptocamp/collective.eggproxyですので、小さな修正(フォーク)やバグの報告がずっと簡単です。そして、はい、すべてのネットワーキングエラーを捉えることはできません。 –

+0

実際、 'collective.eggproxy'は完璧に機能しますが、サーバーデーモンが' easy_install'で使用する前に起動するのに十分な時間はありませんでした。 –

答えて

0

は私がダウンロードをキャッシュするためにcollective.eggproxyを使用して終了し、私はcollective.eggproxyeasy_installを使用しようとすると、起こってからエラーを防ぐために、デーモンとしてcollective.eggproxyを実行した後、スタートアップの遅延を使用し、完全にSTAであります落ち着いた。

しかし、pipを使用することを示唆している回答は私にとっても同様ですが、すでにeasy_installcollective.eggproxyを使用しているので、私はそれらに固執する方が簡単です。

1

pipを代わりに使用することを検討しましたか?もしそうなら、あなたは別のパッケージリポジトリのサポートを活用することができます:

http://www.pip-installer.org/en/latest/usage.html#alternate-package-repositories

あなたが離れeasy_installから移動したくない場合は、基本的なセットを提供するeasy_install--find-linksオプションを使用して試みることができますあなたが気にしているパッケージのためのリンクがあります。

+0

--find-linksオプションを使用できますが、ローカルキャッシュが更新されましたか? –

+0

ローカルのキャッシュされたパッケージのダウンロードを避けるため、実際のキャッシュを使用することをお勧めします。 –

+0

代替パッケージリポジトリオプション*と* pipのダウンロードキャッシュオプションを組み合わせて使用​​すると、冗長性の側面。 – Amber

1

私はピップの使用についてアンバーに同意します。

  • ダウンロードキャッシュ

  • PIP_DOWNLOAD_CACHEを使用して指定することができます(インデックスURLと --find_linksため -i)で説明したように

    1. 代替パッケージリポジトリフラグ:ピップはむらは、PyPIへのアクセスをサポートするための少なくとも3つのオプションを提供しています。ダウンロードしたファイルは後でアクセスできるようにキャッシュされます

    2. Creating a bundle of all of your dependencies

    私たちは3つのポイントを別々に使用しました。長い間、私たちは3つしか使用していませんでしたが、その後、バスケットウェアを使用して独自のpypiサーバーを設定しました。

    もまた別のインデックスを指定できる--index-urlタグをサポートしています。既存のは、PyPIミラーの1:

    easy_install -i http://d.pypi.python.org/simple 
    
    +0

    2)PIP_DOWNLOAD_CACHEでインターネット接続がまだ必要です。http://stackoverflow.com/a/4806458/145583 –

    +0

    を参照してください。私たちが最初に3人で行った理由です。 – turtlebender

    +0

    3)と、まだ表示されません接続がOKのときにどうやって新鮮な依存関係を得るか。さらに、バンドルは継続的な統合サーバー上に構築されると私には思われますか?それとも私は何かが恋しい? –

    0

    あなたのビルドサーバーを実行しているつもりなら、私は本当にあなたのビルドのためには、PyPIのローカルキャッシュを持つことをお勧めしたいです。いつも起こり得るビルドのためにあなたが使用するパッケージの数をロードしたり、実際には膨らませたりしないようにするだけです。PyPIのすべての1までの設定に本当に良いブログの記事が最近ありました:http://aboutsimon.com/2012/02/24/create-a-local-pypi-mirror/

    とSprintのために、私は最近、セットアップにピップでちょうど私のアプリケーションのために必要なパッケージのローカルキャッシュをトリックを使用

    http://paste.mitechie.com/show/548/

    +0

    ただ1つのプロジェクト用の完全なPyPIミラーを持っていると、私には不幸があるようです(30GB必要!だからこそ、私はちょうど依存関係のキャッシュを必要としている*私は*を使用します。 –

    +0

    あなたの2番目のポイントは面白いです –

    関連する問題