Я смущен тем, как PyCharm определяет путь, который использует Python для поиска модулей и пакетов.
Прежде всего, когда я сниму настройки (как в "Консоли Python", так и в моей конфигурации запуска), я все еще вижу каталог для моего проекта в начале sys.path
.
Например, у меня есть проект в 'path problem' и 'Run' файл, содержащий
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 так, чтобы он (действительно) не добавлял каталог проекта в путь поиска пакета?
Кроме того, насколько я могу судить, PYTHONPATH для PyCharm не является моей системой PYTHONPATH вообще, но "добавленные пользователем" записи - фактически, смутно, в конце - настройки Path для Python Переводчик.
(2) Откуда берутся PyCharm PYTHONPATH? Это не PYTHONPATH, который я вижу где-либо еще в моей системе.
FWIW, PyCharm Sphinx уважает настройки "содержимого корня", добавляя корневой каталог только тогда, когда путь указан в конфигурации сборки.