Hi,
I managed to work with Python C API (thanks Eric).
I able to embed or extend python via the standard C interface.
But boost::python unexpectedly crashing. (see my previous mail)
Any suggestions?
Thanks,
Miklós


2014-06-12 10:15 GMT+02:00 Miklós Tóth <spiralfuzet@gmail.com>:
The following simple example crashes.

#include <cmath>
#include <boost/python.hpp>

using namespace boost::python;

int main(int argc, char *argv[])
{
    Py_SetProgramName(argv[0]);
    Py_Initialize();

    object main_module = import("__main__");
    object main_namespace = main_module.attr("__dict__");

    object ignored = exec("hello = file('hello.txt', 'w')\n"
                          "hello.write('Hello world!')\n"
                          "hello.close()",
                          main_namespace);
    return 0;
}

Since I'm using Qt 4.8.2 here is the .pro file

TEMPLATE = app
CONFIG += console
CONFIG -= app_bundle
CONFIG -= qt

QMAKE_CXXFLAGS += -std=c++0x

LIBS += -L"C:/Python272_32/libs/" -lpython27
INCLUDEPATH +="C:/Python272_32/include"
DEPENDPATH += "C:/Python272_32/include"

LIBS += -L"C:/Program Files (x86)/boost_1_49/lib"
LIBS +=-lboost_python-mgw46-mt-1_49 -lboost_python-mgw46-mt-d-1_49
DEPENDPATH += "C:/Program Files (x86)/boost_1_49"
INCLUDEPATH += "C:/Program Files (x86)/boost_1_49"

SOURCES += main.cpp

Any guess?
My toolchain is set up with a Mingw 4.6.3.


2014-06-11 11:32 GMT+02:00 Miklós Tóth <spiralfuzet@gmail.com>:

Hi!

There is something I don't understand.
After I installed Python27 and setuptools what should I do?
How to get CPython API? I'm completely lost over here.

M.


2014-06-05 17:24 GMT+02:00 Erik H <ice.rikh@gmail.com>:

But you do want to build a Python lib (extension).  Boost::python uses the cpython API in the same way as any other python extension and it has the same requirements.  Just as you should be able to build pyqt with mingw linking against the official Python binaries, you should be able to build a boost::python extension with mingw linking against the official Python binaries.

However, that is all hearsay.  It *should* work, according to *stuff I read online*.  I will try it at home tonight to confirm/deny this putative workingness.

Glad to be of help.

-Erik



On Thu, Jun 5, 2014 at 6:18 AM, Miklós Tóth <spiralfuzet@gmail.com> wrote:
Hi Erik,

Unfortunatly Visual Studio is not an option for me.

I didn't find this page but as I understand it helps to install python libs (extensions) with mingw. What I try to do is build python from src to get an appropriate static library.
I can link it with my Qt toolchain (Mingw 4.6.3) and it compiles without error, but it fails to run.
I double check it. All of my libs and tools are 32-bit.

Thank you very much for your help.

Regards,
Miklós


2014-06-04 18:50 GMT+02:00 Erik H <ice.rikh@gmail.com>:

This is educational for me; to minimize pain, I settled on visual studio + intel compiler long ago whenever I am coerced into windows development.

You mentioned that did some surfing; did you encounter this page?  Apparently, mingw should be able to link against the standard, visual studio compiled python lib.  Which would be a blessing for you if it works... Are you trying to build 32-bit binaries linked against 64-bit python libs by any chance?

If you don't get any joy, I'll try setting up an official python binaries + mingw environment on my windwoes system at home after work today or tomorrow.  Are you strictly targeting 2.7?

-Erik


On Wed, Jun 4, 2014 at 3:07 AM, Miklós Tóth <spiralfuzet@gmail.com> wrote:
Hi Erik,

Thanks for the response.
Yes I'm using makefile but I think the problem is different.
Here is the gcc command that fails:
gcc -c -fno-strict-aliasing -g -O2 -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes  -I. -IInclude -I./Include   -DPy_BUILD_CORE -o Python/asdl.o Python/asdl.c
It has a -I./Include argument.

So, I surf the Internet (a lot) and I found that at initial there were no autotool support for installing python from source.
Later I found a Python 3.4 page were I could download an src setup for mingw installation. Unfortunatly that doesn't work either.
So I reinstalled my Python and somehow I could link the library to my project. (I don't know how this possible, but the latest version of 2.7 works with my project. Blind luck I guess.) I could use PyRun_SimpleString but the PyRun_SimpleFileEx call crashes for some reason.
Than I tried boost::python and it crashes aswell at the first object result = eval("5/2"); call.
(I didn't forget to call Py_Initialize();).

Any suggestions?

Thanks,
Miklós


2014-06-03 23:18 GMT+02:00 Erik H <ice.rikh@gmail.com>:

Hi Miklós,

Are you using a makefile?  If so, it looks like you need to add -I/cygdrive/e/INSTALL/python_src/Python-2.7.6/Include to the Makefile's CFLAGS or CC variable, or somehow ensure that -I/cygdrive/e/INSTALL/python_src/Python-2.7.6/Include is passed to the compiler in any case.

Regards,
Erik


On Mon, Jun 2, 2014 at 3:17 AM, Miklós Tóth <spiralfuzet@gmail.com> wrote:
Hi!

Any updates on this?
I get the following error:
/cygdrive/e/INSTALL/python_src/Python-2.7.6
$ mingw32-make
process_begin: CreateProcess(NULL, /usr/bin/mkdir -p Include, ...) failed.
make (e=2): The system cannot find the file specified.
mingw32-make: *** [Include/graminit.h] Error 2
but the corresponding file is there:
/cygdrive/e/INSTALL/python_src/Python-2.7.6
$ ls Include/g*
Include/genobject.h  Include/graminit.h  Include/grammar.h
What am I missing? Any thoughts?

Thanks,
Miklós


2014-05-27 14:06 GMT+02:00 Miklós Tóth <spiralfuzet@gmail.com>:

Hi All,
I want to embed python in my c++ code using boost.python library.
As far as I understand I need python headers and libs.
So my python27.lib is "incompatible". I want to compile it from code but I failed with mingw32.
Could you give me some advice, or links to achieve my goal?
I'm using gcc4.6.3 and qt 4.8.2 and boost 1.49 on windows 7.
Thanks,
Miklós


_______________________________________________
Boost-users mailing list
Boost-users@lists.boost.org
http://lists.boost.org/mailman/listinfo.cgi/boost-users


_______________________________________________
Boost-users mailing list
Boost-users@lists.boost.org
http://lists.boost.org/mailman/listinfo.cgi/boost-users


_______________________________________________
Boost-users mailing list
Boost-users@lists.boost.org
http://lists.boost.org/mailman/listinfo.cgi/boost-users


_______________________________________________
Boost-users mailing list
Boost-users@lists.boost.org
http://lists.boost.org/mailman/listinfo.cgi/boost-users


_______________________________________________
Boost-users mailing list
Boost-users@lists.boost.org
http://lists.boost.org/mailman/listinfo.cgi/boost-users


_______________________________________________
Boost-users mailing list
Boost-users@lists.boost.org
http://lists.boost.org/mailman/listinfo.cgi/boost-users