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

2024-05-13 10:41:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图在运行Spyder 4.1.3时访问在conda环境中设置的环境变量。在Anaconda提示符和运行命令中激活conda环境时,我可以看到我设置的所有环境变量:

conda env config vars list

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

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

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寻求任何帮助或建议


Tags: key脚本clientid环境环境变量anacondaprivate
1条回答
网友
1楼 · 发布于 2024-05-13 10:41:20

通常在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()

相关问题 更多 >