【发布时间】:2014-02-07 13:54:16
【问题描述】:
我对 PyCharm 如何确定 Python 用来定位模块和包的路径感到困惑。
首先,当我取消选中设置时(在“Python 控制台”和我的运行配置中),我仍然在sys.path 的开头看到我的项目目录。
例如,我在“路径问题”中有一个项目,并在其中“运行”了一个包含
的文件import sys
for p in sys.path:
print p
我明白了
/Users/Rax/Documents/Projects/pathproblem
... (other things in my PYTHONPATH)
/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python27.zip
/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7
/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-darwin
/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac
/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac/lib-scriptpackages
/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python
/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-tk
/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-old
/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload
/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/PyObjC
/Library/Python/2.7/site-packages
即使我已经要求从路径中排除“内容根目录”:
这可能会导致在典型部署中无法导入的模块成功导入(例如,在构建包时)。
如果我检查设置,我会得到两次:
/Users/Rax/Documents/Projects/pathproblem
... (other things in my PYTHONPATH)
/Users/Rax/Documents/Projects/pathproblem
...
似乎 PyCharm 总是 在 PYTHONPATH 的开头(它认为是什么)添加当前项目根目录,并且此设置只是将它再次添加到结束。
(1) 如何配置 PyCharm 使其(真的)不会将项目目录添加到包搜索路径中?
另外,据我所知,对于 PyCharm,PYTHONPATH 根本不是我的系统 PYTHONPATH,而是“用户添加”的条目——事实上,令人困惑的是,在 Python 的路径设置的末尾口译员。
(2) PyCharm 的 PYTHONPATH 来自哪里?这不是我在系统其他任何地方看到的 PYTHONPATH。
FWIW,PyCharm 的 Sphinx 尊重“内容根”设置,仅在构建配置中检查路径时添加内容根。
【问题讨论】:
标签: configuration path pycharm python-import