2011-01-21 5 views
64

¿Qué archivo edito y cómo? Creé un entorno virtual.¿Cómo configuras tu ruta de acceso en una Virtualenv ya creada?

+9

Utilice el comando [add2virtualenv] (http://virtualenvwrapper.readthedocs.org/en/latest/command_ref.html#add2virtualenv). – s29

+0

compruebe que apunta a los directorios correctos. Si aún no tiene uno, haga clic en el botón Nuevo y créelo. –

+2

add2virtualenv es un comando 'virtualenvwrapper'. No es parte de 'virtualenv'. – kojiro

Respuesta

91

Si desea cambiar el PYTHONPATH utilizado en un virtualenv, se puede añadir la siguiente línea a su virtualenv de bin/activate archivo:

export PYTHONPATH="/the/path/you/want" 

De esta manera, el nuevo PYTHONPATH se ajustará cada vez que utilice este virtualenv.

EDIT:(para contestar @ comentario de RamRachum)

tenerlo restaura a su valor original en deactivate, se podría añadir

export OLD_PYTHONPATH="$PYTHONPATH" 

antes de la línea antes mencionada, y añadir la siguiente línea para su secuencia de comandos bin/postdeactivate.

export PYTHONPATH="$OLD_PYTHONPATH" 
+1

¿También se eliminará en 'deactivate'? –

+0

@RamRachum editó mi respuesta – MatToufoutu

+1

Entonces, ¿esto significa que un entorno virtual recién creado tiene el 'PYTHONPATH' predeterminado (el global) en lugar de la ruta local virtualenv? – ducin

-16

que ya está resuelta aquí ->Is my virtual environment (python) causing my PYTHONPATH to break?

UNIX/LINUX

Añadir "PYTHONPATH exportación =/usr/local/lib/python2.0" a este archivo ~/.bashrc y la fuente tecleando "fuente ~/.bashrc" O ". ~/.bashrc".

WINDOWS XP

1) Ir al panel de control 2) Haga doble clic en Sistema 3) Ir a la ficha Opciones avanzadas 4) Haga clic en Variables de entorno

En la ventana de variables del sistema, compruebe si usted tiene una variable llamada PYTHONPATH. Si ya tiene uno, verifique que apunta a los directorios correctos. Si aún no tiene uno, haga clic en el botón Nuevo y créelo.

PYTHON CÓDIGO

Como alternativa, también se puede hacer por debajo de su código: -

import sys 
sys.path.append("/home/me/mypy") 
+3

-1: Esto se dirige a PYTHONPATH del usuario, no a PYTHONPATH de virtualenv. – twneale

47

El comentario de @ S29 debe ser una respuesta:

Una forma de añadir un directorio para el entorno virtual es instalar virtualenvwrapper (lo cual es útil para muchas cosas) y luego hacer

mkvirtualenv myenv 
workon myenv 
add2virtualenv . #for current directory 
add2virtualenv ~/my/path 

Si desea eliminar estos ruta editar el archivo myenvhomedir/lib/python2.7/site-packages/_virtualenv_path_extensions.pth

Documentación sobre virtualenvwrapper se puede encontrar en http://virtualenvwrapper.readthedocs.org/en/latest/

Documentación específica sobre esta función se puede encontrar en http://virtualenvwrapper.readthedocs.org/en/latest/command_ref.html?highlight=add2virtualenv

+5

para eliminar: 'add2virtualenv -d' – thecheech

1

he modificado mi script de activación a la fuente el archivo .virtualenvrc, si es que existe en el directorio actual, y para salvar/restaurar PYTHONPATH de activar/desactivar.

You can find the patched activate script here.. Es un reemplazo directo para el script de activación creado por virtualenv 1.11.6.

Luego añade algo como esto a mi .virtualenvrc:

export PYTHONPATH="${PYTHONPATH:+$PYTHONPATH:}/some/library/path" 
1

Después de inicializar su vertualenv (1 cd Venv y 2. ubicación de procedencia/activar.).

acaba de establecer o cambiar la ruta de Python mediante la introducción de comandos siguiente-

PYTHONPATH exportación = '/ home/django/srmvenv/lib/python3.4'

para el control de ruta pitón introducir 1)

type python then 
>> import sys 
>> sys.path 

usted ... Gracias

1

se puede crear un archivo de .pht que contiene el directorio para buscar, una d colóquelo en el directorio site-packages. Ej .:

cd $(python -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())") 
echo /some/library/path > some-library.pth 

el efecto es el mismo que sumar /some/library/path a sys.path, y permanecen local a la configuración virtualenv.

+1

Me gusta mucho este enfoque; no tan voluble como agregar líneas para activar/desactivar y no requiere el uso de virtualenvwrapper. Si prefiere no invocar a python para encontrar el directorio site-packages dir, se encuentra en la ruta bastante predecible '$ VIRTUALENV_ROOT/lib/pythonX.Y/site-packages'. Documentos en archivos .pth: https://docs.python.org/3.6/library/site.html – Alec

Cuestiones relacionadas