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

10 投票
3 回答
6642 浏览
提问于 2025-04-18 18:50

我需要在我们的Jenkins服务器上使用特定的conda环境来运行构建(服务器是Windows系统)。我原以为只需要简单地运行:

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 个回答

2

我觉得在Windows上,激活脚本会启动一个新的子命令行,这样当前的命令行就会立刻退出。你可以试着手动设置一些环境变量,比如PATH之类的,而不是使用激活脚本吗?

4

Bradley给了我很好的建议,我找到了解决办法……

我需要一个Windows系统中和Unix的“source”命令相对应的东西,而“call”命令可以完成这个任务,具体细节可以参考另一个回答。

Windows中“source”的批处理等价物:如何从虚拟环境中运行Python脚本

希望将来有人能觉得这个信息有用!

11

使用 call activate myenv 这个命令,可以让你在激活环境后,当前的命令行窗口不会关闭。想了解更多,可以查看这个链接:https://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/call.mspx?mfr=true

撰写回答