schwerwiegender Fehler: Python.h: Keine solche Datei oder Verzeichnis

Lesezeit: 2 Minuten

Benutzer-Avatar
Mohanad Y.

Ich versuche, eine gemeinsam genutzte Bibliothek mit einer C-Erweiterungsdatei zu erstellen, aber zuerst muss ich die Ausgabedatei mit dem folgenden Befehl generieren:

gcc -Wall utilsmodule.c -o Utilc

Nach Ausführen des Befehls bekomme ich diese Fehlermeldung:

> utilsmodule.c:1:20: fatal error: Python.h: No such file or directory
compilation terminated.

Ich habe alle vorgeschlagenen Lösungen über das Internet versucht, aber das Problem besteht immer noch. Ich habe kein Problem mit Python.h. Ich habe es geschafft, die Datei auf meinem Computer zu finden.

Benutzer-Avatar
FreshPow

Auf Ubuntu lief Python 3 und ich musste es installieren

sudo apt-get install python3-dev

Wenn Sie eine Version von Python verwenden möchten, die nicht mit python3 verknüpft ist, installieren Sie das zugehörige Paket python3.x-dev. Zum Beispiel:

sudo apt-get install python3.5-dev

  • Wenn Sie virtuelle Umgebungen mit unterschiedlichen Python-Versionen verwenden, stellen Sie sicher, dass Sie die virtuelle Umgebung erstellen, nachdem das erforderliche Entwicklungspaket installiert wurde. Andernfalls werden die Header-Dateien nicht korrekt kopiert.

    – ruhsuzbaykus

    28. Februar um 22:10 Uhr

  • Gleiches gilt für Python 3.10

    – Daniel

    28. Februar um 9:40 Uhr

  • immer noch relevant und funktioniert.

    – Krishnadas PC

    22. April um 4:30 Uhr

  • Sehr nervig zu erreichen. Danke vielmals!

    – Shuhari

    21. Mai um 18:03 Uhr

Zwei Dinge müssen Sie tun.

Installieren Sie das Entwicklungspaket für Python, im Fall von Debian/Ubuntu/Mint erfolgt dies mit dem Befehl:

sudo apt-get install python-dev

Zweitens befinden sich Include-Dateien nicht standardmäßig im Include-Pfad, noch ist die Python-Bibliothek standardmäßig mit der ausführbaren Datei verknüpft. Sie müssen diese Flags hinzufügen (Python-Version entsprechend ersetzen):

-I/usr/include/python2.7 -lpython2.7 

Mit anderen Worten, Ihr Kompilierungsbefehl sollte lauten:

gcc -Wall -I/usr/include/python2.7 -lpython2.7  utilsmodule.c -o Utilc 

  • muss ich Flags für jede enthaltene Datei in der C-Erweiterungsdatei hinzufügen?

    – Mohanad Y.

    4. Februar 2014 um 8:38 Uhr

  • Wenn Sie eine andere Version von Python verwenden, beispielsweise 3.3: sudo apt-get install python3.3-dev

    – FreshPow

    6. August 2014 um 13:07 Uhr

Benutzer-Avatar
Martin Tournij

Führen Sie auf Fedora dies für Python 2 aus:

sudo dnf install python2-devel

und für Python 3:

sudo dnf install python3-devel

  • muss ich Flags für jede enthaltene Datei in der C-Erweiterungsdatei hinzufügen?

    – Mohanad Y.

    4. Februar 2014 um 8:38 Uhr

  • Wenn Sie eine andere Version von Python verwenden, beispielsweise 3.3: sudo apt-get install python3.3-dev

    – FreshPow

    6. August 2014 um 13:07 Uhr

Wenn Sie verwenden tox Um Tests auf mehreren Versionen von Python auszuführen, müssen Sie möglicherweise die Python-Entwicklungsbibliotheken für jede Version von Python installieren, auf der Sie testen.

sudo apt-get install python2.6-dev 
sudo apt-get install python2.7-dev 
etc.

1158160cookie-checkschwerwiegender Fehler: 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