48

setup.pyにpython setup.py testリストされている依存関係を実行すると、現在のディレクトリにダウンロードされます。tests_requireを実行するpython setup.py installと、にリストされている依存関係requiresが代わりににインストールされsite-packagesます。

tests_require代わりにこれらの依存関係をにインストールするにはどうすればよいsite-packagesですか?

4

3 に答える 3

53

テスト要件がインストールされている場所を指定することはできません。tests_requireパラメーターの要点は、パッケージのインストールには必要ではなく、テストの実行にのみ必要な依存関係を指定することです(多くのコンシューマーがパッケージをインストールしたいが、テストは実行したくない場合があることを想像できます)。インストール中にテスト要件を含める場合は、install_requiresパラメーターにそれらを含めます。例えば:

test_requirements = ['pytest>=2.1', 'dingus']
setup(
    # ...
    tests_require = test_requirements,
    install_requires = [
        # ... (your usual install requirements)
    ] + test_requirements,
)

私の知る限り、セットアップスクリプトを変更せずにこの動作を強制するために渡すことができるパラメーターはありません。

于 2011-10-12T22:01:01.113 に答える
28

virtualenv を使用してこれを回避し、追加のパッケージを lib/pythonX/site-packages 内のデフォルトの場所にインストールできます。最初に、setup.py でテスト要件を追加として定義する必要があります。

setup(
    # ...
    install_requires=[
        # ... (your usual install requirements)
    ],
    extras_require={
        'testing': [
            # ... (your test requirements)
        ]
    },
)

次に、次のようなテスト要件でパッケージをインストールします。

pip install -e ".[testing]"
于 2014-12-03T12:07:01.850 に答える
17

私はそのようなことを達成するためにpipを使用しています。setup.py にtests_requiresまたはextrasを追加する代わりに、 pip 要件ファイルを作成しました。

私のdev_requirements.txtファイルの例:

pytest
webtest

それをインストールするには、次を実行します。

$ pip install -r dev_requirements.txt
于 2012-01-17T18:22:15.183 に答える