python setup.py test
を実行すると、setup.pyのtests_require
にリストされている依存関係が現在のディレクトリにダウンロードされます。 python setup.py install
を実行すると、代わりにrequires
にリストされている依存関係がsite-packages
にインストールされます。
代わりにtests_require
にこれらのsite-packages
依存関係をインストールするにはどうすればよいですか?
テスト要件がインストールされている場所を指定することはできません。 tests_requireパラメータの要点は、パッケージのインストールに必要ではなく、テストの実行にのみ必要な依存関係を指定することです(多くのコンシューマがパッケージをインストールしたいがテストを実行しないことを想像できるため)。インストール中にテスト要件を含めたい場合は、install_requiresパラメータに含めます。例えば:
test_requirements = ['pytest>=2.1', 'dingus']
setup(
# ...
tests_require = test_requirements,
install_requires = [
# ... (your usual install requirements)
] + test_requirements,
)
私の知る限り、セットアップスクリプトを変更せずにこの動作を強制するために渡すことができるパラメーターはありません。
Virtualenvを使用してこれを回避し、追加パッケージをlib/pythonX/site-packages内のデフォルトの場所にインストールできます。最初に、setup.pyでテスト要件をエクストラとして定義する必要があります。
setup(
# ...
install_requires=[
# ... (your usual install requirements)
],
extras_require={
'testing': [
# ... (your test requirements)
]
},
)
次に、次のようなテスト要件でパッケージをインストールします。
pip install -e ".[testing]"
そのようなことを達成するためにpipを使用しています。 tests_requiresまたはextrasをsetup.pyに追加する代わりに、 pip要件ファイル を作成しました。
私のdev_requirements.txtファイルの例:
pytest
webtest
次に、それをインストールするために実行します:
$ pip install -r dev_requirements.txt