Wie kann ich IntelliJ dazu bringen, gängige Python-Module zu erkennen?


197

Ich verwende IntelliJ 10 IDEA Ultimate Edition.

Ich habe eine neue Datei Test.py erstellt und IntelliJ hat korrekt in den Python-Parsing-Modus gewechselt. (Ich kann dies bestätigen, indem ich "d" eingebe. Es erscheint "def" als Vorschlag, und wenn ich den Tab richtig drücke, bekomme ich "def:")

Wenn ich diesen Code jedoch versuche ...

import os

cwd = os.getcw <Ctrl-space>

Zwei Dinge passieren ...

  1. Ich bekomme eine schwache Unterstreichung unter dem Betriebssystem und wenn ich darüber schwebe, erhalte ich die Meldung "Ungelöste Referenz 'os'"
  2. Ich bekomme keine Vorschläge, wenn ich Strg-Leerzeichen oben drücke, wenn ich "getcwd" erwarte.

Ich gehe davon aus, dass dies darauf zurückzuführen sein muss, dass ich IntelliJ nicht richtig konfiguriert habe, um mit Python-Modulen umgehen zu können, aber ich habe keine Ahnung, was mir fehlt.

Können mir IntelliJ / Python-Benutzer helfen?

Antworten:


208

Erstellen Sie einfach das Python SDK und fügen Sie es hinzu

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

und wählen Sie den Installationspfad Ihres Python-Interpreters (z. B. unter C:\Python26Windows und /usr/bin/python2.7Linux) als Startpfad.

Verwandte Diskussion: http://devnet.jetbrains.net/thread/286883


6
Noch heute wahr. OSX - / usr / bin / python
ThinkBonobo

2
Heute auf OSX El Capitan habe ich diesen Tipp verwendet (danke!); FWIW, die Python-Interpreter (ich hatte 2.6 und 2.7 installiert) waren in /Library, aber IntelliJ fand sie gut, als ich eine virtuelle Umgebung erstellte.
Dawngerpony

20
Fertig, keine Änderung.
OrangeDog

5
Für Mac mit einer Homebrew-installierten Version von Python (empfehlenswert für El Capitan und darüber hinaus aufgrund von Einschränkungen bei Systemverzeichnissen) /usr/local/bin/python.
Dawngerpony

Darüber hinaus musste ich auch die Facette einrichten (siehe Antwort unten von @linuts)
Janac Meena

134

Haben Sie eine Python-Interpreter-Facette eingerichtet?

Öffnen Sie die Projektstruktur CTRL+ ALT+ SHIFT+S

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

Dann:

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


1
v12.1.4 Hat nicht die Menüoption Projekteinstellungen> Facetten, aber die Lösung von @ db42 hat sich
bewährt

Ich habe eine Facette erstellt und es hat nicht funktioniert, Ihre Antwort war die Lösung !! Wunder voll! :)
Rodislav Moldovan

Seltsam. Ich weiß nicht, was eine Facette ist, also habe ich sie nachgeschlagen und auf der folgenden Seite wird Python nicht als verfügbare Facette angezeigt. jetbrains.com/idea/help/…
Netskink

1
IntelliJ IDEA 14 Ultimate verfügt über diese Funktion und hat perfekt funktioniert, ohne die Erkennung meines Java-Moduls zu beeinträchtigen, wie dies bei der Antwort von db42 der Fall war.
Patrick M

Danach werden nicht einmal Vorschläge für eingebaute Module angezeigt, für die es zuvor vorhanden war
Bharat,

75

Wenn Ihr Python SDK ordnungsgemäß konfiguriert ist und Sie immer noch das Problem haben, dass integrierte Funktionen nicht erkannt werden, versuchen Sie Folgendes:

File -> Invalidate Caches/Restart

2
Nachdem ich 5 Mal eine virtuelle Umgebung
hinzugefügt hatte

Dies wurde das Problem für mich behoben, nachdem ich eine virtuelle Umgebung hinzugefügt hatte.
Andrea Bergonzo

Ich fand, dass das Beenden und Neustarten von IntelliJ es für mich behoben hat, ich denke, es ist das gleiche
drevicko

18

Folgendes musste ich tun. (Und ich habe wahrscheinlich einen wichtigen Aspekt meines Problems vergessen, nämlich, dass dies ursprünglich nicht als Python-Projekt eingerichtet war, sondern als Java-Projekt mit einigen Python-Dateien.)

Projekteinstellungen -> Module -> Plus-Schaltfläche (Modul hinzufügen) -> Python

Klicken Sie dann auf die Schaltfläche "..." neben Python Interpreter.

Klicken Sie im daraufhin angezeigten Dialogfeld "SDK konfigurieren" auf die Schaltfläche "+". Wählen Sie "Python SDK" und dann die Standardverknüpfung "Python", die in meinem Finder-Dialogfeld angezeigt wird

Warten Sie ca. 5 Minuten. Lesen Sie einige Produktivitätstipps. :) :)

OK klicken

Warten Sie, bis das System einige Indizes neu erstellt hat.

Hurra! Code-Hinweise sind für meine Module zurück!


2
"Warten Sie ungefähr 5 Minuten. Lesen Sie einige Produktivitätstipps." genial
Kirby

Dies löste anscheinend meine Probleme (auch mein Projekt wurde ursprünglich als Java-Projekt erstellt)
Andrea Bergonzo

5

Eine weitere mögliche Lösung (mein Problem gelöst)

Möglicherweise haben Sie die Umgebung richtig konfiguriert, aber aus irgendeinem Grund ist sie auf dem Weg kaputt gegangen. In diesem Fall gehen Sie zu:

file > project settings > modules

Stellen Sie die Liste der SDKs bereit und suchen Sie [invalid]am Ende nach einer roten Linie mit . Wenn Sie eine finden, müssen Sie eine Python-SDK neu erstellen.

Es ist wahrscheinlich, dass Ihr zuvor funktionierendes SDK auch vorhanden ist, aber nicht rot. Lösche es.

Jetzt können Sie auf die newSchaltfläche klicken und Ihre bevorzugte virtuelle Python-Version hinzufügen. Und es sollte jetzt funktionieren.


2

Einige Schritte, die mir geholfen haben (einige davon sind oben erwähnt):

Offene Projektstruktur durch:

Befehl +; (Mac-Benutzer) ODER klicken Sie mit der rechten Maustaste auf das Projekt ->Open Module Settings

  1. Facetten ->+ ->Python -><Ihr-Projekt>-> OK
  2. Module ->Python-> <Python-Interpreter auswählen>
  3. Projekt ->Projekt SDK-> <relevantes SDK auswählen>
  4. SDKs -><stellen Sie sicher, dass es das richtige ist>

Klicken OK.

Öffnen Sie Run / Debug Configurations by: Run ->Edit Configurations

  1. Python Interpreter -><stellen Sie sicher, dass es der richtige ist>

Klicken Sie auf OK.


1

So habe ich mein Problem gelöst (ich habe das Projekt importiert und es wurde nur dort angezeigt, neu erstellte Dateien zeigten diese Fehler nicht):

1) Befehl + Alt + R (Steuerung bei Fenstern

2) Das Debug-Fenster wird angezeigt. Wählen Sie Ihre Datei aus und drücken Sie den Rechtspfeil (->). Wählen Sie Bearbeiten und drücken Sie die Eingabetaste (Fenster zum Bearbeiten der Konfigurationseinstellungen wird angezeigt.)

3) Unter Konfiguration sehen Sie unten den Fehler (bitte wählen Sie ein Modul mit einem gültigen Python-SDK aus). Aktivieren Sie also in Python Interpreter die Option Angegebenen Interpreter verwenden und wählen Sie in der Dropdown-Liste Ihre Python-Version aus

(Falls Python nicht vorhanden ist, laden Sie das Python-Plugin für IntelliJ über den folgenden Link herunter https://www.jetbrains.com/help/idea/2016.3/installing-updating-and-uninstalling-repository-plugins.html

4) Klicken Sie auf Übernehmen und schließen Sie es.

Bingo ist fertig.


0

Verwenden Sie eine Anforderungsdatei (siehe Link zur JetBrains-Dokumentation).

In meinem Fall brauchte ich arrow. Also fügte ich hinzu

arrow==0.7.0

zu meinen Projekten requirements.txt

Dann forderte mich Intellij auf, die Bibliothek hinzuzufügen, als ich das erste Mal import arrowin einem Python-Skript schrieb


0

Mein Problem war dem von @Toddarooski ähnlich, außer dass auf dem Modul, das ich auf der Registerkarte "Abhängigkeiten" hatte, kein SDK aufgeführt war. Ich habe mit der rechten Maustaste auf "SDK" geklickt, "Bearbeiten" aus dem Dropdown-Menü ausgewählt und mein Python SDK ausgewählt. Das hat funktioniert.


0

Ich habe es zum Laufen gebracht, nachdem ich die folgenden Optionen in den Run / Debug-Konfigurationen für deaktiviert habe main.py

Add content roots to PYTHONPATH

Add source roots to PYTHONPATH

Dies ist, nachdem ich den Cache ungültig gemacht und neu gestartet hatte.


0

Sogar mein Intellisense in Pycharm funktionierte nicht für Module wie Zeit. Problem in meinem System war, dass kein Interpreter ausgewählt wurde. Gehen Sie zu Datei -> Einstellungen ... (Strg + Alt + S) Öffnen Sie den Projektinterpreter

Projektdolmetscher In meinem Fallwurde ausgewählt. Ich habe den verfügbaren Python-Interpreter ausgewählt. Wenn nicht verfügbar, können Sie einen neuen Interpreter hinzufügen.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.