2016-05-02 3 views
2

私が維持している複数のpythonパッケージでは、オプションの多くの要件がありますが、それらをすべて開発環境にインストールしようとします。どのようにPythonのオプション要件を処理するには?

しかし、何らかの理由でこれらのインストールが失敗する場合があり、現在のプロジェクトの保守担当者がオプションの要件をインストールすることができない場合があるため、無視したいと考えています。

私はrequirements.txtのようにoptionalpackage ; sys.platform == 'win32'のような条件文を使用することができますが、これはインストールに失敗したパッケージの問題を解決しません。

インストールが失敗した最初のパッケージが見つかった場合、pipがインストールを中断することがあります。これは、別のファイルに各オプション要件を置き、個別にインストールする必要があることを意味します。

更新

明確にするために、この質問は、モジュールのコード内のこれらの要件に対処する方法に関するものではありませんが、それは簡単な部分です。

質問はビルド、テスト(トラビスを含む)とパッケージングについてです。 CIの観点からは、可能であれば、すべてのオプションパッケージを使ってパッケージをテストしたい(インストールが失敗した場合にテストに失敗しないようにしてください)

+1

あなたが解決しようとしている問題は明確ではありません。一方では、名目上オプションのパッケージをインストールしたいと思うでしょう。これらのために 'requirements.txt'以外のファイルを使い、別々にインストールするのでしょうか?一方、欠落している必要なパッケージがどのように処理されるかは、あなたが不安に思えます。しかし、あなたがこれらのパッケージを必要としないならば、あなたは明確でなければなりません。 – tripleee

+0

'import'が失敗した場合に、プログラムが何をしたい/期待していますか?あなたはいつも 'ImportError'例外をトラップできます。 – cdarke

+0

あなたは結果としてあなたが期待していることを考え、明確にしなければなりません。現在、あなたは不明な要求に閉じ込められています。はい、私は知っています、それはいつか挑戦的です。 –

答えて

0

私はtoxとtravisをパッケージtox-travisで組み合わせることをお勧めします。 Travisでextrasのtestenv設定を使用することができます。

関連する問題