我有一个 Python 3.6 脚本,它使用子进程调用第三方工具。
main_script.py:
#!/usr/bin/env python
import subprocess
result = subprocess.run(['third-party-tool', '-arg1'], shell=False, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
Run Code Online (Sandbox Code Playgroud)
问题是,main_script.py必须从虚拟环境中运行,并且third-party-tool必须从任何虚拟环境中运行。
我对此了解不多third-party-tool,只知道它在我的道路上。当我有一个活动的虚拟环境时调用它会导致它堵塞并稍后抛出异常。我不知道它是否使用默认的 python 二进制文件,或者它启动自己的虚拟环境并在那里执行操作。它不是一个 Python 脚本,但显然以某种方式调用一个脚本。
如何告诉子进程退出虚拟环境并在默认 shell 环境中运行命令?
我研究过几个类似的问题:
third-party-tool不是Python脚本(我相信它是bash)。