我需要在我们的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可执行文件吗?
答案 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?