marca skelton
He estado usando Cython para compilar mis archivos de Python en archivos C y luego uso MinGW para crear un ejecutable a partir del archivo C. Cython funciona bien, puedo escribir cython test.pyx
en la línea de comando y obtenga un archivo C. El problema es cuando intento compilar un ejecutable desde el archivo C. si escribo gcc test.c
Obtuve el siguiente error:
test.c:4:20: fatal error: Python.h: No such file or directory
#include "Python.h"
^
compilation terminated.
Realmente agradecería algo de ayuda. Estoy ejecutando Windows 7 y Python 3.5.
probablemente no tengas instalado python-dev. Dependiendo de su sistema operativo, necesitaría hacer algo como esto:
sudo apt-get install python-dev
¿Qué es lo que harías en Ubuntu?
-
por cierto: para los usuarios de python3, debe usar
sudo apt-get install python3-dev
– El Bndr
26 de octubre de 2018 a las 8:25
-
@The Bndr ninguno de ellos funcionó para mí y estoy trabajando en ubuntu 18.04. Ya tengo ambos entornos de desarrollo instalados. Trabajando con pycharm todo es la última versión.
– idzireit
8 de mayo de 2019 a las 3:54
ku’
en CCG
#include "file.h"
le dice a gcc que busque el archivo en el mismo directorio donde está test.c, y
#include <file.h>
significa encontrar file.h en las rutas de inclusión de gcc, que se pueden agregar con -I
gcc -I/path/to/the/file_h test.c
podrías intentar
#include <Python.h>
también vea el error fatal: Python.h: No existe tal archivo o directorio
-
Eso me ayuda a superar el error fatal: Python.h: No such file or directory. Pero ahora estoy recibiendo el siguiente error:
collect2.exe: error: ld returned 1 exit status
¿Alguna idea de lo que eso significa y cómo solucionarlo?–Mark Skelton
08/01/2016 a las 13:00
-
ld devolvió 1 significa que la compilación de test.c es exitosa, pero el enlazador no encontró el código de funciones en Python.h. Debe agregar la ruta de la biblioteca para que el enlazador lo sepa. Intente agregar “-lpython2.6” para compilar (como
gcc -o test test.c -lpython2.6
), tenga en cuenta que es posible que deba cambiar la versión de python. Consulte también stackoverflow.com/questions/14260196/….– ku’
9 de enero de 2016 a las 3:46
-
Probé el código que me diste y eso me devolvió al error original que estaba encontrando. No sé mucho sobre el lenguaje C, solo quiero usar Cython para crear scripts ejecutables rápidos.
–Mark Skelton
9 de enero de 2016 a las 16:38
-
¿Podría pegar su código, comandos y mensaje de error en esencia o algo así para la depuración?
– ku’
10 de enero de 2016 a las 5:34
-
No tengo una cuenta de github pero puedo decirte mi código con una línea. Después de encontrar el problema en una pieza de código más larga. Probé el viejo
print("hello world")
expediente. Luego ejecuté cython a través de la línea de comando de esta manera:cython helloworld.pyx
que me dio un archivo C. Luego ejecuté gcc así:gcc helloworld.c
. Probé sus sugerencias y casi todo lo que pude encontrar en Internet, pero todavía no puedo resolverlo.–Mark Skelton
10 de enero de 2016 a las 13:29