Boost logo

Boost Users :

Subject: Re: [Boost-users] [Python]compiling python library
From: Miklós Tóth (spiralfuzet_at_[hidden])
Date: 2014-06-19 07:16:14


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_at_[hidden]>:

> 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