我需要在Python脚本中设置一些环境变量,我希望从Python调用的所有其他脚本都能看到环境变量的设置。

如果我这样做了,

os.environ["DEBUSSY"] = 1

它抱怨说1必须是一个字符串。

我还想知道如何读取Python中的环境变量(在脚本的后一部分),一旦我设置它。


当前回答

延迟回答,可以帮助人们快速测试而无需更改代码。只需运行你的应用程序,附上环境变量,如下所示:

 $ DEBUSSY=1 python3 api.py

你可以通过这种方式将env变量传递给任何脚本。

其他回答

下面这些呢?

os.environ["DEBUSSY"] = '1'
debussy = int(os.environ.get('DEBUSSY'))
print(type(debussy))

<类“int”>

设置变量:

使用键的赋值方法:

import os    
os.environ['DEBUSSY'] = '1'  #Environ Variable must be string not Int

为了得到或检查它是否存在,

因为操作系统。Environ是一个实例,您可以尝试对象方式。

方法1:

os.environ.get('DEBUSSY') # this is error free method if not will return None by default

将得到'1'作为返回值

方法2:

os.environ['DEBUSSY'] # will throw an key error if not found!

方法3:

'DEBUSSY' in os.environ  # will return Boolean True/False

方法4:

os.environ.has_key('DEBUSSY') #last 2 methods are Boolean Return so can use for conditional statements

如果我做os。environ["DEBUSSY"] = 1,它 抱怨说1必须是 字符串。

然后做

os.environ["DEBUSSY"] = "1"

我还想知道如何阅读 python中的环境变量(在 脚本的后面部分)一旦我设置 它。

只需使用os。environ["德彪西"],如在

some_value = os.environ["DEBUSSY"]

那么os呢?environ["DEBUSSY"] = '1'?环境变量总是字符串。

有一个很好的开箱即用的Python解决方案叫做pycrosskit。 它将为Linux和Windows创建持久的环境变量。

用法:

# Will Set Persistent Value for Variable in System
# * subkey works only for windows like file in folder
# * reg_path works only for windows as register path 
SysEnv.set_var(name, value, subkey, reg_path=default_reg_path)

# Will Get Persistent Value for Variable in System
# * reg_path works only for windows as register path
# * delete, deletes key from environment and its subkeys after read
SysEnv.get_var(name, reg_path=default_reg_path, delete=False)