【问题标题】:activate another conda env inside python code在 python 代码中激活另一个 conda env
【发布时间】:2025-12-03 22:00:01
【问题描述】:

我需要同时使用 python2.7 和 python3.6 来完成一项任务。我使用 conda 创建了两个 python 环境。我知道如何使用 shell 脚本来控制代码运行和在不同环境之间切换。假设我需要先运行 python2.7 代码,然后运行 ​​python 3.6。我的问题是我可以先运行python 2.7代码,然后在python 2.7代码中,直接激活python3.6 conda env,然后运行python 3.6代码吗?

【问题讨论】:

  • 你为什么要这么做?
  • 为什么不直接(反向)移植代码?
  • 因为有些依赖只有python2.x版本..

标签: python conda


【解决方案1】:

对于您的任务,只需使用以下命令从 python 调用 shell 即可更改环境:

your python 2.7 code

os.system("Command to change your kernel")  

your python 3.6 code

也许您需要添加一些额外的代码来获取输出或新输​​入(如果有) 并继续运行代码。

如果这不起作用,直接从命令调用 python 3.6 函数可能更容易:

os.system("python3 '/function36.py' ")

或者也使用 2.7 代码中的函数 subprocess.call

return_code = subprocess.call("python3 '/function36.py'", shell=True)  

使用 Python 3.6 你也可以使用 subprocess.run()

【讨论】: