Spécifier où installer les dépendances "tests require" d'un paquet distribute / setuptools

Lorsque j'exécute python setup.py test les dépendances listées dans tests_require dans setup.py sont téléchargés dans le répertoire courant. Je voudrais que ces dépendances soient installées dans les packages de site, tout comme les dépendances listées dans requires lorsque j'exécute python setup.py install.

36
demandé sur Daniel Serodio 2011-01-19 13:43:13

3 réponses

Vous n'avez pas posé de question, mais vous avez implicitement posé la question: "Comment puis-je forcer setuptools à installer les dépendances de test (comme spécifié par le paramètre tests_require) dans L'environnement Python lors de l'exécution de install?"Je vais répondre à cette question.

Vous ne pouvez pas spécifier où les exigences de test sont installées. Le but 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 imaginer que de nombreux consommateurs pourraient vouloir installer le paquet mais ne pas exécuter les tests). Si vous voulez 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 d'installation.

42
répondu Jason R. Coombs 2011-10-12 22:01:01

Vous pouvez utiliser un virtualenv pour éviter cela et installer les paquets supplémentaires à leur emplacement par défaut, dans lib / pythonx / site-packages. Tout d'abord, vous devez définir vos exigences de test en tant qu'extras, dans setup.py:

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

Ensuite, installez votre paquet avec les exigences de test comme ceci:

pip install -e ".[testing]"
16
répondu Tiberiu Ichim 2017-08-07 05:01:35

J'utilise pip pour réaliser quelque chose comme ça. Au lieu d'ajouter tests_requires ou extras pour mon setup.py j'ai créé un pip exigences de fichier.

Exemple Mon dev_requirements.txt fichier:

pytest
webtest

Ensuite, pour l'installer, exécutez:

$ pip install -r dev_requirements.txt
14
répondu schettino72 2016-10-12 12:58:17