栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Python-通过Shell脚本激活conda env

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python-通过Shell脚本激活conda env

错误消息很有帮助-告诉您在运行脚本的子外壳中未正确设置conda。要在脚本中使用conda,您将需要(如错误消息所述)运行

conda initbash
(或您的外壳是什么)首先。conda的行为及其设置方式取决于您的conda版本,但4.4+版本行为的原因
conda
是取决于conda
shell本身通常设置的某些环境变量。最重要的是,此变更日志条目解释了为什么您的
condaactivate
deactivate
命令在4.4及更高版本中不再表现出预期的行为。

有关此问题的更多讨论,请参见GitHub上的官方conda问题。


编辑:更多研究告诉我,

condainit
错误消息中提到的功能实际上是v4.6.0的新功能,该功能允许快速设置环境,以便您可以使用它
condaactivate
来代替旧的
sourceactivate
。但是,这样做的原因是它添加/更改了当前shell的几个环境变量,并且还更改了RC文件(例如
.bashrc
:),并且RC文件的更改从未在当前shell中被获取-
仅在新创建的容器中贝壳。(除非您当然再次提供.bashrc)。实际上,
conda init --help
尽可能多地说:

重要信息:运行后

conda init
,大多数外壳都需要关闭并重新启动才能使更改生效

但是,你显然已经运行

conda init
,因为你 能够使用
condaactivate
交互。实际上,如果打开.bashrc,您应该能够看到conda教您的shell在哪里寻找conda命令,从而添加了几行内容。但是,脚本的问题在于,.bashrc
不是
由运行shell脚本的子shell所提供的(有关更多信息,请参见此答案)。这意味着,即使您非登录交互式shell看到了conda命令,您的非交互式脚本子shell也不会-
不管您调用多少次
conda init

这就导致了一个猜想(我自己在Linux上没有conda,所以我无法对其进行测试),可以通过如下方式运行您的脚本:

bash -i shell_script.sh

您应该可以

condaactivate
正常工作。为什么?
-i
是一个bash标志,告诉外壳程序您将开始以交互方式运行,这意味着它将自动获取您的.bashrc。这应该足以使您能够像正常使用一样在脚本中使用conda。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/638333.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号