2012-05-09 16 views
6

Quiero crear un virtualenv sin paquetes globales de python, pero con la distribución scipy compartida; la instalación de scipy lleva bastante tiempo y no quiero realizar los movimientos con demasiada frecuencia.add2virtualenv (envoltorio virtualenv) no funciona con scipy

Ejecuto add2virtualenv /Library/Python/2.7/site-packages/scipy y después de ejecutar add2virtualenv muestra que el directorio está agregado. (He doblecheck, es el directorio correcto). Luego publico workon myfile para asegurarme de que los directorios de trabajo se vuelven a cargar. Sin embargo, cuando intento cargar scipy, es ImportError: No module named scipy. Esto es inesperado.

¿Alguien ha utilizado un scipy global en un sitio no global de paquetes virtualenv?

+1

add2virtualenv agrega el directorio especificado a PYTHONPATH. Por lo tanto, debe agregar todo su paquete de sitio para importar scipy. – rubik

+1

Una solución alternativa debería ser el enlace simbólico del directorio scipy dentro del paquete de sitio de env virtual – rubik

+0

Gracias. Así que malinterpreté la forma en que debería usarse add2virtualenv. ¿No hay ningún comando que haga que sea fácil agregar un paquete específico? (aparte de symlinking?) – Okke

Respuesta

3

Por lo tanto, para resumir, el problema real aquí es que se debe usar el directorio, incluidos los paquetes que se importarán, en lugar del paquete específico. Es decir, en lugar de

add2virtualenv /Library/Python/2.7/site-packages/scipy 

Debe ser

add2virtualenv /Library/Python/2.7/site-packages 

Cuidado: esta solución tiene el inconveniente de que no sólo incluye scipy, pero cualquier otro paquete en /Library/Python/2.7/site-packages.


Un directorio scipy alternativo, solución de espacio-eficiente podría ser enlaces simbólicos dentro de paquete de sitio del env virtual. Esto se puede hacer, en su env virtual, a través de:

cdsitepackages 
ln -s /Library/Python/2.7/site-packages/scipy scipy 

Todos los créditos van a @rubik (ver los comentarios)

Salida this respuesta a encontrar su camino site-packages en caso de que sea diferente al que se usa aquí.