Ich benutze Anaconda in pycharm, und wie Sie vielleicht wissen, wurde Cython standardmäßig in Anaconda installiert. Mein Projekt enthält einen kleinen Cython-Code, den ich in pycharm ausführen möchte. Wie kann ich das machen?Wie Cython-Code in Pycharm mit Anakonda ausführen?
Antwort
Simpliest Weg, dies zu tun, ist pyximport zu verwenden:
in Ihrem main.py hinzufügen:
import pyximport
pyximport.install(setup_args={'include_dirs': np.get_include()})
import cython_helper
und platzieren Sie Ihre cython Code in cython_helper.pyx Datei.
Wenn Sie diese auf Windows liefen, bevor Ihr Python-Code runing sollten Sie ENV Variable (VS 2013) gesetzt:
SET VS90COMNTOOLS=%VS120COMNTOOLS%
Die Frage zwei verschiedene Dinge bedeuten könnte:
Sie haben eine .pyx-Quelldatei, aber Sie behandeln sie wie jedes alte Python-Skript und möchten lediglich die Aktionen des Skripts aufrufen.
Ihre .pyx-Datei ist ein Erweiterungsmodul, und nachdem es erstellt wurde, möchten Sie daraus importieren.
Sie können wie in der anderen Antwort pyximport
für diese, aber ein weiteres nützliches Werkzeug ist die jüngste runcython
project. Wenn runcython
installiert ist, dann für Fall 1 oben, können Sie einfach tun:
runcython my_file.pyx
aus Ihrer Eingabeaufforderung und my_file.pyx
wird kompiliert werden, dann auf die gleiche Art und Weise ausgeführt, dass jede generische Python-Skript wäre. Alle Top-Level-Anweisungen werden ausgeführt, aber eine zusätzliche Konvention wird hinzugefügt: Wenn in Ihrem Skript eine Funktion mit dem Namen main
vorhanden ist, wird runcython
sie automatisch aufrufen und sie wie den Abschnitt if __name__ == '__main__'
eines generischen Python-Skripts behandeln. Wenn Sie also mit Cython "scripten" möchten, sollten Sie alle Ihre Top-Level-Definitionen machen, aber dann die gesamte Arbeit in eine Top-Level-Funktion namens main
einfügen, die zuletzt definiert ist.
Beachten Sie, dass der üblicher if __name__ == '__main__'
Trick nicht mit Erweiterungsmodulen im Allgemeinen arbeiten, weil unter der Haube auf dem Prozess python -m
Modul Ausführung beruht, die die Standard-Bibliothek verwendet runpy
und runpy
erfordert es von den ein Codeobjekt zu sein ausgeführtes Modul - etwas, das Erweiterungsmodule normalerweise nicht haben. Sie erhalten einen "Kein-Code-Objekt" -Fehler (zum Beispiel nach dem Erstellen und Installieren Ihrer .so von Cython, wie my_file.so
, versuchen Sie es einfach mit python -m my_file
).
Für den Fall # 2 bietet das runcython
Projekt auch makecython
, was eine große Vereinfachung für den Multi-File, Distutils-basierten Ansatz darstellt, auf den allgemein zurückgegriffen wird. Nachdem Sie also runcython
verwendet haben, um mit dem Code herumzuspielen, können Sie makecython
für den legitimen Build- und Bereitstellungsteil verwenden.
Dies ist immer noch eine neue Bibliothek, also ich empfehle es nicht, wenn Sie über eine reale Welt, Produktionsabhängigkeit oder etwas reden. Für diesen Fall wird pyximport
immer noch besser sein.
Aber für schnelle und schmutzige Arbeit, wo Sie nur ein .pyx
Erweiterungsmodul aufrufen möchten, als wäre es ein generisches Modul, ist runcython
eine bequeme Wahl.
- 1. Wie kann ich Python Anakonda mit Atom 1.0 ausführen
- 2. Wie 'pygraphviz' durch Anakonda
- 3. PyCharm: Wie syncdb und sql Befehle ausführen?
- 4. Ausführen von Python-Paketeinheitstests in PyCharm
- 5. Wie installiert man PyQt4 in Anakonda?
- 6. Ausführen von Django-Apps-Tests in PyCharm
- 7. Debugging in pyCharm mit Sudoprivilegien?
- 8. FEHLER: Ausführen von odoo mit Pycharm in Windows
- 9. Was bedeutet "...:" in der Ipython-Konsole Anakonda?
- 10. Lauf Flasche mit PyCharm
- 11. Erhöhen des Ausgabepuffers beim Ausführen oder Debuggen in PyCharm
- 12. Multithread Debugging mit PyCharm
- 13. Wie ein Python-Paket in PyCharm debuggen
- 14. Fehler in py.test in pycharm
- 15. docker mit pycharm 5
- 16. PygraphViz Importfehler mit PyCharm
- 17. Pycharm: nur einen Teil meiner Python-Datei ausführen
- 18. PyCharm - wie Projektansicht mit Editor zu synchronisieren
- 19. PyCharm: Wie man benehmen.exe?
- 20. Wie pip Bibliotheken mit PyCharm zu synchronisieren
- 21. Zeilenumbruch in PyCharm Python Console?
- 22. Plötzliche Referenzwarnung in PyCharm
- 23. Problem mit Projekt Explorer in Pycharm
- 24. Eingabe Abkürzung in PyCharm
- 25. Wie kann ich ein Shell-Skript anstelle von Python in einer PyCharm-Laufkonfiguration ausführen?
- 26. Debugging mit PyCharm-Terminal-Argumenten
- 27. Import-Verzeichnis in pycharm
- 28. debuggen einer uwsgi python-anwendung mit pycharm
- 29. Pandas Import Fehler mit Pycharm
- 30. PyCharm raw_input und Befehlszeile