Quand je lance python setup.py test
les dépendances répertoriées dans tests_require
dans setup.py sont téléchargés dans le répertoire courant. Quand je lance python setup.py install
, les dépendances répertoriées dans requires
sont plutôt installées dans site-packages
.
Comment puis-je avoir ces tests_require
dépendances installées à la place dans site-packages
?
Vous ne pouvez pas spécifier où les exigences de test sont installées. L'intérêt du paramètre tests_require est de spécifier des dépendances qui ne sont pas requises pour l'installation du package, mais uniquement pour l'exécution des tests (comme vous pouvez l'imaginer, de nombreux consommateurs voudront peut-être installer le package mais ne pas exécuter les tests). Si vous souhaitez que les exigences de test soient incluses lors de l'installation, je les inclurais dans le paramètre install_requires. Par exemple:
test_requirements = ['pytest>=2.1', 'dingus']
setup(
# ...
tests_require = test_requirements,
install_requires = [
# ... (your usual install requirements)
] + test_requirements,
)
Pour autant que je sache, il n'y a aucun paramètre que vous pouvez passer pour forcer ce comportement sans changer le script de configuration.
Vous pouvez utiliser un virtualenv pour éviter cela et installer les packages supplémentaires à leurs emplacements par défaut, à l'intérieur de lib/pythonX/site-packages. Tout d'abord, vous devez définir vos exigences de test comme des extras, dans setup.py:
setup(
# ...
install_requires=[
# ... (your usual install requirements)
],
extras_require={
'testing': [
# ... (your test requirements)
]
},
)
Installez ensuite votre package avec des exigences de test comme celle-ci:
pip install -e ".[testing]"
J'utilise pip pour réaliser quelque chose comme ça. Au lieu d'ajouter tests_requires ou extras à mon setup.py, j'ai créé un fichier d'exigences pip .
Exemple de mon fichier dev_requirements.txt :
pytest
webtest
Ensuite, pour l'installer, exécutez:
$ pip install -r dev_requirements.txt