我有一个PyCharms python项目,配置为在虚拟环境(Python 2.7.9)上运行。 最近,试图在PyCharms上调试项目,用于为许多模块抛出导入错误。从运行相同虚拟环境的命令提示符调用时,或者从PyCharms运行项目时,代码工作正常。经过检查,我发现由于某些原因,PyCharms正在调用Python 2.7.10,并且可能没有安装第三方依赖项!。
我的问题是,在调用子进程时,PyCharms是否有理由离开虚拟环境,这将是解决此问题的最佳方法。
以下是从console / 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.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)]
答案 0 :(得分:0)
随着OSX ElCaptian(https://apple.stackexchange.com/questions/193368/what-is-the-rootless-feature-in-el-capitan-really)引入新的无根功能,不再可能在/ usr / bin中改变python,而更好的方法是从运行配置更新PATH env变量(运行 - >编辑配置 - >环境 - > EnvironmentVariable并将/更新PATH变量添加到/ usr / local / bin:$ PATH)
通过很少的修补,我能够解决问题,可能不是正确的方法,但它确实为我解决了问题。
PyCharms在调试时以某种方式使用来自/ usr / bin /从python 2.7.10调用python而不是来自/ usr / local / bin的python 2.7.9。由于我的所有路径设置都是正确的,我不依赖于2.7.10,我在" / usr / bin /"中重命名python。到python2.7.10并在" / usr / bin"中创建了/ usr / local / bin的python符号链接。文件夹中。
PyCharms现在的工作方式就像魅力一样,但我仍然不明白为什么它过去引用外部python绕过PATH设置而且更多 - 为什么它必须在运行子进程时调用virtualenv之外的python解释器。关于这些问题的任何想法或提示都受到高度赞赏。