Плагин IntelliJ Python и путь к классам Run

У меня есть проект, расположенный в /home/myself/workspace/Project1, для которого я создал SDK из Python 2.7.3 Virtualenv, который у меня есть.
В этом проекте используется некоторый внешний код, который у меня есть в доступном каталоге, например. /дом/себя/БИБЛИОТЕКА; этот каталог содержит несколько каталогов с кодом, документами и т. д.
Например, есть модуль «important_util», расположенный в /home/myself/LIBRARY/mymodule/important_util.py.

Теперь я добавил весь каталог /home/myself/LIBRARY в путь к классам SDK, и в окне редактора он выглядит просто отлично. Импорт и вызовы распознаются, и я также могу перемещаться по коду в каталогах LIBRARY.

Проблема в том, что когда я пытаюсь запустить свою программу, она терпит неудачу при первом импорте, используя БИБЛИОТЕКУ!!!

Traceback (most recent call last):
   File "/home/myself/workspace/Project1/my_program.py", line 10, in <module>
      from mymodule import important_util as ut 
      ImportError: No module named mymodule

Я также пытался добавить те же каталоги в раздел «Глобальные библиотеки» в разделе «Источники»… но безуспешно.

Кажется, я не могу найти способ добавить этот код в путь к классам Run, как я могу это сделать?


person mdm    schedule 21.12.2012    source источник
comment
В качестве пояснения я использую IntelliJ IDEA Ultimate 12, плагин Python 2.10.   -  person mdm    schedule 21.12.2012


Ответы (3)


Убедитесь, что у вас есть __init__.py в каталоге mymodule:

Файлы __init__.py необходимы для того, чтобы Python рассматривал каталоги как содержащие пакеты; это делается для предотвращения непреднамеренного сокрытия допустимых модулей каталогами с общим именем, например string, которые встречаются позже на пути поиска модулей. В простейшем случае __init__.py может быть просто пустым файлом, но он также может выполнять код инициализации пакета или устанавливать переменную __all__, описанную ниже.

ОБНОВЛЕНИЕ: в IntelliJ IDEA дополнительные каталоги должны быть добавлены как Зависимости модуля или настроены как Libraries (для добавления в Зависимости) вместо Classpath вкладка Python SDK:

Зависимости

Я проверил, что эта папка (D:\dev\lib) добавлена ​​в PYTHONPATH и импорт работает.

person CrazyCoder    schedule 23.12.2012
comment
Я могу подтвердить, что я проверил объявление init.py: такой файл есть как в /home/myself/LIBRARY/mymodule/, так и в родительском каталоге. Обратите внимание, что, повторюсь, окна редактора прекрасно находят модуль: я также могу щелкнуть и перейти к файлам модуля. Единственное, что не работает, это бег... Есть еще идеи? - person mdm; 24.12.2012
comment
Кроме того, я могу нормально запустить код из терминала. Только IntelliJ не находит «мой модуль» - person mdm; 24.12.2012
comment
Я обновил ответ, в IDEA элементы, добавляемые в PYTHONPATH, настроены как модульные зависимости. Это отличается от PyCharm, где они должны быть добавлены на вкладку Paths SDK. - person CrazyCoder; 24.12.2012

В IntelliJ 14 немного по-другому, вы такие модули/яйца:

  • Перейдите в Файл -> Структура проекта.
  • Теперь выберите «Модули», а затем вкладку «Зависимости».
  • Нажмите значок «+» и выберите «Библиотека».
  • Нажмите «Новая библиотека» и выберите Java (я знаю, это странно...)
  • Теперь выберите несколько модулей/яйцо и «ОК».
  • Выберите «Классы» из категорий.
  • Дайте вашей новой библиотеке имя «Моя библиотека Python, а не Java».
  • И, наконец, нажмите «Добавить выбранное».
person Matthew Wilcoxson    schedule 22.04.2015
comment
Суперпомогло - работало с Ultimate 2016.1. Почему JetBrains не позволяет добавить библиотеку Python вместо того, чтобы называть ее Java? - person Matthew Cornell; 24.03.2016

Начиная с версии 2017.1 добавление снова было изменено. В меню файлов нет структуры проекта. Запись текущей процедуры:

  1. Перейдите в Предпочтения/Настройки. Файл -> Настройки (Имя IDE -> Настройки для macOS)

  2. Выберите Сборка, выполнение, развертывание.

введите здесь описание изображения

  1. Выберите Интерпретатор Python.

  2. Выберите в раскрывающемся меню интерпретатор проекта и выберите путь к версии Python, необходимой для проекта.

введите здесь описание изображения

  1. Нажмите «Применить» и подождите несколько минут, чтобы IntelliJ проиндексировал пакеты Python.

Теперь все ошибки должны исчезнуть, и вы сможете увидеть Python, используемый в проекте, в списке внешних библиотек.

введите здесь описание изображения

Удачного программирования.

person Mayank Patel    schedule 17.08.2017
comment
Это объясняет, как изменить SDK/интерпретатор, но вопрос заключался в том, как добавить внешний каталог, не являющийся частью каталогов интерпретатора, в PYTHONPATH. Кроме того, этот ответ касается PyCharm, но вопрос был о плагине Python для IDEA - упомянутые расположения меню и окон не совпадают. - person mikenerone; 22.09.2017
comment
Приведенная выше процедура будет работать для любой IntelliJ IDE с установленным подключаемым модулем Python для IDEA. На самом деле скриншоты, добавленные в ответ, сделаны в Goglang IDE. - person Mayank Patel; 22.09.2017
comment
Ах, я понимаю, почему можно подумать, что это логичный вывод, но, видимо, он неверен. Я использую простую IDEA CE (2017.2.4) с текущим плагином Python (2017.2.172.3968.33), и в настройках сборки, выполнения, развертывания нет записи интерпретатора Python. - person mikenerone; 22.09.2017