Pycharm 调试器 运行 在子进程中不同的 Python 解释器上

Pycharms debugger running on a different Python interpreter in subprocess

我在虚拟环境 (Python 2.7.9) 上配置了一个 PyCharms python 项目 运行。 很晚了,尝试在 PyCharms 上调试项目时曾抛出许多模块的导入错误。当从命令提示符 运行ning 相同的虚拟环境或从 PyCharms "Run"ing 项目时调用代码时,代码工作正常。经过检查,我发现由于某种原因,PyCharms 正在调用 Python 2.7.10,并且可能未在其中安装第三方依赖项!

我的问题是,PyCharms 在调用子进程时离开虚拟环境是否有原因?解决此问题的最佳方法是什么。

这是从 console/pycharms 为命令 运行ning 时主进程和子进程的输出

print __import__("sys").version

Sys version from Main Process!
2.7.9 (default, Feb 10 2015, 03:28:08) 
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.56)]

Sys version from Sub Process!
2.7.9 (default, Feb 10 2015, 03:28:08) 
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.56)]

这是从 PyCHarms 调试时的输出

print __import__("sys").version

Sys version from Main Process!
2.7.9 (default, Feb 10 2015, 03:28:08) 
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.56)]

Sys version from Sub Process!
2.7.10 (default, Jul 14 2015, 19:46:27) 
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.39)]

PyCharms 版本: PyCharms 社区版 4.5.3

使用 Mac 更新OSX ElCaptian 更新

随着 OSX ElCaptian (https://apple.stackexchange.com/questions/193368/what-is-the-rootless-feature-in-el-capitan-really) 引入新的无根功能,不再可能在 /usr/bin 处更改 python ,而是更好的方法将只是从 运行 配置更新 PATH 环境变量(运行->编辑配置->环境->EnvironmentVariable 和 add/update PATH 变量到 /usr/local/bin:$PATH)


反过来

我稍加修改就解决了这个问题,也许这不是正确的方法,但它确实为我解决了问题。

PyCharms 在调试时以某种方式使用了 python from /usr/bin/ having python 2.7.10 而不是 python 2.7.9 from /usr/local/bin 。由于我所有的路径设置都是正确的并且我不依赖 2.7.10 ,我将“/usr/bin/”中的 python 重命名为 python2.7.10 并创建了一个符号 link 从“/usr/bin”文件夹中的 /usr/local/bin 到 python。

PyCharms 现在像 charm 一样工作,但我仍然不明白为什么它过去常常引用外部 python 绕过 PATH 设置,而且为什么它必须在外部调用 python 解释器运行 子进程时的 virtualenv。非常感谢对这些问题的任何想法或提示。