2011-06-15 16 views
6

Mi proyecto mezcla el código de Python puro y las extensiones de Cython para la optimización y para vincular con las bibliotecas de C. Tengo un árbol fuente para mi proyecto Python, y uno para código Cython y C. Mis extensiones de Cython tienen cada una un archivo setup.py para compilarlas. En realidad, para cada extensión, hago lo siguiente:Instalar la extensión de Python en la ubicación específica

python setup.py build_ext --inplace 
mv myext.so ../some/specific/place/ 

¿Hay una manera de especificar a distutils donde instalar mi extensión (si es posible, con una ruta relativa), en lugar de utilizar --inplace seguido por mv? Usar la opción --prefix no es bueno, ya que crea una jerarquía de carpetas que no necesito.

+0

¿Podría poner el contenido de su 'setup.py'? –

Respuesta

9

que finalmente encontró la respuesta! La opción es -b (o --build_lib)

python setup.py build_ext -b ../some/specific/place/ 
+0

Gracias, solo para observar que es '--build-lib' en lugar de' --build_lib' – Giswok

0

Tal vez podría usar la funcionalidad alternate installation de distutils que le permitirá eliminar las carpetas de jerarquía inútiles.

intentar algo como esto:

python setup.py install --home=../some/specific/place \ 
         --install-purelib=. \ 
         --install-platlib=. 
+1

Al hacerlo, instale mi extensión en el directorio actual, como con --inplace. –

Cuestiones relacionadas