Resuelto - Python.h: No existe tal archivo o directorio en C++
-
Causas del error
'Python.h': No such file or directory
en C++ - Instalación de Python que permite incrustar su código en C++
-
Pasos para agregar Python Path a
Include
y Linker de IDE -
Agregue Python Path a
Include
y Linker - Escribir códigos de Python en C++ y compilarlos
- Conclusión
Este artículo explicará cómo solucionar el error 'Python.h': No such file or directory
. Esto suele suceder cuando intentamos incrustar código de Python en C++, pero el compilador no puede encontrar una referencia a Python dentro del sistema.
Causas del error 'Python.h': No such file or directory
en C++
A continuación se muestra un programa en C++ que utiliza códigos de Python.
#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;
}
Cuando se compila este programa, da el error 'Python.h': No such file or directory
.
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 ==========
Varias razones causan el problema 'Python.h': No such file or directory
.
-
Python no está instalado dentro del sistema.
Python es un software empresarial de terceros que no viene con la instalación estándar de los compiladores de Windows y C++. Debe instalarse con la configuración correcta y vinculado al compilador de C++.
-
El compilador de C++ no puede encontrar Python.
Si el compilador se ejecuta a través de un IDE o mingw4, solo puede detectar que C++ estándar incluye paquetes que vienen con una instalación estándar.
Es necesario agregar bibliotecas de terceros a los archivos IDE
include
y linker.Se deben ejecutar tres pasos para resolver los problemas anteriores.
- Instalación personalizada de Python que permite integrarlo en IDE.
- Agregar la ruta de Python al IDE
incluir
y las rutas del enlazador. - Escribir códigos Python dentro de códigos C++ y compilarlos.
Instalación de Python que permite incrustar su código en C++
Si no hay Python dentro del sistema, o si está instalado y vinculado pero aún aparece el error 'Python.h': No such file or directory
, es porque la instalación de Python no descargó los binarios de depuración con él.
Se recomienda desinstalar Python y luego reinstalarlo correctamente para solucionar el error 'Python.h': No such file or directory
.
Dirígete al sitio web de Python y descarga la última versión de Python. Si se requiere una determinada versión, diríjase a la sección Todos los lanzamientos
descargar.
Este artículo muestra los pasos en el sistema operativo Windows, por lo que la opción adecuada es ir con el instalador de Windows (64 bits o 32 bits)
. Se recomienda usar la versión de 64 bits si se usa una PC moderna.
Una vez completada la descarga, ejecute el instalador y elija Personalizar instalación
. La opción Instalar ahora
instalará Python con la configuración predeterminada, pero dejará fuera los binarios de depuración que permiten incrustarlo en los IDE.
Marque la casilla que pide Agregar Python X.X (versión) a PATH
y luego haga clic en Personalizar instalación
.
En la página siguiente, marque todas las casillas y luego haga clic en siguiente.
En el tercer menú, marque la casilla Descargar archivos binarios de depuración
y haga clic en Instalar
. Python se instalará dentro del directorio seleccionado.
Pasos para agregar Python Path a Include
y Linker de IDE
Cualquier biblioteca de terceros que no venga con C++ en su instalación estándar debe estar referenciada al IDE. Los IDE no pueden buscar y detectar automáticamente bibliotecas de terceros dentro del sistema.
Esta es la razón que provoca el error 'Python.h': No such file or directory
.
Aunque IDE puede buscar archivos cuando la biblioteca de paquetes se almacena en el mismo directorio donde se encuentra el script de C++, su ruta debe mencionarse dentro del encabezado #include<>
del programa.
Pero almacenar dependencias de esta manera es una mala práctica.
Lo que debe hacerse es vincular la ruta de la biblioteca al IDE para que pueda incluirse de la misma forma que se incluyen los archivos de encabezado estándar, eliminando la necesidad de proporcionar una ruta de archivo con el código fuente.
Cualquier biblioteca de terceros que no venga con C++ en su instalación estándar debe estar referenciada al IDE. Los IDE no pueden buscar y detectar automáticamente bibliotecas de terceros dentro del sistema.
Esta es la razón que provoca el error 'Python.h': No such file or directory
.
Al principio, se necesita un IDE. Se recomienda usar Visual Studio (2017 o posterior), y este artículo cubrirá lo mismo.
También se puede usar cualquier otro IDE, los pasos son idénticos en la mayoría de ellos, pero Visual Studio lo hace simple.
Instalar Visual Studio en el sistema
El instalador de Visual Studio se puede descargar desde aquí. Después de descargar la versión Community de 64 bits, instale el software, incluida la opción de desarrollo C++.
Una vez completada la instalación, cree un nuevo proyecto.
La ventana puede parecer intimidante para los lectores que nunca antes han usado Visual Studio, pero no hay necesidad de preocuparse. La mayoría de las funciones que se necesitarán están al frente, y este artículo guiará el resto.
Cree un proyecto y asígnele un nombre como ‘Python en cpp’. Después de crear el proyecto, la ventana principal se vería así:
Si solo hay una pantalla negra, presione Ctrl+Alt+l y se abrirá el explorador de soluciones. El explorador de soluciones muestra todos los archivos y dependencias disponibles para el proyecto.
Agregue Python Path a Include
y Linker
En este paso, la ruta de Python se incluirá y vinculará a Visual Studio para que el IDE sepa dónde buscar cuando se escribe #include <python.h>
.
Un requisito previo para este paso es conocer el directorio donde está instalado Python y mantenerlo abierto en otra ventana. Ahora dirígete a Depuración
> Nombre del proyecto
> Propiedades
(en lugar de Nombre del proyecto
, mostrará el nombre del proyecto).
Dentro de la ventana de propiedades del proyecto, vaya a C/C++
> General
> Directorios de inclusión adicionales
, haga clic en el pequeño botón desplegable en el extremo derecho y luego haga clic en <Editar...>
.
Se abrirá el cuadro de diálogo Directorios de inclusión adicionales
. Aquí, haga doble clic en el primer espacio en blanco y pegue la ruta de la carpeta incluir
del directorio donde está instalado Python dentro del sistema, luego haga clic en Aceptar
.
Después de agregar la ruta del directorio include
, diríjase a Linker
> General
> Directorios de bibliotecas adicionales
. Al igual que en el paso anterior, haga clic en <Editar...>
.
Ahora, la carpeta libs
debe agregarse al enlazador. Esta carpeta también se encuentra dentro del directorio de Python, donde se encuentra la carpeta include
.
Después de agregarlo, haga clic en Aceptar
y luego haga clic en Aplicar
.
Escribir códigos de Python en C++ y compilarlos
Una vez que se agregan las rutas include
y del enlazador, se debe compilar un programa de muestra para verificar si los pasos anteriores se han ejecutado correctamente, y no se vuelve a encontrar el error 'Python.h': No such file or directory
.
Vaya al explorador de soluciones y haga clic con el botón derecho en los archivos de origen. Haga clic en añadir
> elemento nuevo
, asigne un nombre al archivo y haga clic en añadir.
Este nuevo archivo contendrá el código que será compilado.
A continuación se muestra el programa C++ utilizado al comienzo del artículo que arrojó errores.
#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;
}
Ahora, cuando se compila el archivo haciendo clic en el botón verde de reproducción en la parte superior, obtenemos el resultado:
Hello World from Embedded Python!!!
Press any key to exit...
Conclusión
Este artículo explica los pasos para solucionar el error 'Python.h': No such file or directory
. Después de leer este artículo, el lector puede instalar Python y Visual Studio y vincularlos a la biblioteca de Python.