2015-12-16 8 views
16

Kürzlich kann ich relative Pfade in meinem Code nicht mehr verwenden, wenn ich PyCharm verwende. Zum Beispiel wird eine einfache open('test.txt', 'r') nicht funktionieren - worauf ich bin sicher, dass die Datei auf der gleichen Ebene wie die laufende py-Datei existiert. PyCharm wird diesen Fehler zurückgeben.PyCharm aktuelles Arbeitsverzeichnis

FileNotFoundError: [Errno 2] No such file or directory:

Nach Antworten online über Stackoverflow zu lesen, ich habe mit mehreren Optionen ausprobiert:

  • Ändern test.txt zu ./test.txt
  • Abschlussprojekt, den .idea Ordner zu löschen, mit Code, um den Ordner zu öffnen.
  • Erneutes Installieren und Installieren der neuesten Version von PyCharm.
  • Caches ungültig machen und neu starten.

Keine dieser Optionen hat für mich funktioniert. Gibt es eine Möglichkeit, PyCharm zu informieren, das aktuelle Arbeitsverzeichnis zu aktualisieren (oder sogar zu sehen, wo das aktuelle Arbeitsverzeichnis liegt)?

Vielen Dank im Voraus!

Edit: Ich sollte beachten, dass das Ausführen des Skripts in einem Terminalfenster funktioniert. Dies scheint ein Problem mit PyCharm und nicht mit dem Skript zu sein.

+2

Sie diese in Ihrem Skript setzen kann das aktuelle Arbeitsverzeichnis 'import o print (os.getcwd()) ' – Dan

+0

Interessant zu sehen, heißt es, dass es an den 'C ist: \ Programmdateien (x86) \ JetBrains \ PyCharm 5.0.2 \ jre \ jre \ bin' – qwertyuip9

+0

Laufen Sie mit erhöhten Berechtigungen auf der Befehlszeile? Wenn Sie auf einem Unix-ähnlichen System sind, dann sollten Sie Ihre Berechtigungen für die Datei – Dan

Antwort

16

Ich habe Pycharm 4.5, also könnten sich die Dinge ein bisschen geändert haben.

Versuchen Sie Einstellungen> Projekt> Projektstruktur

In diesem Dialog klicken Sie auf den Ordner, die den Quellcode in ihm hat, und klicken Sie dann auf den blauen Ordner im Menü als „Quelle“ -Ordner zu beachten. Ich glaube, das viele der Pfadprobleme in PyCharm behebt

Hier ist der Link zu „Inhalt Wurzeln“: https://www.jetbrains.com/pycharm/help/content-root.html

+0

Es war eine ähnliche Lösung, die ich gerade gefunden habe ([Link hier] (http://StackOverflow.com/) Fragen/30353714/python-flask-app-runs-from-false-folder-nach-run-by-pycharm-on-127-0-0-1)), musste ich das Arbeitsverzeichnis hinzufügen, indem Sie auf das Projekt klicken Name oben rechts und Bearbeiten seiner Konfigurationen. Es scheint kontraproduktiv zu sein, diesen zusätzlichen Schritt hinzufügen zu müssen - vielleicht gab es ein paar Probleme beim Erstellen des Projekts an erster Stelle. Ich werde deine als richtig markieren, da sie am nächsten war! – qwertyuip9

+0

Leider funktionierte das unter OSX nicht für mich - obwohl ich die Wurzel meines Projekts als Quellordner festgelegt hatte, wo mein Skript ist, konnte der Runner das Skript nicht finden.Die einzige Lösung, die ich gefunden habe, war @ anderes unten, wo Sie das Arbeitsverzeichnis explizit auf den absoluten Pfad setzen. Ich bin nicht sicher, ob das bricht, wenn das Projekt verschoben wird ... – meowsqueak

+0

@meowsqueak Froh, dass Sie es ausgearbeitet haben ... Mit Ihrem Problem habe ich auch normalerweise 'os.chir (directory_path)' mit einem Verzeichnispfad, den ich von 'splitte __Datei__'. Dies hilft beim Ausführen des Skripts außerhalb einer IDE und für den Fall, dass das Skript von einem anderen Verzeichnis als dem, in dem sich die Skript- und Textdatei befindet, aufgerufen wird. – Dan

3

__file__ verweist Pfad zur Datei. So können Sie die folgende beziehen Datei im selben Verzeichnis:

import os 

dirpath = os.path.dirname(__file__) 
filepath = os.path.join(dirpath, 'test.txt') 
open(filepath, 'r') 
+0

Ich mag deine Lösung besser als meins :) Ich habe versucht, es auf dem Pycharm Level zu halten, aber haha ​​ – Dan

+0

Danke! Mein Problem war mehr PyCharm, aber es war gut zu wissen, dass ich auch das os-Modul benutzen konnte! – qwertyuip9

18

ändern: Run> Bearbeiten Konfigurationen> Arbeitsverzeichnis, , die das Arbeitsverzeichnis für ein bestimmtes Projekt setzt. (Dies ist auf einem Mac)

Verwandte Themen