Gelöst - Python.h: Keine solche Datei oder Verzeichnis in C++

Jay Shaw 15 Februar 2024
  1. Ursachen für 'Python.h': No such file or directory Fehler in C++
  2. Python-Installation, die das Einbetten des Codes in C++ ermöglicht
  3. Schritte zum Hinzufügen des Python-Pfads zu Include und Linker der IDE
  4. Python-Pfad zu Include und Linker hinzufügen
  5. Schreiben Sie Python-Codes in C++ und kompilieren Sie sie
  6. Abschluss
Gelöst - Python.h: Keine solche Datei oder Verzeichnis in C++

Dieser Artikel erklärt, wie man den Fehler 'Python.h': No such file or directory löst. Dies passiert normalerweise, wenn wir versuchen, Python-Code in C++ einzubetten, aber der Compiler keinen Verweis auf Python im System finden kann.

Ursachen für 'Python.h': No such file or directory Fehler in C++

Unten ist ein C++-Programm, das Python-Codes verwendet.

#include <Python.h>
#include <conio.h>
#include <stdio.h>

int main() {
  PyObject* pInt;

  Py_Initialize();

  PyRun_SimpleString("print('Hello World from Embedded Python!!!')");

  Py_Finalize();

  printf("\nPress any key to exit...\n");
  if (!_getch()) _getch();
  return 0;
}

Wenn dieses Programm kompiliert wird, gibt es den Fehler 'Python.h': No such file or directory aus.

Build started...
1>------ Build started: Project: Python into Cpp, Configuration: Debug x64 ------
1>1.cpp
1>C:\Users\Win 10\source\repos\Python into Cpp\1.cpp(3,10): fatal error C1083: Cannot open include file: 'Python.h': No such file or directory
1>Done building project "Python into Cpp.vcxproj" -- FAILED.
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

Verschiedene Gründe verursachen das Problem 'Python.h': No such file or directory.

  1. Python ist nicht im System installiert.

    Python ist eine Unternehmenssoftware von Drittanbietern, die nicht mit der Standardinstallation von Windows- und C++-Compilern geliefert wird. Es muss mit den richtigen Einstellungen installiert und mit dem C++-Compiler verknüpft werden.

  2. Der C++-Compiler kann Python nicht finden.

    Wenn der Compiler über eine IDE oder mingw4 ausgeführt wird, kann er nur erkennen, dass Standard-C++ Pakete enthält, die mit einer Standardinstallation geliefert werden.

    Bibliotheken von Drittanbietern müssen zu den include- und Linker-Dateien der IDE hinzugefügt werden.

    Drei Schritte müssen ausgeführt werden, um die oben genannten Probleme zu lösen.

    1. Benutzerdefinierte Installation von Python, die es ermöglicht, es in IDEs einzubetten.
    2. Hinzufügen des Python-Pfads zur IDE include und Linker-Pfade.
    3. Python-Codes in C++-Codes schreiben und kompilieren.

Python-Installation, die das Einbetten des Codes in C++ ermöglicht

Wenn es kein Python im System gibt oder wenn es installiert und verlinkt ist, aber immer noch der Fehler 'Python.h': No such file or directory auftritt, liegt das daran, dass die Python-Installation die Debug-Binärdateien nicht mit heruntergeladen hat.

Es wird empfohlen, Python zu deinstallieren und dann korrekt neu zu installieren, um den Fehler 'Python.h': No such file or directory zu beheben.

Besuchen Sie die Website von Python und laden Sie die neueste Python-Version herunter. Wenn eine bestimmte Version benötigt wird, gehen Sie zum Abschnitt Alle Releases Download.

Dieser Artikel zeigt die Schritte im Windows-Betriebssystem, daher ist die geeignete Option das Windows-Installationsprogramm (64-Bit oder 32-Bit). Es wird empfohlen, die 64-Bit-Version zu verwenden, wenn ein moderner PC verwendet wird.

Führen Sie nach Abschluss des Downloads das Installationsprogramm aus und wählen Sie Installation anpassen. Die Option Jetzt installieren installiert Python mit den Standardeinstellungen, lässt aber die Debug-Binärdateien weg, die es ermöglichen, es in IDEs einzubetten.

Aktivieren Sie das Kästchen mit der Aufforderung Python X.X (Version) zu PATH hinzufügen und klicken Sie dann auf Installation anpassen.

Installation anpassen

Markieren Sie auf der nächsten Seite alle Kästchen und klicken Sie dann auf Weiter.

Optionale Funktionen

Aktivieren Sie im dritten Menü das Kästchen Debug-Binärdateien herunterladen und klicken Sie auf Installieren. Python wird im ausgewählten Verzeichnis installiert.

Debug-Bibliotheken

Schritte zum Hinzufügen des Python-Pfads zu Include und Linker der IDE

Jede Bibliothek von Drittanbietern, die nicht in der Standardinstallation von C++ enthalten ist, muss auf die IDE verwiesen werden. IDEs können Bibliotheken von Drittanbietern innerhalb des Systems nicht automatisch suchen und erkennen.

Dies ist der Grund für den Fehler 'Python.h': No such file or directory.

Obwohl IDE nach Dateien suchen kann, wenn die Paketbibliothek in demselben Verzeichnis gespeichert ist, in dem sich das C++-Skript befindet, sollte ihr Pfad innerhalb des #include<>-Headers des Programms erwähnt werden.

Das Speichern von Abhängigkeiten auf diese Weise ist jedoch eine schlechte Praxis.

Was getan werden muss, ist, dass der Pfad der Bibliothek mit der IDE verknüpft werden sollte, damit sie so eingebunden werden kann, wie Standard-Header-Dateien eingebunden werden, wodurch die Notwendigkeit entfällt, einen Dateipfad mit dem Quellcode anzugeben.

Jede Bibliothek von Drittanbietern, die nicht in der Standardinstallation von C++ enthalten ist, muss auf die IDE verwiesen werden. IDEs können Bibliotheken von Drittanbietern innerhalb des Systems nicht automatisch suchen und erkennen.

Dies ist der Grund für den Fehler 'Python.h': No such file or directory.

Zunächst wird eine IDE benötigt. Es wird empfohlen, Visual Studio (2017 oder höher) zu verwenden, und dieser Artikel behandelt dasselbe.

Es kann auch jede andere IDE verwendet werden, die Schritte sind in den meisten identisch, aber Visual Studio macht es einfach.

Installieren Sie Visual Studio im System

Der Installer von Visual Studio kann von hier heruntergeladen werden. Installieren Sie nach dem Herunterladen der 64-Bit-Community-Version die Software, einschließlich der C++-Entwicklungsoption.

Erstellen Sie nach Abschluss der Installation ein neues Projekt.

Das Fenster kann für Leser, die Visual Studio noch nie zuvor verwendet haben, einschüchternd wirken, aber Sie müssen sich keine Sorgen machen. Die meisten Funktionen, die benötigt werden, sind im Vordergrund, und dieser Artikel wird den Rest anleiten.

Erstellen Sie ein Projekt und geben Sie ihm einen Namen wie Python in cpp. Nachdem das Projekt erstellt wurde, würde das Hauptfenster ungefähr so aussehen:

Hauptfenster

Wenn nur ein schwarzer Bildschirm angezeigt wird, drücken Sie Strg+Alt+l, und der Lösungs-Explorer wird geöffnet. Der Projektmappen-Explorer zeigt alle für das Projekt verfügbaren Dateien und Abhängigkeiten an.

Python-Pfad zu Include und Linker hinzufügen

In diesem Schritt wird der Python-Pfad eingebunden und mit Visual Studio verknüpft, damit die IDE weiß, wo sie suchen muss, wenn #include <python.h> geschrieben wird.

Voraussetzung für diesen Schritt ist, das Verzeichnis zu kennen, in dem Python installiert ist, und es in einem anderen Fenster geöffnet zu lassen. Gehen Sie nun zu Debug > Projektname > Eigenschaften (Anstelle von Projektname wird der Name des Projekts angezeigt).

Projekteigenschaften

Gehen Sie im Eigenschaftenfenster des Projekts zu C/C++ > Allgemein > Zusätzliche Include-Verzeichnisse, klicken Sie auf die kleine Drop-Schaltfläche ganz rechts und dann auf <Bearbeiten...>.

C++ Allgemein

Das Dialogfenster Zusätzliche Include-Verzeichnisse öffnet sich. Doppelklicken Sie hier auf das erste Leerzeichen und fügen Sie den Pfad des Ordners include aus dem Verzeichnis ein, in dem Python im System installiert ist, und klicken Sie dann auf OK.

Zusätzliche Include-Verzeichnisse

Nachdem der Pfad des Verzeichnisses include hinzugefügt wurde, gehen Sie zu Linker > Allgemein > Zusätzliche Bibliotheksverzeichnisse. Klicken Sie wie im vorigen Schritt auf <Bearbeiten...>.

Zusätzliche Bibliotheksverzeichnisse

Jetzt sollte der Ordner libs zum Linker hinzugefügt werden. Dieser Ordner befindet sich auch im Python-Verzeichnis, wo sich der Ordner include befindet.

Klicken Sie nach dem Hinzufügen auf OK und dann auf Übernehmen.

lib-Ordner hinzufügen

Schreiben Sie Python-Codes in C++ und kompilieren Sie sie

Sobald die include- und Linker-Pfade hinzugefügt sind, muss ein Beispielprogramm kompiliert werden, um zu überprüfen, ob die obigen Schritte korrekt ausgeführt wurden und der Fehler 'Python.h': No such file or directory nicht mehr auftritt.

Gehen Sie zum Lösungs-Explorer und klicken Sie mit der rechten Maustaste auf Quelldateien. Klicken Sie auf Hinzufügen > Neues Element, geben Sie der Datei einen Namen und klicken Sie auf Hinzufügen.

Diese neue Datei enthält den zu kompilierenden Code.

Unten ist das C++-Programm, das am Anfang des Artikels verwendet wurde und Fehler auslöste.

#include <Python.h>
#include <conio.h>
#include <stdio.h>

int main() {
  PyObject* pInt;

  Py_Initialize();

  PyRun_SimpleString("print('Hello World from Embedded Python!!!')");

  Py_Finalize();

  printf("\nPress any key to exit...\n");
  if (!_getch()) _getch();
  return 0;
}

Wenn die Datei nun kompiliert wird, indem Sie oben auf die grüne Wiedergabeschaltfläche klicken, erhalten wir die Ausgabe:

Hello World from Embedded Python!!!

Press any key to exit...

Abschluss

Dieser Artikel erklärt die Schritte zur Behebung des Fehlers 'Python.h': No such file or directory. Nach dem Lesen dieses Artikels kann der Leser Python und Visual Studio installieren und mit der Python-Bibliothek verknüpfen.

Verwandter Artikel - C++ Error