【发布时间】:2021-11-26 01:00:01
【问题描述】:
有没有办法在Windows下运行python模块subprocess,但是使用安装在wsl中的Ubuntu终端。
我的第一个猜测是通过函数中的 excutable 关键字来提示 ubuntu 终端:
subprocess.run(args, *, stdin=None, input=None, stdout=None, stderr=None, capture_output=False, shell=False, cwd=None, timeout=None, check=False, encoding=None, errors=None, text=None, env=None, universal_newlines=None, **other_popen_kwargs)
我需要能够使用我的 python 程序运行 OpenFOAM 命令的功能,而无需将我的 python 代码迁移到 Linux 系统。
编辑: 进一步澄清我的问题:
我有一个运行着各种 python 代码的 GUI。从那里我需要运行 OpenFOAM,它只在 Linux 下可用。为了克服这个限制,我使用了 Ubuntu (WSL)。我需要一个 WSL shell 在后台运行,执行 linux 命令并设置 OpenFOAM 所需的环境。
手动使用 Ubuntu,我启动终端并源到 .bashrc 文件,其中设置了所有环境变量。从那里我可以使用 OpenFoam 命令来运行模拟。直接从 python 代码执行这些步骤会很棒。
【问题讨论】:
-
我怀疑你想从 Windows 中运行 WSL 的东西,而不是加载终端本身。
-
@2e0byo 感谢您的链接。也许你可以帮助我更进一步。当使用终端正常工作时,我会加载一个 .bashrc 文件来设置 OpenFOAM 所需的环境变量,使用命令 source /opt/openfoam8/etc/bashrc。是否可以使用“wsl.exe”命令设置临时环境,还是只能执行单个命令?
-
您好,欢迎来到 Stack Overflow。有几个问题可以帮助我理解您的用例 - 您的意思是要在 WSL 下运行 Windows Python
subprocess模块吗?你说“没有将我的 Python 代码迁移到 Linux 系统。” 那么你想在 WSL 中运行什么?您是否只想要 WSL“终端”(我认为您的意思是“shell”),同时仍在使用您的 Windows Python 代码? -
我有一个运行着各种 python 代码的 GUI。从那里我需要运行 OpenFOAM,它只在 Linux 下可用。为了克服这个限制,我使用了 Ubuntu (WSL)。所以是的,我需要一个 WSL shell 在后台运行,执行 linux 命令并设置 OpenFOAM 所需的环境。
标签: python windows subprocess windows-subsystem-for-linux openfoam