如何在jenkins构建中激活conda环境

时间:2014-08-28 10:39:47

标签: python windows jenkins environment conda

我需要在我们的jenkins服务器(在Windows上运行)上使用特定的conda环境运行jenkins构建。我认为这就像跑步一样简单:

activate myenv
python test_env.py

但这似乎导致构建在脚本开始之前退出。这是jenkins控制台日志:

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可执行文件吗?

3 个答案:

答案 0 :(得分:9)

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

答案 1 :(得分:3)

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

我需要一个与Unix相同的窗口"源"和"调用"做这项工作,详见另一个答案。

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

我希望有人会在将来发现这有用!

答案 2 :(得分:2)

我认为Windows上的激活脚本会启动一个新的子shell,这意味着当前的shell会立即存在。你能尝试手动设置像ENVH这样的ENV变量,而不是使用activate?