2010-04-30 9 views
11

yolk -l me da información de que tengo 114 paquetes instalados en mi Ubuntu 10.04. Después de crear nuevo directorio virtualenv usandoproblema de la yema de huevo virtualenv

virtualenv virt_env/virt1 --no-site-packages --clear

que me pasa a eso, mi pronta y luego cambió yolk -l me da de nuevo los mismos 114 paquetes.

¿Qué está pasando allí?

+0

Instalar yema en el entorno virtual ayudó ... bastante extraño. –

Respuesta

18

La activación de un virtualenv funciona cambiando el shell PATH para que el bin/directorio del virtualenv sea el primero. Esto es todo lo hace. Esto significa que cuando ejecuta "python", ejecuta la copia del virtualenv del binario de Python en lugar de su python del sistema global.

Si tiene yema instalada globalmente, sin embargo, el único binario "yema" en su RUTA es/usr/local/bin/yema o algo así; activar el virtualenv no cambia esto (porque no hay script "yema" en tu bin/directorio virtualenv). Y la secuencia de comandos/usr/local/bin/yolk naturalmente tiene el intérprete de Python del sistema en su línea shebang.

Es por eso que instalar yema en el virtualenv soluciona el problema; porque agrega una secuencia de comandos de yema en su bin/directorio virtualenv que tiene el pitón de virtualenv en su línea shebang.

Si no desea instalar yema en cada archivo virtual, también puede copiar el script-wrapper de yema de/usr/local/bin o donde sea que esté en el directorio bin de su empresa virtual, y cambiar manualmente la línea shebang para señalar a la pitón de tu virtualenv Sin embargo, esto no funcionará con un --no-site-packages virtualenv, ¡porque el envoltorio de script no podrá encontrar los paquetes de yema reales que necesita importar! Si desea usar yema dentro de un --no-site-packages virtualenv, realmente su única opción es instalarlo allí.

+1

Esto se puede hacer de forma automática cada vez que cree un venv con un script de arranque: http://www.virtualenv.org/en/latest/#creating-your-own-bootstrap-scripts – Hollister

+0

Si está utilizando virtualenvwrapper (que Lo recomiendo mucho), agregue 'pip install yolk' a su archivo postmkvirtualenv. http://www.doughellmann.com/docs/virtualenvwrapper/scripts.html#scripts-postmkvirtualenv – Hollister

0

Si el problema no se relaciona con su ruta (supongo que lo es) elimine su lib y la carpeta de scripts en su directorio de proyecto para borrar la configuración de virtualenv. Recrear el env virtual utilizando la línea de comando que ha publicado. Activa el virtualenv y luego instala yema.

+1

Como alternativa, pruebe "qué yema"; si está en (suvirtualenv)/bin, intente cerrar su terminal y volver a abrirlo, activando tu virtualenv y prueba 'yolk -l' una vez más. Me lo arregló – maxm

Cuestiones relacionadas