2012-05-22 8 views
5

Dentro de la setup.py que tienen algo como esto:¿Cómo convenzo a las herramientas de configuración para usar un directorio temporal para que requiera paquetes de setup_require o tests_require?

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

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

Como 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 muchos y muchos patrones de exclusión.

Respuesta

1

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

Usted no está contaminando su distribución.

De la documentación setuptools:

setup_requires no se instalará automáticamente en el sistema donde escritura de la configuración se está ejecutando. Simplemente se descargan al directorio de configuración si aún no están disponibles localmente. Si usted quiere que a ser instalados, así como estar disponible cuando el script de instalación es ejecución, debe añadirlos a install_requires y setup_requires.)

y

tests_require Si su Las pruebas del proyecto necesitan uno o más paquetes adicionales además de 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 las pruebas del paquete en ejecución. Cuando ejecute el comando de prueba, setuptools intentará obtener estos (incluso yendo tan lejos como para descargarlos usando EasyInstall). Observe que estos proyectos requeridos no se instalarán en el sistema donde se ejecutan las pruebas, pero solo se descargan al directorio de configuración del proyecto si aún no están instaladas localmente.

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

Si ha instalado algún paquete y hay que sacarlo, acaba de encontrar su paquete en la subcarpeta "site-packages" de su distribución pitón y eliminarlo. Finalmente, elimine la referencia del paquete en el archivo easy-install.pth que generalmente se encuentra en el mismo directorio "site-packages".

+0

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

+0

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

0

Comenzando con setuptools 7.0, las dependencias transitorias cargadas para setup_requires, tests_require y similares se instalan en ./.eggs. Recomiendo encarecidamente agregar eso a su lista global de ignorar.

Cuestiones relacionadas