2016-04-06 12 views
0

Ich möchte Python-udf-Code in Pydev auf demselben Host wie Excel debuggen. Ich schaute auf die official doc aber konnte das Konzept nicht bekommen oder es funktioniert.xlwings - Remote-Debugging UDF in Pydev Eclipse

if __name__ == '__main__': 
    xw.serve() 

Der Doc sagt auch: Wie pro Dokument, das ich diese Zeilen am Ende meines udfs Modul gesetzt haben

Je nach dem Sie IDE, könnten Sie Dinge in ausführen möchten „debug“ Modus (zB bei Ihrer Verwendung PyCharm oder PyDev):

ich verstehe nicht, was laufen Dinge "oben bedeuten.

Auch nach pydev Anweisungen für Remote-Debugging, hat man eine der folgenden Menü-Taste verwenden (s) in Eclipse:

  1. Attach
  2. Pydev Debug Server
zu verarbeiten

und fügen Sie diesen Code:

import pydevd 
pydevd.settrace() 

ich bin verwirrt, wie man alle Schritte, die f braucht ollow für Remote-Debugging in pydev ein udf-Aufruf von Excel gemacht. Kann jemand Schritte von udf & pydev Debugging teilen?

Pydev ist 64-Bit-Gewinn und Excel ist 2007 (32-Bit).

Antwort

0

Mit xlwings benötigen Sie keine Remote-Debugging oder Anfügen an einen laufenden Prozess, so dass Sie keinen neuen Code wie settrace() einführen müssen. In der Tat ist das Schöne, dass Standard-Debugging mit xlwings und damit mit jeder IDE out of the box funktioniert.

Sie müssen UDF_DEBUG_SERVER = True in den VBA-Einstellungen festlegen. Wenn Sie dann das Excel-Arbeitsblatt neu berechnen, erhalten Sie von den Formeln einen Fehler.

Das bedeutet, dass Sie jetzt die Python-Datei ausführen müssen, dass dies am Ende beinhaltet:

if __name__ == '__main__': 
    xw.serve() 

Diese Zeilen startet den COM-Server. Wenn Sie in Eclipse einfach Run > Run last launched drücken, funktioniert es gut, d. H. Sie sehen in der PyDev-Konsole eine Ausgabe Ihres Codes (wie Druckbefehle), wenn Sie die UDFs erneut berechnen.

Um jedoch den Code an Haltepunkten stoppen zu lassen, müssen Sie Run > Debug Last Launched auswählen.

Verwandte Themen