2009-12-03 16 views
7

Tengo todos los huevos que mi proyecto requiere pre-descargados en un directorio, y me gustaría instalar las herramientas en solo instalar paquetes de ese directorio.'setup.py test' ubicación de instalación del huevo?

En mi setup.cfg que tengo:

[easy_install] 
allow_hosts = None 
find_links = ../../setup 

corro python setup.py develop y busca e instala todos los paquetes correctamente.

Para la prueba, tengo un requisito adicional, especificado en setup.py.

tests_require=["pinocchio==0.2"], 

Este huevo también reside localmente en el directorio ../../setup.

Ejecuto python setup.py test y ve la dependencia y encuentra el huevo en ../../setup bien. Sin embargo, el huevo se instala en mi directorio actual en lugar del directorio site-packages con el resto de los huevos.

He intentado especificar el install-dir tanto en setup.cfg como en la línea de comandos y ninguno parecía funcionar para el comando tests.

Podría simplemente agregar la dependencia a la sección install_requires, pero me gustaría mantener lo necesario para la instalación y las pruebas por separado si es posible.

¿Cómo puedo mantener la dependencia en la sección tests_require, pero la tengo instalada en el directorio site-packages?

Respuesta

3

Simplemente mirando el código fuente (setuptools/command/tests.py), no parece que la prueba setup.py no debe instalar nada por diseño (está probando, entonces, ¿por qué poner algo en el sitio- paquetes?). Utiliza fetch_build_egg (setuptools/dist.py) para obtener los huevos, lo que hace una instalación local fácil. Sospecho que no puedes hacer pruebas triviales para hacer lo que quieras.

Mi opinión con setuptools es que hay errores y comportamiento no documentado. (Un error especialmente desagradable que encontré fue que no entraría en los directorios vinculados, cuando distutils lo haría).

Recomendaría A) no hacer esto. :), B) instalando manualmente el archivo llamando al paquete easy_install. o C) investigando en el sistema de instalación de herramientas y tal vez agregando tu propio comando. No es demasiado difícil de entender, y saberlo ayudará mucho cuando tengas herramientas de configuración futuras.

+0

Gracias por su respuesta. No voy a molestarme en pelear con herramientas de configuración, y hacer A) o B) como me recomendó. – amrox

Cuestiones relacionadas