webentwicklung-frage-antwort-db.com.de

PyCharm erkennt keine im Entwicklungsmodus installierten Module

Ich habe zwei reine python -Projekte in PyCharm 3.4.1 Professional Edition. Das erste, nennen wir es p (wie das Paket), ist als setuptools-Paket strukturiert (d. H. Mit setup.py, allen Anforderungen usw., es wird jedoch nicht in pypi oder ein anderes Online-Repository hochgeladen). Das zweite, nennen wir es s (wie Skript), ist nur ein python Skript zusammen mit zwei Modulen.

Projekt s ist (in PyCharm) für die Verwendung einer dedizierten virtuellen Umgebung konfiguriert. Nennen wir es venv.

Das Problem, das ich habe, ist das folgende: Wenn ich das Projekt (Paket) p in venv wie folgt installiere:

$ source /path/to/venv/bin/activate
(venv)$ cd /path/to/p
(venv)$ python3 setup.py develop

in PyCharm in Projekt s sind import p - Anweisungen mit der Meldung fehlerhaft Kein Modul mit dem Namen p . Wenn ich das Skript jedoch in s ausführe, ist alles in Ordnung. Das einzige Problem ist, dass der PyCharm IDE sich beschwert, das Modul nicht finden zu können. Ich kann damit leben, aber es ist sehr ärgerlich ...

Warum passiert das? Handelt es sich um eine PyCharm- oder Verpackungssache? Siehe NACHRICHTEN unten.


Das Projekt/Paket p hat folgende Struktur:

p/
|
+- p/
|  |
|  +- __init__.py
|  +- other subpackages, modules, etc.
+- setup.py
+- README, DESCRIPTION, setup.cfg, etc.

Wenn ich das PyCharm-Projekt p so konfiguriere, dass es in einer eigenen virtuellen Umgebung lebt und es dort im Entwicklungsmodus installiert, funktioniert alles einwandfrei.


NACHRICHTEN

Dieses Problem ist in PyCharm 5.0.4 immer noch vorhanden. Ich habe es jedoch irgendwie geschafft, es zu lösen.

Aus irgendeinem Grund musste ich ein anderes Paket von pypi installieren. Ich habe es durch PyCharm gemacht, indem ich zu Datei -> Einstellungen -> Projekt: -> Projektinterpreter gegangen bin, dort auf das grüne + Geklickt habe, das Paket gefunden habe und auf die Schaltfläche Paket installieren geklickt habe. Nach der Installation wird das von python3 setup.py develop Installierte Paket von PyCharm gut erkannt. Offensichtlich bestand das Problem darin, dass PyCharm nicht über einen Cache verfügte, der mit der Realität synchronisiert war.

Die neue Frage lautet also: Kann PyCharm angewiesen werden, seine Caches in Bezug auf die verwendete python -Umgebung zu aktualisieren?

32
zegkljan

Ab Pycharm 2016.1.4 (Professional Edition) scheint es so zu sein, dass Pycharm beim Öffnen eines anderen Projekts (z. B. über Open Recent) und beim anschließenden Öffnen des ursprünglichen Projekts die installierten Pakete neu indiziert und somit die von Entwicklern installierten Pakete erkennt.

Das ist genug für mich.

20
zegkljan

Im Projektfenster muss das Verzeichnis mit p als Quelle markiert werden. Verfügbar unter: Rechtsklick -> "Verzeichnis markieren als" -> "Quellenstamm".

Hinweis: Mit dieser Einstellung wird PYTHONPATH während der Ausführung aus dem Ausführungsmenü hinzugefügt, wenn das entsprechende Kontrollkästchen für die Option in "Konfigurationen bearbeiten" (Standardeinstellung) aktiviert ist.

17
mike

Ich hatte eine verdammte Zeit, PyCharm dazu zu bringen, eine Klasse in einem Modul zu erkennen, das ich gerade geschrieben hatte.

Das Problem ist, dass PyCharm anscheinend standardmäßig keine Modulklassenpfade importiert, wofür zwei separate Fixes erforderlich sind.

Schritt 1

Klicken Sie mit der rechten Maustaste auf den Modulnamen und markieren Sie ihn als "Quelle":

enter image description here

Schritt 2

Aus irgendeinem Grund werden in PyCharm standardmäßig keine als "Sources Root" gekennzeichneten Verzeichnisse zum Python Pfad hinzugefügt. Beheben Sie dies, indem Sie dies aktivieren.

enter image description here

Extra für Experten

Beachten Sie das "Startskript" im obigen Bild. Ich gehe davon aus, dass das manuelle Hinzufügen dieser Zeilen zu Ihrem Python= - Skript das gleiche Ergebnis erzielen würde.

Getestet am

  • Windows 10 x 64.
  • PyCharm Community Edition 2017.2.3.
14
Contango

Lösung

  • gehe zu settings-> project interpreter .
  • klicken Sie auf die Schaltfläche mit dem Radrahmen (Symbol für das Einstellungszahnrad).
  • Klicken Sie in der Dropdown-Liste auf Alle anzeigen .... Die verfügbaren Dolmetscher werden im Dialogfeld Projektdolmetscher angezeigt.

  • Wählen Sie den gewünschten Dolmetscher.

  • Klicken Sie in der Symbolleiste des Dialogfelds Projektinterpreter auf das Schaltflächensymbol , um Pfade anzuzeigen (letzte Option). Die vorhandenen Pfade des ausgewählten Interpreters werden im Dialogfeld Interpreterpfade angezeigt.

  • Fügen Sie den Pfad Ihres Pakets (Paket, das Sie entwickelt haben) hier hinzu. Ex /home /../ repo-name

voila !! Du bist startklar.

Erklärung
Jedes Projekt bezieht sich auf einen Interpreter, den Sie unter settings-> project interpreter finden. Jetzt verwendet dieser Interpreter eine Reihe von Pfaden, um nach einer Bibliothek zu suchen. Standardmäßig enthält es Site-Pakete und eine Reihe anderer Pfade.
Nun, da Sie pip develop -e oder python setup.py develop wird ein dynamischer Link erstellt, der auf das Repository Ihres Pakets verweist, anstatt auf eine Paketinstallation im Verzeichnis site-packages. Der Quellpfad unseres Pakets ist also nicht hier. Wir müssen unseren Quellpfad zu den Pfaden des Interpreters hinzufügen, damit es funktioniert

Ref:

  1. https://intellij-support.jetbrains.com/hc/en-us/community/posts/115000019690-PyCharm-not-recognize-development-library-
  2. https://www.jetbrains.com/help/pycharm/installing-uninstalling-and-reloading-interpreter-paths.html
3
lego king

Art der Problemumgehung, die für mich funktioniert hat:

Öffnen Sie beide Projekte in PyCharm im selben Fenster (Arbeitsbereich). Öffnen Sie nun das Einstellungsfenster und wählen Sie unter "Projekt -> Projektabhängigkeiten" aus, welches Projekt s vom Projekt p abhängt. Importe und Autovervollständigung funktionieren jetzt einwandfrei.

1
Lucas van Dijk

Ich hatte nur das gleiche Problem wie deins.

Anscheinend kann pycharm das von setup.py direkt installierte Modul nicht erkennen, aber das von pip installierte Modul. Schließlich benutze ich pip install src_path, aber ich muss pip install jedes Mal, wenn ich den Quellcode ändere.

1
sofx

Ich habe gerade das Paket mit Pycharm installiert und dann das Problem gelöst.

0
Hardik Gajjar

Das Problem könnte Ihr Dolmetscherpfad sein. Überprüfen Sie, wohin der Dolmetscher zeigt. In den meisten Fällen ist es ~/PycharmProjects/trial/venv/bin/python und dies könnte auf ein python bath verweisen, das als Teil von Pycharm installiert ist

Ändern Sie den Softlink von python zu Ihrem/usr/bin/python-Pfad und die Dinge sollten gut funktionieren

0
Shiva