Wie repliziere ich die Art und Weise, wie PyCharm mein Python 3.4-Projekt in der Befehlszeile ausführt?

9

Mein Projekt sieht so aus:

%Vor%

Der Inhalt der .py-Dateien wird unten angezeigt:

main.py

%Vor%

c / run_project.py

%Vor%

c / z / the_module.py

%Vor%

c / z / y / das_modul_modul.py

%Vor%

c / z / y / die_support_function.py

%Vor%

GitHub Repo, um die Replikation zu vereinfachen: running-pycharm-project-at-cmd

Das Problem: Laden Sie in Pycharm das Projekt mit running-pycharm-project-at-cmd als Root hoch. Dann klicke ich mit der rechten Maustaste und starte die run_project.py Datei. Alles funktioniert gut. Ich kann nicht herausfinden, wie run_project.py von der Kommandozeile auf die gleiche Weise ausgeführt wird. Das Erstellen von main.py war eine an anderer Stelle vorgeschlagene Problemumgehung , aber es schlägt aufgrund der relative Verweise auf die Vorlagendatei (im aktuellen Projekt ist der Ordner y ein Git-Submodul und kann daher keine absoluten Referenzen enthalten).

    
skulz00 16.11.2015, 16:23
quelle

2 Antworten

0

Ich ging zurück und konnte es zum Laufen bringen. Beachten Sie, dass ich Windows 7 verwende und einige davon möglicherweise plattformabhängig sind. Damit dies funktioniert, ohne Code zu ändern, setzt der Schlüssel die Umgebungsvariable PYTHONPATH, bevor er ausgeführt wird. PyCharm führt dies automatisch aus (standardmäßig, aber konfigurierbar in den Optionen zur Ausführung der Konfiguration).

Schritte:

Das Problem erneut erstellen:

  • Klonen Sie den GitHub Repo zu G: \ TEST.
  • Navigieren Sie zu G: \ TEST \ running-pycharm-project-bei-cmd-master \ c
  • python run_project.py

Traceback (most recent call last): File "run_project.py", line 1, in <module> from c.z.the_module import the_module_function, the_module_write_function ImportError: No module named 'c'

Einfachste Lösung (falls Python vom Skript-Ort aus ausgeführt werden kann):

  • Setzen Sie die PYTHONPATH-Umgebungsvariable vor dem Ausführen. z.B.

SET PYTHONPATH=G:\TEST\running-pycharm-project-at-cmd-master

  • Jetzt python run_project.py

Running run_project.py! the_module_function is running! The module module function is running! Here is support data: I am the support data!

Um von einem entfernten Standort aus zu starten (dies ist definitiv Windows-spezifisch):

  • Erstellen Sie eine BAT-Datei, die vor dem Ausführen von Python zum Korrigieren des Arbeitsverzeichnisses navigiert. d.h.:

START cmd /K "cd G:\TEST\running-pycharm-project-at-cmd-master\c & python run_project.py"

G:\TEST\myotherlocation run_it.bat

Running run_project.py! the_module_function is running! The module module function is running! Here is support data: I am the support data!

    
skulz00 09.06.2016, 17:56
quelle
1

Wenn Sie Ihre Datei main.py in den Ordner c kopieren und sie in __init__.py umbenennen, können Sie Folgendes ausführen:

$ python -m c

Das Argument -m sagt Python, dass es ein Modul oder Paket ausführen soll (in diesem Fall c ). Python sucht im Ordner c nach einer __init__.py -Datei und führt diese aus. Sie müssen nur sicherstellen, dass sich der Ordner c entweder in Ihrem PYTHONPATH befindet oder ein Unterordner des aktuellen Arbeitsverzeichnisses ist.

    
Brad Campbell 16.11.2015 18:41
quelle