Sé cómo configurarlo en mi/etc/profile y en mis variables de entorno.En la secuencia de comandos de Python, ¿cómo configuro PYTHONPATH?
Pero, ¿qué ocurre si quiero configurarlo durante un script? ¿Es import os, sys? ¿Cómo lo hago?
Sé cómo configurarlo en mi/etc/profile y en mis variables de entorno.En la secuencia de comandos de Python, ¿cómo configuro PYTHONPATH?
Pero, ¿qué ocurre si quiero configurarlo durante un script? ¿Es import os, sys? ¿Cómo lo hago?
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
.)
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.
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.
Agradable. Muy pitónico – PartialOrder
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.
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