【问题标题】:Conda defined environment variable not seen by program程序看不到 Conda 定义的环境变量
【发布时间】:2021-04-05 18:34:43
【问题描述】:

我有一个python项目,结构如下:

conda.yml我定义了一些环境变量如下:

name: terraform_module_overview
dependencies:
  - pip
  - pip:
      - stashy
      - oauthlib
      - requests_oauthlib
variables:
  - BB_USER=someUser

而在python程序python/terraformModuleMarkdownGenerator.py中,我尝试读取环境变量如下:

import os

print(os.getenv("BB_USER")

然后当我尝试使用 conda 环境执行它时,在项目的根目录下使用以下命令:

conda env create --file conda.yml && \
  conda run -n terraform_module_overview python/terraformModuleMarkdownGenerator.py

它成功安装了依赖项:

正在收集包元数据 (repodata.json):...工作中...完成

解决环境:...工作...完成

安装 pip 依赖项:...工作中...完成

...但是在执行时它失败了:

错误 conda.cli.main_run:execute(33): 'conda run 的子进程 ['python/terraformModuleMarkdownGenerator.py']' 命令失败。 (看 以上错误)

错误:环境中未定义 BB_USER

我在这里缺少什么?

【问题讨论】:

  • 手动激活时是否定义?例如,conda activate terraform_module_overview && echo "$BB_USER"。另外,你的 Conda 版本是多少?
  • 它成功激活了环境(因为它改变了终端的提示),但回显返回 null。我的 conda 版本是 4.9.2
  • 是的,我错过了回复,对不起

标签: python conda


【解决方案1】:

看起来定义变量的语法不正确 (see documentation)。相反,尝试

conda.yml

name: terraform_module_overview
dependencies:
  - pip
  - pip:
    - stashy
    - oauthlib
    - requests_oauthlib
variables:
  BB_USER: someUser

【讨论】:

    猜你喜欢
    • 2014-08-25
    • 2021-10-27
    • 1970-01-01
    • 2021-10-20
    • 2019-03-01
    • 2016-07-30
    • 2018-02-17
    • 2015-05-10
    • 1970-01-01
    相关资源
    最近更新 更多