有没有办法从 Spyder 访问在 conda 环境中设置的环境变量?

Is there a way to access environment variables set up in conda environment from Spyder?

我正在尝试访问 运行ning Spyder 4.1.3 时在 conda 环境中设置的环境变量。当我在 Anaconda Prompt 和 运行 命令中激活 conda 环境时,我可以看到我设置的所有环境变量:

conda env config vars list

我在Spyder中也有Python解释器设置为正确的虚拟环境,可以确认环境是可访问的(在Spyder屏幕右下角显示为conda环境,安装在环境中的包可以加载).

然而,当我尝试在脚本中调用环境变量时,如下所示:

from boxsdk import JWTAuth

auth = JWTAuth(
    client_id= clientID,
    client_secret= clientSecret,
    enterprise_id= enterpriseID,
    jwt_key_id= publicKeyID,
    rsa_private_key_data= privateKey,
    rsa_private_key_passphrase= passphrase
)

我收到此错误(varName 是通用变量名称):

NameError: name 'varName' is not defined

我检查以确保脚本中的变量名也与 conda 环境变量中的变量名匹配。 TIA 寻求任何帮助或建议。

通常在python中访问环境变量需要导入os包并使用os.getenv()访问变量。从我从 anaconda 文档中可以看出,这将是相同的方法。当脚本为 运行 时,所有环境变量都存储在字典中,可以使用变量名作为键来访问该字典。这与 .get() 与常规词典的工作方式非常相似,您可以设置默认值,在这种情况下,默认值由 os 包设置为 None。您可以在 运行 脚本时使用 print(os.environ) 打印整个环境变量字典来检查您的环境变量是否被正确加载。

import os
from boxsdk import JWTAuth

auth = JWTAuth(
    client_id= os.getenv('clientID'),
    client_secret= os.getenv('clientSecret'),
    enterprise_id= os.getenv('enterpriseID'),
    jwt_key_id= os.getenv('publicKeyID'),
    rsa_private_key_data= os.getenv('privateKey'),
    rsa_private_key_passphrase= os.getenv('passphrase')
)

我假设所有这些变量都是环境变量,如果不是这样,请从不是环境变量的变量中删除 os.getenv()