我正在基于 conda 环境文件在 azureml 中配置环境。然而,azureml 环境似乎忽略了 enviromnet 变量。
from azureml.core import Environment
from azureml.core.conda_dependencies import CondaDependencies
CondaDependencies._VALID_YML_KEYS.append("variables")
pipeline_env = Environment.from_conda_specification("pipeline_env", "env.yml")
print(pipeline_env.environment_variables)
这将导致打印以下内容。
{'EXAMPLE_ENV_VAR': 'EXAMPLE_VALUE'}
我的 env.yml 在底部包含以下部分
variables:
- KEY_ONE: 1.1.0.1
- KEY_TWO: 1.1.0.1
如果我将环境保存到这样的目录
pipeline_env.save_to_directory("env")
它会生成一个名为“env”的文件夹,其中包含两个文件。
- conda_dependencies.yml
- azureml_environment.json
在 azureml_environment 我可以看到我的两个键不存在。但是它们确实存在于 conda_dependancies.yml 中,这向我表明它们在 env.yml 文件中被正确定义。
如图所示,我还必须将“varialbes”键添加为有效的 yml 键,如果不是 azureml 则会引发错误。
我开始怀疑 azureml 不允许这种设置环境变量的方法,并且正确设置它们的唯一方法是使用以下方法:
pipeline_env.environment_variables = {"KEY_ONE", "1.1.0.1",
"KEY_TWO", "1.1.0.1")
由于这确实有效,但我更喜欢使用 .yml 文件。所以我想我的问题是:我应该能够使用 .yml 文件设置环境变量,还是我的假设正确,我必须使用 enviroment_variables 函数?