Boost logo

Boost Users :

Subject: Re: [Boost-users] [Python]compiling python library
From: Miklós Tóth (spiralfuzet_at_[hidden])
Date: 2014-06-12 04:15:40


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 = appCONFIG += consoleCONFIG -= app_bundleCONFIG -= qt
QMAKE_CXXFLAGS += -std=c++0x
LIBS += -L"C:/Python272_32/libs/" -lpython27INCLUDEPATH
+="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_49DEPENDPATH += "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_at_[hidden]>:

> 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_at_[hidden]>:
>
> 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_at_[hidden]>
>> 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_at_[hidden]>:
>>>
>>> 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
>>>> <http://www.secker.nl/2012/03/08/setup-python-2-7-2-and-mingw-on-windows-xp/>?
>>>> 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_at_[hidden]>
>>>> 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_at_[hidden]>:
>>>>>
>>>>> 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_at_[hidden]>
>>>>>> 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_at_[hidden]>:
>>>>>>>
>>>>>>> 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_at_[hidden]
>>>>>>> http://lists.boost.org/mailman/listinfo.cgi/boost-users
>>>>>>>
>>>>>>
>>>>>>
>>>>>> _______________________________________________
>>>>>> Boost-users mailing list
>>>>>> Boost-users_at_[hidden]
>>>>>> http://lists.boost.org/mailman/listinfo.cgi/boost-users
>>>>>>
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> Boost-users mailing list
>>>>> Boost-users_at_[hidden]
>>>>> http://lists.boost.org/mailman/listinfo.cgi/boost-users
>>>>>
>>>>
>>>>
>>>> _______________________________________________
>>>> Boost-users mailing list
>>>> Boost-users_at_[hidden]
>>>> http://lists.boost.org/mailman/listinfo.cgi/boost-users
>>>>
>>>
>>>
>>> _______________________________________________
>>> Boost-users mailing list
>>> Boost-users_at_[hidden]
>>> http://lists.boost.org/mailman/listinfo.cgi/boost-users
>>>
>>
>>
>> _______________________________________________
>> Boost-users mailing list
>> Boost-users_at_[hidden]
>> http://lists.boost.org/mailman/listinfo.cgi/boost-users
>>
>
>



Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net