¿Cómo convenzo a setuptools para que use un directorio temporal para paquetes requeridos de setup_require o tests_require?

Dentro de la setup.py Tengo algo como esto:

setup_requires=['nose>=1.0'],
tests_require=[],

El problema es que cuando corro ./setup.py test descargará y descomprimirá estos módulos en el directorio con setup.py.

¿Cómo puedo convencerlo de que use un directorio temporal para esto? No quiero contaminar el sistema de control de fuente con estos, y no quiero comenzar a agregar montones y montones de patrones de exclusión.

preguntado el 22 de mayo de 12 a las 15:05

2 Respuestas

Si el problema es el árbol de fuentes de su proyecto, probablemente debería crear una secuencia de comandos para eliminar todos los directorios "dist" y "build" creados por distutils al final de la prueba de configuración. Los paquetes descargados suelen ser carpetas *.egg en su árbol de fuentes.

No estás contaminando tu distribución.

De la documentación de las herramientas de configuración:

setup_requires NO se instalará automáticamente en el sistema donde se ejecuta el script de configuración. Simplemente se descargan en el directorio de instalación si aún no están disponibles localmente. Si desea que se instalen, además de estar disponibles cuando se ejecuta el script de configuración, debe agregarlos a install_requires y setup_requires).

y

pruebas_requeridas Si las pruebas de su proyecto necesitan uno o más paquetes adicionales a los necesarios para instalarlo, puede usar esta opción para especificarlos. Debe ser una cadena o una lista de cadenas que especifiquen qué otras distribuciones deben estar presentes para que se ejecuten las pruebas del paquete. Cuando ejecute el comando de prueba, las herramientas de configuración intentarán obtenerlos (incluso llegando a descargarlos usando EasyInstall). Tenga en cuenta que estos proyectos necesarios no se instalarán en el sistema donde se ejecutan las pruebas, sino que solo se descargarán en el directorio de instalación del proyecto si aún no están instalados localmente.

http://packages.python.org/distribute/setuptools.html

Si ha instalado algún paquete y necesita eliminarlo, simplemente busque su paquete en la subcarpeta "site-packages" de su distribución de python y elimínelo. Finalmente, elimine la referencia del paquete en el archivo easy-install.pth que generalmente se encuentra en el mismo directorio "site-packages".

contestado el 22 de mayo de 12 a las 15:05

Gracias. Aún así, lo que estaba buscando era no contaminar mi copia de trabajo cuando ejecuto setup.py, que está en la raíz del repositorio. Así que estoy buscando una forma de convencer a las herramientas de configuración para que creen estos archivos en otro lugar. - Sorin

Corregido. ¡Creo que deberías ir con un guión! - J_Zar

A partir de setuptools 7.0, se cargaron dependencias transitorias para setup_requires, tests_require, y similares se instalan en ./.eggs. Recomiendo encarecidamente agregar eso a su lista global de ignorados.

Respondido el 30 de junio de 15 a las 20:06

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.