wheel twine how for example create python testing setuptools distribute

twine - python packaging



Especificar dónde instalar las dependencias ''tests_require'' de un paquete distribute/setuptools (3)

Cuando python setup.py test las dependencias enumeradas en tests_require en setup.py se descargan al directorio actual. Me gustaría tener esas dependencias instaladas en paquetes de sitio, tal como las dependencias enumeradas en requires cuando ejecuto python setup.py install .


Estoy usando pip para lograr algo así. En lugar de agregar tests_requires o extras a mi setup.py, he creado un archivo de requisitos de pip .

Ejemplo mi archivo dev_requirements.txt :

pytest webtest

Luego para instalarlo, ejecuta:

$ pip install -r dev_requirements.txt


No ha hecho una pregunta, pero implícitamente ha formulado la pregunta: "¿Cómo forzar setuptools para que instale dependencias de prueba (según lo especificado por el parámetro tests_require) en el entorno de Python al ejecutar la instalación?" Responderé esa pregunta.

No puede especificar dónde están instalados los requisitos de prueba. El objetivo del parámetro tests_require es especificar las dependencias que no son necesarias para la instalación del paquete, pero solo para ejecutar las pruebas (como se puede imaginar, muchos consumidores pueden querer instalar el paquete pero no ejecutar las pruebas). Si desea que se incluyan los requisitos de la prueba durante la instalación, los incluiría en el parámetro install_requires. Por ejemplo:

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

Hasta donde sé, no hay ningún parámetro que pueda pasar para forzar este comportamiento sin cambiar el script de configuración.


Puede utilizar virtualenv para evitar esto e instalar los paquetes adicionales en sus ubicaciones predeterminadas, dentro de lib / pythonX / site-packages. En primer lugar, debe definir sus requisitos de prueba como extras en setup.py:

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

A continuación, instale su paquete con requisitos de prueba como este:

pip install -e ".[testing]"