amit yadav
¿Cómo puedo obtener el valor de una variable de entorno en Python?
Varilla
Se accede a las variables de entorno a través de os.environ
:
import os
print(os.environ['HOME'])
Para ver una lista de todas las variables de entorno:
print(os.environ)
Si no hay una clave presente, intentar acceder a ella generará una KeyError
. Para evitar esto:
# Returns `None` if the key doesn't exist
print(os.environ.get('KEY_THAT_MIGHT_EXIST'))
# Returns `default_value` if the key doesn't exist
print(os.environ.get('KEY_THAT_MIGHT_EXIST', default_value))
# Returns `default_value` if the key doesn't exist
print(os.getenv('KEY_THAT_MIGHT_EXIST', default_value))
-
hola rod, gracias por tu efectiva respuesta sobre la ‘instalación predeterminada’; efectivo en el punto de vista para entenderlo rápidamente en lugar de ir a través de los enlaces. Eso es realmente lo aprecio 🙂 pero sobre mi (1) pregunta, mire el comando y el fragmento de salida a continuación: >>> import os >>> print os.environ[‘PYTHONPATH’] Rastreo (última llamada más reciente): Archivo “
“, línea 1, en Archivo “C:\Python25\lib\os.py”, línea 435, en obtiene el objeto devolver auto.datos[key.upper()] KeyError: ‘PYTHONPATH’ >>> print os.environ.get(‘PYTHONPATH’) Ninguno >>> // PLZ continuará…// – Amit Yadav
5 de febrero de 2011 a las 14:47
-
En la primera forma, el script arroja una excepción, mientras que en la segunda, no da ninguna. Entonces, ¿hay alguna forma de obtener un valor significativo o lo estoy haciendo de manera incorrecta? Amit.
– Amit Yadav
5 de febrero de 2011 a las 14:49
-
os.environ es un diccionario. Intentar acceder a una clave que no está presente en el diccionario generará un KeyError. El método get simplemente devuelve Ninguno cuando la clave no existe. ¿Tienes PYTHONPATH configurado? ¿Puedes probar con una variable como PATH, que está garantizado que existe? ¿Devuelve un valor significativo?
– Varilla
5 de febrero de 2011 a las 19:21
-
PYTHONPATH se usa para agregar una nueva ruta de búsqueda a Python (sys.path) desde fuera de Python. Mira esto docs.python.org/using/cmdline.html#environment-variables
– Varilla
7 de febrero de 2011 a las 14:41
-
.get()
también se le puede dar un valor predeterminado.– Gringo Suave
21/09/2018 a las 15:25
lgriffiths
Para comprobar si existe la clave (devuelve True
o False
)
'HOME' in os.environ
También puedes usar get()
al imprimir la clave; útil si desea utilizar un valor predeterminado.
print(os.environ.get('HOME', '/home/username/'))
dónde /home/username/
es el predeterminado
-
Cual es mejor,
"HOME" in os.environ
oos.environ.get('HOME')
?– endolito
3 de febrero de 2017 a las 16:11
-
@endolith Hacen cosas diferentes. El primero devuelve Verdadero o Falso, mientras que el segundo devuelve un valor, posiblemente Ninguno.
– Trentón
13 de febrero de 2018 a las 22:38
-
@endolith, la pregunta correcta sería
"HOME" in os.environ
contraos.environ.get('HOME') is None
. Como puede ver, primero es mucho más legible y cómodo para trabajar.– Konstantin Sekeresh
16 oct 2019 a las 13:43
britodfbr
En realidad se puede hacer de esta manera:
import os
for item, value in os.environ.items():
print('{}: {}'.format(item, value))
O simplemente:
for i, j in os.environ.items():
print(i, j)
Para ver el valor en el parámetro:
print(os.environ['HOME'])
O:
print(os.environ.get('HOME'))
Para establecer el valor:
os.environ['HOME'] = '/new/value'
-
No, esta respuesta realmente no agrega nada además de las respuestas existentes
– Bart
2 de mayo de 2018 a las 10:06
-
Esto debería eliminarse, es un duplicado de otras respuestas.
str.format
es solo una adición elegante.– miike3459
21 de abril de 2019 a las 16:46
-
>>> import os, pprint; pprint.pprint(list(os.environ.items()))
– noobninja
10 mayo 2020 a las 18:41
-
La primera respuesta con salida legible para todo el entorno, gracias. Para ver el env en el depurador de PyCharm, evalúo
{k: v for k,v in sorted(os.environ.items())}
– Noúmeno
4 de agosto de 2021 a las 22:55
-
agrega cómo establecer el valor
– MC
26 de noviembre de 2021 a las 10:21
scott c wilson
Aquí se explica cómo comprobar si $FOO
Está establecido:
try:
os.environ["FOO"]
except KeyError:
print "Please set the environment variable FOO"
sys.exit(1)
andrei1089
Puede acceder a las variables de entorno usando
import os
print os.environ
Intente ver el contenido de las variables de entorno PYTHONPATH o PYTHONHOME. Tal vez esto sea útil para su segunda pregunta.
Pedro Mortensen
En cuanto a las variables de entorno:
import os
print os.environ["HOME"]
erik.weather
import os
for a in os.environ:
print('Var: ', a, 'Value: ', os.getenv(a))
print("all done")
Eso imprimirá todas las variables de entorno junto con sus valores.