[Python] Integrare Python in C++

Matteo Boscolo matteo.boscolo a boscolini.eu
Mer 27 Maggio 2015 16:24:48 CEST


Il 27/05/2015 11:03, Marco Giusti ha scritto:
> On Wed, May 27 2015, Marco De Paoli wrote:
>> Il 27 maggio 2015 09:11, Marco Giusti <marco.giusti a posteo.de> ha scritto:
>>> Salve,
>>>
>>> avete esperienza a proposito in ambiente Windows? Quale è la strada
>>> consigliata? Ho visto che boost.python può essere una soluzione ma prima
>>> di gettarmi a capofitto sulla documentazione vorrei il vostro parere.
>> con boost::python avevamo fatto belle cose alcuni anni fa su Visual Studio 2008
>> della serie che puoi fare cose abbastanza magiche
>> (es. definire una classe in C++ e derivarla in python chiamando i
>> metodi della classe base)
>>
>> metti in conto:
>> a) alti tempi di compilazione
>> b) saper mettere più o meno le mani sulle magie del template
>> metaprogramming tipiche di boost
>> c) in caso di errori di compilazione ricevere messaggi infiniti (come
>> è tipico del template metaprogramming)
>>
>> per il punto 2 dipende poi quanto ti vuoi spingere...
>> se ti basta esporre qualche funzione C++ e poterla chimare da python è un conto
>> se invece vuoi inserirti, da python, nel sistema delle classi che hai
>> definito in C++ e derivare, ridefinire operatori, fare overload di
>> funzioni etc. etc. beh, diventa un'altra storia
>>
>> (...in particolare a proposito dell'overload: ecco un punto in cui
>> puoi avere qualche rogna perchè python non lo permette...)
>>
>> e comunque, rispetto a quando ci ho lavorato io con boost::python
>> - il C++ è andato avanti, e non poco (C++ 11 e C++ 14)
>> - boost è andato avanti anche lui (noi avevamo usato tipo boost 1.42)
>>
>> per cui oggi come oggi, se dovessi averne bisogno sarei il primo a
>> dover rifare un check sullo stato attuale di boost::python
> In realtà la mia è solo un'idea e non so' quanto andrà avanti e come si
> svilupperà. Mi piacerebbe poter integrare Python per poter sviluppare
> delle estenzioni al programma in Python stesso, ma vista la
> mia esperienza con C++ vorrei iniziare con qualcosa di semplice come
> wrappare quanto c'è per scrivere i vari test in Python.
>
> In realtà è questa doppia personalità, embedding vs. extending, che mi
> lascia perplesso. Posso partire da una prima fase, extending, dove
> da Python eseguo i vari test richiamando funzioni e quant'altro, per poi
> passare ad una fase di embedding, dove i vari plugin scritti in Python
> sono integrati nel programma, senza però perdere quanto fatto in
> precedenza?
>
> Per il punto 2, qual'è il santo a cui devo rimettermi? :)
> _______________________________________________
> Python mailing list
> Python a lists.python.it
> http://lists.python.it/mailman/listinfo/python
>
forse e' un po diverso da quello che chiedi ma ..
quale e' il motivo per estendere in c++ se non quello delle performance 
??? (naturalemnte parlo di nuovi sviluppi..)
se e' questo il problema (performance) dai un occhio a http://www.pypy.org/

ciao
Matteo




---
Questa e-mail è priva di virus e malware perché è attiva la protezione avast! Antivirus.
http://www.avast.com



Maggiori informazioni sulla lista Python