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。非常感谢对这些问题的任何想法或提示。
我在虚拟环境 (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。非常感谢对这些问题的任何想法或提示。