Cython Fatal Error: Python.h Keine solche Datei oder Verzeichnis

Lesezeit: 3 Minuten

Benutzeravatar von Mark Skelton
Markus Skelton

Ich habe Cython verwendet, um meine Python-Dateien in C-Dateien zu kompilieren, und dann MinGW verwendet, um eine ausführbare Datei aus der C-Datei zu erstellen. Cython funktioniert gut, ich kann tippen cython test.pyx in die Befehlszeile und erhalten Sie eine C-Datei. Das Problem tritt auf, wenn ich versuche, eine ausführbare Datei aus der C-Datei zu kompilieren. Wenn ich tippe gcc test.c Ich bekomme folgenden Fehler:

test.c:4:20: fatal error: Python.h: No such file or directory
 #include "Python.h"
                    ^
compilation terminated.

Ich würde wirklich etwas Hilfe schätzen. Ich verwende Windows 7 und Python 3.5.

Sie haben wahrscheinlich python-dev nicht installiert. Abhängig von Ihrem Betriebssystem müssen Sie so etwas tun:

sudo apt-get install python-dev

Was Sie unter Ubuntu tun würden

  • Übrigens: Für Python3-Benutzer müssen Sie verwenden sudo apt-get install python3-dev

    – Der Bndr

    26. Oktober 2018 um 8:25 Uhr

  • @The Bndr hat keiner von ihnen für mich funktioniert und ich arbeite an Ubuntu 18.04. Habe bereits beide Entwicklungsumgebungen installiert. Aus Arbeit von pycharm ist alles die neuste Version.

    – idzireit

    8. Mai 2019 um 3:54 Uhr

Benutzeravatar von ku
ku’

im gcc

#include "file.h"

weist gcc an, die Datei im selben Verzeichnis zu finden, in dem sich test.c befindet, und

#include <file.h>

bedeutet, file.h in den gcc-Include-Pfad zu finden, die mit -I hinzugefügt werden können

gcc -I/path/to/the/file_h test.c

Sie könnten versuchen

#include <Python.h>

siehe auch schwerwiegender Fehler: Python.h: No such file or directory

  • Das bringt mich über den schwerwiegenden Fehler hinaus: Python.h: No such file or directory. Aber jetzt bekomme ich folgenden Fehler: collect2.exe: error: ld returned 1 exit status Irgendeine Idee, was das bedeutet und wie man es beheben kann?

    – Mark Skelton

    8. Januar 2016 um 13:00 Uhr


  • ld hat 1 zurückgegeben bedeutet, dass die Kompilierung von test.c erfolgreich war, aber der Linker hat den Funktionscode in Python.h nicht gefunden. Sie müssen den Bibliothekspfad hinzufügen, um den Linker darüber zu informieren. Bitte versuchen Sie, “-lpython2.6” zum Kompilieren hinzuzufügen (wie z gcc -o test test.c -lpython2.6), beachten Sie, dass Sie möglicherweise die Version von Python ändern müssen. Siehe auch stackoverflow.com/questions/14260196/….

    – ku’

    9. Januar 2016 um 3:46 Uhr


  • Ich habe den von Ihnen angegebenen Code ausprobiert und das hat mich zu dem ursprünglichen Fehler zurückgebracht, auf den ich gestoßen bin. Ich weiß nicht viel über die C-Sprache, ich möchte Cython nur zum Erstellen schnell ausführbarer Skripte verwenden.

    – Mark Skelton

    9. Januar 2016 um 16:38 Uhr


  • Könnten Sie Ihren Code, Ihre Befehle und Ihre Fehlermeldung zum Debuggen in Gist oder ähnliches einfügen?

    – ku’

    10. Januar 2016 um 5:34 Uhr

  • Ich habe kein Github-Konto, aber ich kann Ihnen meinen Code in einer Zeile mitteilen. Nachdem Sie das Problem in einem längeren Codeabschnitt gefunden haben. Ich habe das alte probiert print("hello world") Datei. Ich habe dann Cython über die Befehlszeile wie folgt ausgeführt: cython helloworld.pyx was mir eine C-Datei gab. Dann habe ich gcc so ausgeführt: gcc helloworld.c. Ich habe Ihre Vorschläge und so ziemlich alles andere ausprobiert, was ich im Internet finden konnte, aber ich kann es immer noch nicht herausfinden.

    – Mark Skelton

    10. Januar 2016 um 13:29 Uhr

1432790cookie-checkCython Fatal Error: Python.h Keine solche Datei oder Verzeichnis

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy