首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从python脚本中切换conda环境

从python脚本中切换conda环境
EN

Stack Overflow用户
提问于 2022-03-11 22:36:48
回答 2查看 464关注 0票数 2

是否有可能使用conda环境ENV1启动Python脚本,并在脚本中的某个点切换到环境ENV2和后面的代码以在ENV2中而不是在ENV1中执行?我已经尝试了以下建议的解决方案,但它不起作用:

https://unix.stackexchange.com/questions/622383/subprocess-activate-conda-environment-from-python-script?newreg=191cf527472141d2a76a244969897af8

下面是一个示例脚本。假设我在以ENV1作为活动环境时启动脚本:

代码语言:javascript
运行
复制
import subprocess

print("Changing Conda virtual environment to 'ENV2'.")
cmd = '. $CONDA_PREFIX_1/etc/profile.d/conda.sh && conda activate ENV2 && echo $CONDA_PREFIX'
subprocess.call(cmd, shell=True, executable='/bin/bash')
print(os.environ['CONDA_PREFIX'])

我能想到的唯一可行的解决方案是将"subprocess.call(cmd,shell=True,可执行文件=‘/bin/bash’)“之后出现的所有代码保存到一个名为"script_for_ENV2.py”的分离脚本中,并将上面的脚本替换为:

代码语言:javascript
运行
复制
import subprocess

cmd = 'conda run -n ENV2 script_for_ENV2.py'
subprocess.call(cmd, shell=True, executable='/bin/bash')
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-03-11 22:41:07

是否有可能使用conda环境ENV1启动Python,并在脚本中的某个时候切换到环境ENV2,以及后面的代码将在ENV2中而不是ENV1中执行?

不,这是不可能的,至少在实际的水平上是不可能的,因为启动python脚本会创建一个在底层操作系统中运行的进程。

一种可能是您可以使用您想要的任何conda环境启动另一个 python脚本。但你为什么要这么做?

票数 0
EN

Stack Overflow用户

发布于 2022-10-14 05:43:30

我试过调查这个..。因为我也有类似的问题。这是我发现的。

  1. 使用os.system("activate < env-name >")以及在该env.

中执行的任何子进程或系统命令。

  1. ,这是我所使用的路径,因为我希望直观地看到在这个环境中执行的命令(在python脚本的windows上执行),也许可以在linux上合并某种方法?我不太确定这一点,但我会测试出来,并添加到这个,如果它是可能的,如果我找到了另一个解决方案。尽管如此,使用这个for循环,我能够在单独的窗口/环境上运行/追加同样多的命令。还可以将"cmd /k“替换为"cmd /c"以隐藏命令提示符。我希望这些方法中的一种能够帮助或为您提供一条路径。最好的,-G

my_env=[] cmdStr=“my_env.append("echo \”Running \“) my_env.append("activate”) my_env.append(“echo \”在my_env中为ii做一些事情: cmdStr = cmdStr + ii +“^&”os.system("start“+ cmdStr + "cmd /k")

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71445344

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档