Pertanyaan Bagaimana cara mengakses variabel lingkungan dari Python?


Saya menetapkan variabel lingkungan yang ingin saya akses dalam aplikasi Python saya. Bagaimana saya mendapatkan nilai ini?


1274
2018-02-05 13:03


asal


Jawaban:


Variabel lingkungan diakses melalui os.environ

import os
print(os.environ['HOME'])

Atau Anda dapat melihat daftar semua variabel lingkungan menggunakan:

os.environ

Terkadang Anda mungkin perlu melihat daftar lengkap!

# using get will return `None` if a key is not present rather than raise a `KeyError`
print(os.environ.get('KEY_THAT_MIGHT_EXIST'))

# os.getenv is equivalent, and can also give a default value instead of `None`
print(os.getenv('KEY_THAT_MIGHT_EXIST', default_value))

Instalasi standar Python pada Windows C:\Python. Jika Anda ingin mencari tahu saat menjalankan python yang dapat Anda lakukan:

import sys
print(sys.prefix)

1944
2018-02-05 13:18



Untuk memeriksa apakah kunci itu ada (kembali True/False)

"HOME" in os.environ

atau (dihapus dari python 3.x)

os.environ.has_key("HOME")

Anda juga bisa menggunakan get() saat mencetak kunci; berguna jika Anda ingin menggunakan default.     (untuk python 2.7.3)

print os.environ.get('HOME','/home/username/')

dimana /home/username/ adalah standarnya


130
2017-07-12 08:14



Pertanyaan asli (bagian pertama) adalah "cara memeriksa variabel lingkungan dengan Python."

Berikut cara memeriksa apakah $ FOO disetel:

try:  
   os.environ["FOO"]
except KeyError: 
   print "Please set the environment variable FOO"
   sys.exit(1)

33
2018-03-29 13:58



Anda dapat mengakses variabel lingkungan menggunakan

import os
print os.environ

Cobalah untuk melihat konten variabel lingkungan PYTHONPATH atau PYTHONHOME, mungkin ini akan membantu untuk pertanyaan kedua Anda. Namun Anda harus mengklarifikasi itu.


21
2018-02-05 13:07



Adapun variabel lingkungan:

import os
print os.environ["HOME"]

Saya takut Anda harus menyempurnakan titik kedua Anda sedikit lebih jauh sebelum jawaban yang layak adalah mungkin.


13
2018-02-05 13:07



import os
for a in os.environ:
    print('Var: ', a, 'Value: ', os.getenv(a))
print("all done")

Itu akan mencetak semua variabel lingkungan beserta nilainya.


9
2018-03-28 15:46



Dengan Python 3:

#!/usr/bin/python3
import os
for param in os.environ.keys():
    print("%s: %s " % (param, os.environ[param]))

6
2018-02-21 11:16



Jika Anda berencana untuk menggunakan kode dalam kode aplikasi web produksi,
menggunakan kerangka web seperti Django / Flask, gunakan proyek seperti envparse, menggunakannya Anda dapat membaca nilai sebagai jenis yang Anda tetapkan.

from envparse import env
# will read WHITE_LIST=hello,world,hi to white_list = ["hello", "world", "hi"]
white_list = env.list("WHITE_LIST", default=[]) 
# Perfect for reading boolean
DEBUG = env.bool("DEBUG", default=False)

CATATAN: kennethreitz autoenv adalah alat yang direkomendasikan untuk membuat variabel lingkungan spesifik proyek, harap dicatat bahwa mereka yang menggunakan autoenv tolong pertahankan .env file pribadi (tidak dapat diakses oleh publik)


6
2018-01-10 04:12



Berikut ini adalah opsi satu baris dengan asumsi impor os sudah selesai:

for key in os.environ: print(key,':',os.environ[key])

atau dengan format:

for key in os.environ: print('{:>30} {:<4} {:}'.format(key,':',os.environ[key]))

1
2018-03-27 07:34



Sebenarnya mungkin ini:

import os

for item, value in os.environ.items():
    print('{}: {}'.format(item, value))

Atau sederhananya:

for i, j in os.environ.items():
    print(i, j)

untuk melihat nilai dalam parameter:

print(os.environ['HOME'])

atau

print(os.environ.get('HOME')

untuk mengatur nilainya:

os.environ['HOME'] = '/new/value'

-1
2018-03-10 15:52