如何在Jenkins上激活conda环境
我看到了这个问题,但我运行的是RHEL7.3,而不是Windows 使用以下简单的Jenkins shell脚本:如何在Jenkins上激活conda环境,jenkins,conda,Jenkins,Conda,我看到了这个问题,但我运行的是RHEL7.3,而不是Windows 使用以下简单的Jenkins shell脚本: #!/bin/bash echo $PATH echo $HOME source /app/local/anaconda3/bin/activate py35_myenv 我遇到了这样的失败: $ /bin/bash /tmp/jenkins5945453203311093000.sh /sbin:/usr/sbin:/bin:/usr/bin:/opt/teradata/cli
#!/bin/bash
echo $PATH
echo $HOME
source /app/local/anaconda3/bin/activate py35_myenv
我遇到了这样的失败:
$ /bin/bash /tmp/jenkins5945453203311093000.sh
/sbin:/usr/sbin:/bin:/usr/bin:/opt/teradata/client/15.10/bin:/app/local/anaconda3/bin:/opt/teradata/client/15.10/bin:/app/local/anaconda3/bin
/home/jenkins
/tmp/jenkins5945453203311093000.sh: line 4: /app/local/anaconda3/bin/activate: Permission denied
我尝试了chmod
将/app/local/anaconda3/bin/activate
文件设置为664(原来是660),但没有用。还尝试了chmod-ro+rx/app/local/anaconda3/envs/py35_myenv
(那里的可执行文件最初是770,现在是775)。这也无济于事。我尝试这样做的原因是因为我收到了“拒绝许可”投诉,而且这台机器上的jenkins
用户不属于这些Anaconda文件所在的组
我尝试添加#/根据建议,bin/bash
到我的Jenkins脚本的开头,但这没有帮助
普通的非Jenkins用户可以很好地激活conda环境。我试图让Jenkins在这个环境下运行自动脚本,但我无法在Jenkins作业中激活它
编辑:如果我没有提供激活的完整路径,我会收到“激活:没有这样的文件或目录”的投诉
编辑:原因activate
在上给出了664(非可执行)的chmod
<代码>激活必须是不可执行的,并通过源运行
,以便它可以对环境进行更改
Jenkins版本:2.129-1.1
chmod
664不授予您执行权限。您可以在chmod
命令中明确指定要授予或撤销的权限。它更具可读性。尝试将脚本更改为以下内容:
#!/bin/bash
echo $PATH
echo $HOME
/app/local/anaconda3/bin/activate py35_myenv
chmod ug+x /app/local/anaconda3/bin/activate
您可以使用来验证该命令是否达到预期效果
此外,如果jenkins
用户无权访问脚本的父文件夹之一,则可能会出现问题。同时尝试为父文件夹设置相同的权限。以下命令来自注释中的代码段:
sudo find . -perm 770 -exec chmod o+rx {}; \
sudo find . -perm 750 -exec chmod o+rx {}; \
sudo find . -perm 660 -exec chmod o+r {}; \
sudo find . -perm 640 -exec chmod o+r {}
将以下行添加到Jenkins中执行的shell中,因为bash shell不支持
conda init
export PATH=/path/to/anaconda3/bin:$PATH # modify this path
eval "$(conda shell.bash hook)"
conda activate your_env # change your_env based on your env name
对,我知道
chmod
664不授予可执行权限。这就是为什么我必须source
调用activate
,而不是直接执行activate
。根据:“激活文件故意不可执行,因为它必须来源。必须来源,因为它需要更改环境。如果它作为脚本运行,它将只更改用于运行脚本的子进程的环境。”如果jenkins用户没有访问脚本父文件夹之一的权限,也可能会出现问题。尝试对父文件夹设置相同的权限。谢谢!父文件夹的权限有问题。以及Anaconda安装中的“兄弟”文件夹。修复:(来自anaconda3目录)sudo-find-perm 770-exec chmod o+rx{};sudo find-perm 750-exec chmod o+rx{};sudo find-perm660-execchmodo+r{};sudo find-perm640-execchmodo+r{}代码>你介意把你的评论移到答案上吗?然后我就可以接受了,汉克斯,我刚刚接受了。另外,如果需要调整,请告诉我。