Подтвердить что ты не робот

Как и почему PyCharm изменяет логику импорта Python?

У меня есть PyCharm 1.2.1 в Windows. Мне нужно редактировать разные ветки одного и того же проекта - несколько тяжелых ветвей, потому что они живут в разных папках на диске - скажем, что это c:\apps\alpha и c:\apps\beta. Для каждой такой папки переменная PYTHONPATH должна быть настроена так, чтобы указывать на соответствующие библиотеки поставщиков, которые живут где-то внутри корневой папки проекта (c:\alpha\vendor,...). Мне удалось обойти эту проблему, начав PyCharm из командного файла cmd, который устанавливает необходимое значение переменной PYTHONPATH перед запуском PyCharm (поэтому у меня есть PyCharm.cmd внутри alpha и PyCharm.cmd внутри beta).

Проблема: когда я открываю PyCharm для редактирования папки beta, оператор import импортирует модули из alpha папки! Когда я запускаю интерпретатор python.exe из командной строки, все работает так, как ожидалось - проблема кажется только с PyCharm.

Второе странное исследование: выполнение кода print sys.path из PyCharm и внешнего интерпретатора python.exe дает разные результаты - из PyCharm он не показывает мои модули PYTHONPATH. Я новичок в Python и PyCharm, но это поведение выглядит очень странным и непоследовательным.

Наконец, я нашел некоторые настройки в PyCharm IDE, которые выглядят так, как будто я должен разрешить эту проблему - File -> Settings -> Python Interpreter. Там я нашел все пути для папок alpha и beta. Невозможно очистить этот список путей, только для отключения некоторых элементов. Но даже отключение работает несколько глупо - я должен отключить/повторно включить их отдельно для каждого раза, когда редактирую папки alpha или beta ".

Итак, последний вопрос: как можно с PyCharm редактировать отдельные проекты (папки) и заставить PyCharm не импортировать модули из неправильных мест?

4b9b3361

Ответ 1

Правильное решение - не пытаться работать с логикой PyCharm, а скорее использовать функции IDE по мере их разработки. Это означает:

  • Не использовать скрипты .cmd для запуска PyCharm
  • Удалите все пути, специфичные для "альфа" и "бета", из списка путей в настройках | Python Переводчики, если таковые имеются, указаны там
  • Отметьте каталоги alpha/vendor и beta/vendor как исходные корни в альфа-и бета-проектах соответственно.

Затем PyCharm корректно разрешит импорт и автоматически создаст правильный PYTHONPATH при запуске приложения из него.