python - tutorial - the django project
establecer pythonpath antes de importar instrucciones (2)
Como también se observa en los documentos here .
Vaya a Python XX/Lib
y agregue estas líneas al site.py
allí,
import sys
sys.path.append("yourpathstring")
Esto cambia su sys.path
para que en cada carga, tenga ese valor en ella ..
Como se indica here sobre site.py
,
Este módulo se importa automáticamente durante la inicialización. La importación de este módulo agregará rutas específicas del sitio a la ruta de búsqueda del módulo y agregará algunos builtins.
Para otros métodos posibles de agregar alguna ruta a sys.path
vea here
Mi código es:
import scriptlib.abc
import scriptlib.xyz
def foo():
... some operations
pero el scriptlib está en otro directorio, así que tendré que incluir ese directorio en la variable de entorno "PYTHONPATH".
¿Hay alguna forma en que pueda agregar primero el directorio scriptlib en la variable de entorno "PYTHONPATH" antes de que se ejecute la instrucción de importación como:
import sys
sys.path.append(''/mypath/scriptlib'')
import scriptlib.abc
import scriptlib.xyz
def foo():
... some operations
Si es así, ¿es el valor solo para ese símbolo del sistema o es global?
Gracias por adelantado
Esto agregará una ruta a su proceso / instancia de Python (es decir, el ejecutable en ejecución). La ruta no se modificará para ningún otro proceso de Python. Otro programa en ejecución de Python no tendrá su ruta modificada, y si sale de su programa y se ejecuta nuevamente, la ruta no incluirá lo que agregó antes. Lo que estás haciendo es generalmente correcto.
set.py:
import sys
sys.path.append("/tmp/TEST")
loop.py
import sys
import time
while True:
print sys.path
time.sleep(1)
ejecutar: python loop.py &
Esto ejecutará loop.py, conectado a su STDOUT, y continuará ejecutándose en segundo plano. Luego puede ejecutar python set.py
Cada uno tiene un conjunto diferente de variables de entorno. Observe que la salida de loop.py
no cambia porque set.py
no cambia el loop.py
de loop.py
Una nota sobre la importación
Las importaciones de Python son dinámicas, como el resto del lenguaje. No hay enlaces estáticos pasando. La importación es una línea ejecutable, al igual que sys.path.append...