Tengo una pieza compleja de software que no puedo publicar, ni tengo un ejemplo concreto de trabajo. Trataré de explicar el problema, quizás alguien haya encontrado esto antes.os.getenv devuelve Ninguno en lugar de valor correcto
Por LINUX concha he definido una variable de entorno:
> export MY_TEST_ENV=4711
> echo $MY_TEST_ENV
> 4711
Dentro del código complejo que quiero obtener esta variable con
print os.getenv('MY_TEST_ENV')
que siempre vuelve None
. Si creo un script de prueba para probar este comportamiento, incluso con clases en diferentes archivos, siempre obtengo el comportamiento deseado (es decir, os.getenv('MY_TEST_ENV')
devuelve el valor correcto 4711
).
El código se inicia como 'sudo'.
¿Alguna idea de cuál podría ser el motivo?
¿Cómo está ejecutando este "código complejo"? – geoffspear
¿El resto de las variables de entorno aún están allí? ¿Cómo se lanza el proceso Python? Si inicia un proceso con la llamada al sistema 'execve' y no completa _not_ la variable de entorno, el entorno del hijo se pone a cero. – alexis
Sabía que la solución a mi problema es trivial, ¡porque ejecuto el proceso de python como sudo! Pero no he visto esta solución hasta que se me preguntó cómo ejecutar el código. Sin sudo, veo la variable (pero el resto del código no funcionará, sin embargo). – Alex