【问题标题】:How to activate conda environment in jenkins build如何在 jenkins build 中激活 conda 环境
【发布时间】:2014-08-28 10:39:46
【问题描述】:

我需要在我们的 jenkins 服务器(在 Windows 上运行)上使用特定的 conda 环境运行 jenkins build。我以为它会像跑步一样简单:

activate myenv
python test_env.py

但这似乎会导致构建在脚本启动之前退出。这是詹金斯控制台日志:

activate myenv
Activating environment "myenv"...
Finished: SUCCESS

如果我删除激活行,python 脚本可以正常执行。

仅供参考,我正在运行的脚本:

import os

f = open('env.txt','w')

for k, v in os.environ.iteritems():
    print k, v
    f.write('%s\t%s\n' % (k,v))
f.close()

有人知道发生了什么吗?我应该直接调用相关的python可执行文件吗?

【问题讨论】:

    标签: python windows jenkins environment conda


    【解决方案1】:

    使用call activate myenv 防止activate 在当前shell 完成时结束它。见https://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/call.mspx?mfr=true

    【讨论】:

    • 这行得通,尽管它现在在 conda 环境中,但它找不到 python。 jenkins 似乎并不关心哪个 conda 环境处于活动状态。
    【解决方案2】:

    布拉德利带领我朝着正确的方向前进,我找到了解决方案......

    我需要一个与 Unix“源”等效的 Windows,而“调用”可以完成这项工作,如其他答案中所述。

    batch equivalent of "source" on windows: how to run a python script from a virtualenv

    我希望将来有人会发现这对您有帮助!

    【讨论】:

      【解决方案3】:

      我认为 Windows 上的激活脚本会启动一个新的子 shell,这意味着当前的 shell 会立即存在。您可以尝试手动设置 PATH 等 ENV 变量而不是使用激活吗?

      【讨论】:

      • 嗨布拉德利,是的,我想这样做,基本上将 myenv/bin 和 myenv/Scripts 文件夹添加到 PATH。我问这个问题是因为我不知道“激活”还有什么作用……这就足够了吗?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-06-08
      • 2019-08-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-16
      • 1970-01-01
      相关资源
      最近更新 更多