Topic: Integrare pesantemente Python e C++  (Letto 201 volte)

0 Utenti e 1 Visitatore stanno visualizzando questo topic.

Offline tommyb1992

  • python neanderthalensis
  • ****
  • Post: 299
  • Punti reputazione: 0
    • Mostra profilo
Integrare pesantemente Python e C++
« il: Gennaio 01, 2019, 15:37 »
Dovrei poter agire a 360° integrando Python e C++ e vorrei evitare di utilizzare ctypes perchè voglio avere "assoluta libertà di movimento".
Voi che siete più esperti mi potete consigliare la via più profittevole?

Grazie

Offline RicPol

  • python sapiens sapiens
  • ******
  • Post: 2.857
  • Punti reputazione: 9
    • Mostra profilo
Re:Integrare pesantemente Python e C++
« Risposta #1 il: Gennaio 01, 2019, 21:35 »
Nella categoria "messaggio più vago dell'anno" per il 2019 abbiamo già un vincitore!
Comunque puoi dare un'occhio a questo vecchio StackOverflow, con un po' di aggiornamenti https://stackoverflow.com/a/1153635 . Concorderei su tutto, ma invece di "SWIG" oggi direi piuttosto "SIP" https://riverbankcomputing.com/software/sip/intro
Dopo di che, dipende da che cosa vuoi fare davvero, si capisce.

Offline tommyb1992

  • python neanderthalensis
  • ****
  • Post: 299
  • Punti reputazione: 0
    • Mostra profilo
Re:Integrare pesantemente Python e C++
« Risposta #2 il: Gennaio 02, 2019, 14:15 »
Nella categoria "messaggio più vago dell'anno" per il 2019 abbiamo già un vincitore!

E' sempre un piacere, il premio dove lo ritiro?  :D

Beh posso proporre alcuni casi di utilizzo:

- Non mi capita spesso di switchare OS, ma se volessi fare qualcosa di crossover senza dover ricompilare
- Volessi, controllare se il parametro passato è una lista o numpy per poi potermi adeguare di conseguenza?

Offline RicPol

  • python sapiens sapiens
  • ******
  • Post: 2.857
  • Punti reputazione: 9
    • Mostra profilo
Re:Integrare pesantemente Python e C++
« Risposta #3 il: Gennaio 03, 2019, 08:38 »
> se volessi fare qualcosa di crossover senza dover ricompilare
Se volessi, non potresti. Questo è c++. Poi puoi fare cross-compiling, ma comunque anche questo è un aspetto di c++, non di python.

> Volessi, controllare se il parametro passato è una lista o numpy
Veramente il problema sarebbe a rovescio, no? Tanto c++ non accetta né una lista python né un "numpy" (mah), quindi al limite devi avere un meccanismo che converte entrambi, per dire, in un array c++. Ma convertire tipi avanti e indietro tra python e c++ è comunque il lavoro abbastanza standard di SIP, SWIG e le altre librerie sopra citate.

Uhm, non è che la vaghezza del post sia diminuita molto. Forse ti conviene farti un giro sulla documentazione di un po' di questi prodotti (forse inizierei con SIP, se devi integrare librerie o framework c++ già esistenti... ma non so qual è il tuo caso) e farti un'idea delle possibilità.