Как заставить IntelliJ распознавать распространенные модули Python?


198

Я использую IntelliJ 10 IDEA Ultimate Edition.

Я создал новый файл Test.py, и IntelliJ правильно переключился в режим разбора Python. (Я могу подтвердить это, набрав «d», в качестве подсказки появляется «def», а при нажатии на вкладку правильно выводится «def:»)

Тем не менее, когда я пытаюсь этот код ...

import os

cwd = os.getcw <Ctrl-space>

Две вещи случаются ....

  1. Я получаю извилистое подчеркивание под os, и при наведении на него появляется сообщение "Unresolved reference 'os'"
  2. Я не получаю предложений, нажимая Ctrl-пробел выше, когда я ожидаю увидеть «getcwd».

Я предполагаю, что это должно быть результатом того, что я не настроил IntelliJ должным образом для обработки модулей Python, но я понятия не имею, что мне не хватает.

Любые пользователи IntelliJ / Python могут мне помочь?

Ответы:


208

Просто создайте и добавьте Python SDK

File -> Project Structure -> Project -> Project SDK -> new

и выберите путь установки вашего интерпретатора Python (например, C:\Python26в Windows и /usr/bin/python2.7в Linux) в качестве домашнего пути.

Связанное обсуждение: http://devnet.jetbrains.net/thread/286883


6
Все еще верно сегодня. OSX - / usr / bin / python
ThinkBonobo

2
Сегодня на OSX El Capitan я использовал этот совет (спасибо!); FWIW, интерпретаторы Python (у меня были установлены 2,6 и 2,7) были /Library, но IntelliJ нашел их очень хорошо, когда я создал virtualenv.
Dawngerpony

20
Сделано это, без изменений.
OrangeDog

5
Для Mac с установленной в домашних условиях версией Python (рекомендуется для El Capitan и выше из-за ограничений системных каталогов) /usr/local/bin/python.
Dawngerpony

В дополнение к этому мне также пришлось настроить фасет (см. Ответ ниже @linuts)
Janac Meena

134

Вы установили аспект интерпретатора Python?

Открытая структура проекта CTRL+ ALT+ SHIFT+S

Project settings -> Facets -> expand Python click on child -> Python Interpreter

Затем:

Project settings -> Modules -> Expand module -> Python -> Dependencies -> select Python module SDK


1
v12.1.4 Нет опции меню «Настройки проекта»> «Фасеты», но решение @ db42 сработало
Trindaz

Я создал аспект, и он не работал, ваш ответ был решением !! удивительный! :)
Родислав Молдаван

Странный. Я не знаю, что такое фасет, поэтому я посмотрел его, и на следующей странице Python не отображается как доступный фасет. jetbrains.com/idea/help/...
netskink

1
IntelliJ IDEA 14 Ultimate обладает этой функцией, и она отлично работает, не нарушая моего определения Java-модуля, как это сделал ответ db42.
Патрик М

после этого он даже не показывает предложения по встроенным модулям, к которым раньше он там был
Бхарат

76

Если ваш Python SDK настроен правильно и вы все еще сталкиваетесь с проблемой, что встроенные функции не распознаются, попробуйте следующее:

File -> Invalidate Caches/Restart

2
После добавления виртуального env обратно 5 раз это помогло мне исправить это с помощью IDEA 2016.2.1
dlite922

Это было исправлено для меня после добавления виртуальной среды.
Андреа Бергонзо

Я обнаружил, что выход и повторный запуск IntelliJ исправили это для меня, я думаю, это одно и то же
drevicko

18

Вот что я должен был сделать. (И я, вероятно, забыл важный аспект моей проблемы, который заключается в том, что изначально это был не проект Python, а проект Java с некоторыми файлами Python.)

Настройки проекта -> Модули -> Кнопка плюс (добавить модуль) -> Python

Затем нажмите кнопку «...» рядом с переводчиком Python.

В появившемся диалоговом окне «Настройка SDK» нажмите кнопку «+». Выберите «Python SDK», затем выберите стандартный ярлык «Python», который появляется в моем диалоговом окне поиска

Подождите около 5 минут. Прочитайте некоторые советы по производительности. :)

Нажмите Ok

Подождите, пока система перестроит некоторые индексы.

Ура! Кодовая подсказка вернулась для моих модулей!


2
«Подождите около 5 минут. Прочитайте некоторые советы по повышению производительности». потрясающе
Кирби

Это, по-видимому, решило мои проблемы (также мой проект изначально был создан как проект Java)
Андреа Бергонзо

5

Еще одно возможное исправление (решил мою проблему)

Возможно, вы правильно настроили среду, но по какой-то причине она сломалась. В этом случае перейдите к:

file > project settings > modules

Разверните список SDK и найдите [invalid]в конце красную строку . Если вы найдете один, вы должны воссоздать SDK Python.

Вполне вероятно, что ваш ранее работающий SDK тоже есть, но не красный. Удали это.

Теперь вы можете нажать на newкнопку и добавить свой любимый python virtualenv. И это должно работать сейчас.


3

Несколько шагов, которые мне помогли (некоторые из них упомянуты выше):

Открыть структуру проекта по:

команда +; (пользователи Mac) ИЛИ щелкните правой кнопкой мыши на проекте ->Open Module Settings

  1. Facets ->+ ->Python -><ваш-проект> ->ОК
  2. Модули ->Python -><выберите интерпретатора Python>
  3. Project ->Project SDK -><выберите соответствующий SDK>
  4. SDK -><убедитесь, что это правильно>

Нажмите OK.

Откройте Run / Debug Configurations с помощью: Run ->Edit Configurations

  1. Python Interpreter -><убедитесь, что он правильный>

Нажмите OK.


1

Вот как я решил свою проблему (я импортировал проект, и он показывал только там, только что созданные файлы не отображали эти ошибки):

1) Command + alt + R (управление в случае окон

2) Появится окно отладки, выберите ваш файл и нажмите стрелку вправо (->) и выберите «Редактировать», затем нажмите «Enter» (появится окно «Редактировать настройки конфигурации»)

3) В разделе конфигурации внизу вы можете увидеть ошибку (выберите модуль с действительным SDK Python), поэтому в интерпретаторе Python установите флажок «Использовать указанный интерпретатор», а затем в раскрывающемся списке выберите версию Python.

(Если Python отсутствует, загрузите плагин Python для intelliJ, используя следующую ссылку https://www.jetbrains.com/help/idea/2016.3/install-updating-and-uninstall-repository-plugins.html.

4) Нажмите «Применить», затем закройте его.

Бинго, это сделано.


0

Используйте файл требований (см. Ссылку на документацию JetBrains)

В моем случае мне это было нужно arrow. Итак, я добавил

arrow==0.7.0

к моим проектам requirements.txt

Затем Intellij предложил мне добавить библиотеку в первый раз, когда я написал import arrowв скрипте Python


0

Моя проблема была похожа на @Toddarooski, за исключением того, что у модуля, который у меня был на вкладке «Зависимости», не было SDK в списке. Я щелкнул правой кнопкой мыши на «SDK», выбрал «Edit» из выпадающего меню и выбрал мой Python SDK. Это добилось цели.


0

Я получил его на работу после того, как я снял флажок в следующих опциях в конфигурациях Run / Debug для main.py

Add content roots to PYTHONPATH

Add source roots to PYTHONPATH

Это после того, как я сделал недействительным кеш и перезапустил.


0

Даже мой Intellisense в Pycharm не работал для таких модулей, как время. В моей системе не было ни одного переводчика. Выберите « Файл» -> « Настройки» (Ctrl + Alt + S). Откройте « Интерпретатор проекта».

Переводчик проекта в моем случаебыл выбран. Я выбрал доступного интерпретатора Python. Если нет в наличии, вы можете добавить нового переводчика.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.