[pyar] Correr un script de python dentro de un programa en C
Angel Java Lopez
ajlopez2000 en gmail.com
Jue Feb 6 09:04:24 ART 2014
Bien, recien probe:
Windows Server 2008
32 bits
Python 2.7 en el path
Me baje el numpy de
http://www.lfd.uci.edu/~gohlke/pythonlibs/#numpy
corri el instalador
Mi programa python mypython.py
import numpy
print "hello, world"
Mi programa myc.c
#include <stdlib.h>
#include <stdio.h>
int main(){
char py_cmd[200];
sprintf(py_cmd, "python mypython.py");
system(py_cmd);
}
Mi programa python funciona con
python mypython.py
Agrege el DevKit para compilar
gcc myc.c
ejecuto a.exe y anda joya
Tenes info de:
- Que PATH estas usando?
- Como compilas el programa c?
- Que pasa si llamas a un programa python que muestre el sys.path,
diferencias entre llamarlo a mano, y desde c?
- Tu python realmente esta en /usr/lib/python27 o el cargador de numpy se
confundio y detecto que cree estar en un linux o similar?
Nos leemos!
Angel "Java" Lopez
@ajlopez
2014-02-05 9:35 GMT-03:00 Emanuel Benatti <emanuel.benatti en gmail.com>:
> Hola a todos,
>
> estoy tratando de correr un script hecho en python dentro del código de un
> programa hecho en C. Me pareció que lo mas sencillo era utilizar la función
> system de C, asi que después de un par de intentos di con lo que parecía
> ser la fórmula correcta. Sin embargo, cuando quiero correr un script que
> requiere importar numpy obtengo el siguiente mensaje de error:
>
> Traceback (most recent call last):
> File "pyemb.py", line 1, in <module>
> import numpy
> File "/usr/lib/python2.7/site-packages/numpy/__init__.py", line 137, in
> <module>
> import add_newdocs
> File "/usr/lib/python2.7/site-packages/numpy/add_newdocs.py", line 9, in
> <module>
> from numpy.lib import add_newdoc
> File "/usr/lib/python2.7/site-packages/numpy/lib/__init__.py", line 13,
> in <module>
> from polynomial import *
> File "/usr/lib/python2.7/site-packages/numpy/lib/polynomial.py", line
> 17, in <module>
> from numpy.linalg import eigvals, lstsq
> File "/usr/lib/python2.7/site-packages/numpy/linalg/__init__.py", line
> 48, in <module>
> from linalg import *
> File "/usr/lib/python2.7/site-packages/numpy/linalg/linalg.py", line 23,
> in <module>
> from numpy.linalg import lapack_lite
> ImportError: No such file or directory
>
> Esto es lo que pongo en el codigo en c:
> #include <stdlib.h>
> #include <stdio.h>
>
> int main(){
> char py_cmd[200];
>
> sprintf(py_cmd, "python pyemb.py");
> system(py_cmd);
>
> }
>
> siendo pyemb.py:
> import numpy
> print "all fine with the world"
>
>
> Lo mas extraño de todo es que si en la linea de comandos corro el comando:
> python pyemb.py
>
> todo resulta como debe ser.
>
> Estoy realmente perdido en esto. ¿Qué diferencia puede haber en correr el
> comando usando system que haciéndolo directamente?
>
> Probé tambien importar otros módulos, como subprocess, math, y sys y no
> tuve ningún problema.
>
> Estoy usando python 2.7 en windows XP.
>
> En la computadora también hay instalado un python 2.5, aunque cuando
> escribo "python" en la línea de comandos el intérprete que me sale es el de
> la versión 2.7, así que no creo que el problema pase por ahí. ¿Estoy en lo
> correcto?
>
> Muchas gracias
> --
> Emanuel
>
> _______________________________________________
> pyar mailing list pyar en python.org.ar
> http://listas.python.org.ar/listinfo/pyar
>
> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>
> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
> Argentina - http://www.usla.org.ar
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20140206/07af97ef/attachment.html>
More information about the pyar
mailing list