modules from example another __all__ python linux unix environment-variables

from - En el script de Python, ¿cómo configuro PYTHONPATH?



python modules list (5)

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

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

Sé cómo configurarlo en mi / etc / profile y en mis variables de entorno.

Pero, ¿y si quiero configurarlo durante un script? ¿Es import os, sys? ¿Cómo lo hago?


Perdón por volver a abrir la pregunta, pero creo que puede ayudar a alguien:

Si coloca sys.path.append(''dir/to/path'') sin verificar, ya está agregado, puede generar una lista larga en 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 molestaba a alguien reabriendo la pregunta.


Puede obtener y establecer variables de entorno a través de os.environ :

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

Pero dado que su intérprete ya se está ejecutando, esto no tendrá ningún efecto. Es mejor que uses

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

que es la matriz en la que se transformará tu PYTHONPATH al inicio del intérprete.


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


No configura 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 dividiendo el valor de PYTHONPATH en el carácter separador de ruta ( : en sistemas similares 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. (Ese no sería el caso con los directorios que especifique en PYTHONPATH ).