2012-06-15 6 views
17

Wenn Sie von der Kommandozeile ausgeführtCython Flag -a (erzeugen gelb-Shading-HTML) ohne Kommandozeile

$ cython -a mycode.pyx 

Sie eine wirklich schöne HTML „Anmerkung“ Datei mit gelber Schattierung erhalten zu langsam Python Operationen zeigen gegen schnelle C-Operationen. Sie erhalten dieselbe HTML-Datei auch als Link, wenn Sie Cython-Code in Sage kompilieren. Meine Fragen sind: (1) Kann ich diese HTML-Datei bekommen, wenn ich mit Distutils kompiliere? (2) Kann ich diese HTML-Datei bekommen, wenn ich mit Pycximport kompiliere? Vielen Dank!!

+0

Sie können den Befehl 'cython' immer mit' subprocess' aufrufen. Andernfalls lesen Sie den Cython-Quellcode. Es ist nicht sehr schwer zu folgen. –

Antwort

20

Dank larsmans Kommentar und die Cython email list, ich habe jetzt viele befriedigende Möglichkeiten, die "mit Anmerkungen versehen" HTML-Datei ohne sich IPython zu generieren:

(1) Verwenden Sie subprocess ...

import subprocess 
subprocess.call(["cython","-a","myfilename.pyx"]) 

(2) Schalten Sie den globalen annotate Flagge in Cython mich, vor dem Kompilieren:

import Cython.Compiler.Options 
Cython.Compiler.Options.annotate = True 

(3) Führen Sie annotate=True in cythonize() [bei Verwendung der distutils compilation method].

Es scheint, dass PYXIMPORT keine eigene direkte Option zum Aktivieren von Annotation hat.

+0

Wie man sich denken kann, ist es 'cython3' für Python 3. – handle

+0

' annotieren' ist nicht zu finden in http://cython.readthedocs.io/en/latest/src/reference/compilation.html#compiler-directives und das Hinzufügen als '#cython: annotieren = Wahr 'erzeugt die Datei nicht, also habe ich einfach Ihre Option 3 (erfolgreich) verwendet. – handle

+0

@handle - Option (2) war immer undokumentiert. Hast du es tatsächlich versucht? –