10

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

4

3 回答 3

11

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

于 2014-08-28T18:40:22.397 回答
4

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

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

Windows 上相当于“源”的批处理:如何从 virtualenv 运行 python 脚本

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

于 2014-08-28T15:41:15.033 回答
2

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

于 2014-08-28T14:02:33.383 回答