Pycharm subprocess.Popen python 虚拟环境下

Pycharm subprocess.Popen python under virtualenv

调用 subprocess.Popen(["python"]) 生成一个进程,就像调用全局 2.7 python,而不是生成 virtualenv 中定义的 3.6 版本。 subprocess.Popen 文档说调用了 execvp,但它似乎就像一个新的干净 shell 正在调用它。 有没有办法在代码中但在 virtualenv 下强制调用系统调用?

运行 在 macOS 上,在 virtualenv 目录中的项目被 Pycharm 识别(Preferences->Project->Project Interpreter 指向 virtualenv 中的 python)。我的全局 python 命令启动 2.7 解释器,但在 virtualenv python 中将启动 3.6 解释器。

subprocess.Popen([sys.executable])

sys.executable 是 Python 解释器 运行 宁当前脚本。将它用于 运行 具有相同解释器的新脚本是很自然的。