2010-06-24 26 views

Respuesta

128

No establece PYTHONPATH, agrega entradas a sys.path. Es una lista de directorios que deben buscarse en los paquetes de Python, por lo que puede agregar sus directorios a esa lista.

sys.path.append('/path/to/whatever') 

De hecho, sys.path se inicializa mediante la división del valor de PYTHONPATH en el carácter separador de ruta (: en sistemas parecidos a Linux, ; en Windows).

También puede agregar directorios usando site.addsitedir, y ese método también tendrá en cuenta los archivos .pth existentes dentro de los directorios que pase. (Eso no sería el caso con los directorios que especifique en PYTHONPATH.)

+3

Han pasado muchos años desde que se publicó esta respuesta, pero aún quiero agregar que si desea asegurarse de que Python verifique el nuevo directorio antes que todos los demás al importar, debe poner el nuevo directorio primero en el list, como en 'sys.path.insert (0, '/ path/to/whatever')'. – wecsam

25

que se ofrecen y las variables de entorno establecidas a través de os.environ:

import os 
user_home = os.environ["HOME"] 

os.environ["PYTHONPATH"] = "..." 

Pero como su intérprete ya funciona, esto no tendrá ningún efecto. Su mejor usar

import sys 
sys.path.append("...") 

que es la matriz, su PYTHONPATH se transformará en el inicio de intérprete.

4

PYTHONPATH termina en sys.path, que puede modificar en tiempo de ejecución.

import sys 
sys.path += ["whatever"] 
+0

¿Hay alguna razón para preferir esta respuesta a la de @DavidZ? – Dror

9

Lo siento por reabrir la cuestión, pero creo que puede ayudar a alguien:

Si pones sys.path.append('dir/to/path') sin comprobar que ya se ha añadido, se podría generar una larga lista de sys.path. Por eso, recomiendo esto:

import sys 
import os # if you want this directory 

try: 
    sys.path.index('/dir/path') # Or os.getcwd() for this directory 
except ValueError: 
    sys.path.append('/dir/path') # Or os.getcwd() for this directory 

Lo siento si molesté a alguien que reabrió la pregunta.

+0

Agradable. Muy pitónico – PartialOrder

0

puede configurar PYTHONPATH, por os.environ['PATHPYTHON']=/some/path, luego debe llamar al os.system('python') para reiniciar el shell de python y hacer que la nueva ruta agregada sea efectiva.

Cuestiones relacionadas