Autore Topic: Eseguire script python in Gambas  (Letto 1161 volte)

Offline akrobaticone

  • Gran Maestro dei Gamberi
  • *****
  • Post: 983
    • Mostra profilo
Eseguire script python in Gambas
« il: 06 Febbraio 2017, 11:06:11 »
per eseguire uno script  Python in Gambas lo si potrebbe  richiamare da shell
esistono altri modi?
se fosse possibile creare una libreria si potrebbe richiamare la funzione con extern
sto facendo un paciugo?

la questione mi è stata sottoposta da un collega
"e il naufragar m'è dolce in questo mar"

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.139
  • Tonno verde
    • Mostra profilo
Re:Eseguire script python in Gambas
« Risposta #1 il: 06 Febbraio 2017, 13:40:40 »
Hai letto questo? Forse potrebbe servirti.
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.252
  • Ne mors quidem nos iunget
    • Mostra profilo
« Ultima modifica: 06 Febbraio 2017, 15:29:58 da vuott »
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.252
  • Ne mors quidem nos iunget
    • Mostra profilo
Re:Eseguire script python in Gambas
« Risposta #3 il: 06 Febbraio 2017, 16:30:01 »
se fosse possibile creare una libreria si potrebbe richiamare la funzione con extern
In Gambas la risorsa Extern consente di dichiarare, per il suo uso effettivo, una funzione esterna contenuta in una libreria dinamica condivisa .so (shared library), scritta in linguaggio C o C++ .

Aggiungo che esiste una specifica libreria dinamica (libpython3.4m.so.1.0), che fa da interfaccia in C per utilizzare le risorse di Python nei sorgenti di C.
Un semplice esempio di suo uso in Gambas  è il seguente:
Codice: [Seleziona]
Library "libpython3.4m:1.0"

' (double) PyOS_string_to_double(const char *str, char **endptr, PyObject *overflow_exception)
' Convert a string s to a double.
Private Extern PyOS_string_to_double(strs As String, endptr As Pointer, overflow_exception As Pointer) As Float


Public Sub Main()
 
 Dim f As Float
 
  f = PyOS_string_to_double("123.456789", 0, 0)
 
  Print f
 
End
« Ultima modifica: 06 Febbraio 2017, 23:44:14 da vuott »
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline akrobaticone

  • Gran Maestro dei Gamberi
  • *****
  • Post: 983
    • Mostra profilo
Re:Eseguire script python in Gambas
« Risposta #4 il: 06 Febbraio 2017, 21:40:26 »
vediamo se ho capito
la libreria libpython3.4m.so.1.0  è un contenitore di funzioni in python interfacciabile in C (e Gambas)
Nel caso volessi utilizzare uno script in Python?
« Ultima modifica: 06 Febbraio 2017, 21:45:35 da Akrobaticone »
"e il naufragar m'è dolce in questo mar"

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.252
  • Ne mors quidem nos iunget
    • Mostra profilo
Re:Eseguire script python in Gambas
« Risposta #5 il: 06 Febbraio 2017, 23:38:55 »
vediamo se ho capito
la libreria libpython3.4m.so.1.0  è un contenitore di funzioni in python interfacciabile in C (e Gambas)
Sì, è così.



Nel caso volessi utilizzare uno script in Python?
T'ho posto la questione anche nel forum spagnolo:
https://www.gambas-es.org/viewtopic.php?f=1&t=6174
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline akrobaticone

  • Gran Maestro dei Gamberi
  • *****
  • Post: 983
    • Mostra profilo
Re:Eseguire script python in Gambas
« Risposta #6 il: 07 Febbraio 2017, 08:37:42 »
Grazie
tengo d'occhio
"e il naufragar m'è dolce in questo mar"