在 python 脚本中切换环境

Switching environments within a python script

我有一个 python 脚本需要调用 matlab 引擎,这样我就可以使用代码库(许多函数)而不必将大量代码重写到 python 中。问题是我为 运行ning matlab 找到的解决方案需要设置环境。我已经为 运行 我的脚本设置了一个环境,我需要能够在它们之间切换。我可以用 os 做到这一点吗?我在本地 hosted jupyter 会话中 linux 虚拟机中的 windows 机器上 运行ning 这个。

jmatlab 示例 https://am111.readthedocs.io/en/latest/jmatlab_install.html

伪代码让你了解我想做什么...

os.environ["jmatlab"]
#matlab engine stuff...
os.environ["orignal_env"]

我觉得我以前回答过类似的问题,但找不到完全合适的。不能像 OP 描述的那样将 Python 进程 mid-execution 切换为进行 context-sensitive 评估。但是,os.systemsubprocess.run 可以在另一个环境中使用 运行 其他 Python 代码(作为单独的脚本)。没有详细的模拟示例,我们无法详细说明跨进程的数据共享。但它会在其他环境中广泛使用 conda run -n jmatlab python matlab_engine_stuff.py 到 运行。

尝试查看 conda run(例如,conda run --help)。 This answer 也是松散相关的,尽管它是关于 Python 环境之外的 运行ning 系统命令。在单独的 Python 2 和 3 进程下,运行ning 代码子部分可能有一些适用的解决方案。