2017-01-31 3 views
0

Ich entwickle eine App, um Windows-Betriebssystem und einige Software mit Treibern zu implementieren. Diese Anwendung soll in WinPE (Windows Preinstallation Environment) funktionieren, die ich von USB-Stick für Laptop oder VHD für VM boote. Für die Entwicklung verwende ich IDE (PyCharm) auf dem Desktop Windows 7. Aber es ist wirklich unangenehm, Code auf dem Desktop-PC zu schreiben, kopieren Sie es weiter auf USB oder VHD und führen Sie Code auf Laptop oder VM ohne die Möglichkeit, es zu debuggen. Ich habe herausgefunden, dass Vagrant mir helfen kann, Code in VM auszuführen, aber es ist unmöglich, SSH direkt in WinPE zu installieren.Die beste Methode zum Debuggen von Python für WinPE

Kann jemand noch etwas vorschlagen?

Antwort

0

Nur eine solche Lösung gefunden: 1. Geben Sie Ihr Projektverzeichnis frei, um sicherzustellen, dass Desktop- und Remotecode vollständig übereinstimmen. 2. Stellen Sie sicher, dass der Remote-Computer (oder VM) Ihren Desktop-PC mit PyCharm anpingen kann. 3. Befolgen Sie die PyCharm-Anweisungen für das Remote-Debugging mit pydev.egg.

Es ist nicht so bequem, weil Sie App auf Remote-Computer oder VM jedes Mal neu starten sollten, wenn Sie App erneut debuggen möchten. Außerdem gibt es einen Fehler in PyCharm Remote Debug: Wenn Sie ein kyrillisches Gebietsschema im Desktop-Betriebssystem haben, erhalten Sie wahrscheinlich einen Fehler bei der Pfadzuordnung. Für diesen Moment kann ich es nicht richtig mit Breakpoints arbeiten.

Dies ist mein Code für Debug:

from os import system as sys_call 
import os 
import sys 

debug_egg_dir = "PyCharm\\debug-eggs\\" 
debug_egg_name = "pycharm-debug-py3k.egg" 
python_dir = os.path.dirname(sys.executable) 

PORT = 15999 


def connect(server): 
    if sys_call("ping -n 1 " + server + ">nul") != 0: 
     raise ConnectionError("PyCharm Debug Server ({}) is not available".format(server)) 

    try: 
     sys.path.append(python_dir + "\\" + debug_egg_name) 
     import pydevd 
     pydevd.settrace(server, port=PORT, stdoutToServer=True, stderrToServer=True, suspend=False) 

    except ImportError: 
     raise FileNotFoundError("Copy file {0}{1} into {2}".format(
      debug_egg_dir, 
      debug_egg_name, 
      python_dir 
     )) 

    except Exception as e: 
     raise e 
Verwandte Themen