【发布时间】:2017-06-04 11:34:01
【问题描述】:
调用 subprocess.Popen(["python"]) 会生成一个进程,就像调用全局 2.7 python,而不是生成 virtualenv 中定义的 3.6 版本。 subprocess.Popen 文档说调用了 execvp,但它似乎表现得好像一个新的干净的 shell 正在调用它。 有没有办法在代码中但在 virtualenv 下强制调用系统调用?
在 macOS 上运行,项目位于 Pycharm 识别的 virtualenv 目录中(Preferences->Project->Project Interpreter 指向 virtualenv 中的 python)。我的全局 python 命令启动 2.7 解释器,但在 virtualenv 中 python 将启动 3.6 解释器。
【问题讨论】:
-
我在 Mac Catalina 上使用 PyCharm v2019.1.1 运行时遇到了完全相同的问题
标签: python subprocess pycharm virtualenv popen