Richiamare pacchetto Python da altro linguaggio

dgcross

Utente Attivo
1,209
305
Hardware Utente
CPU
Ryzen 5 1600 @3,85GHz 1,3V
Dissipatore
EK Supremacy EVO (Alphacool NexXxoS XT45+ST30 360mm)
Scheda Madre
ASRock X370 Gaming K4
Hard Disk
Goodram CX300 480GB + Toshiba P300 3TB
RAM
2x8 G.Skill TridentZ RGB @3066MHz CL14
Scheda Video
2x R9 Nano in CF @1050MHz + liquido custom (Alphacool NexXxoS XT45+ST30 360mm)
Scheda Audio
Sennheiser HD598 SE + Fiio Q1 Mark II + Breeze BA100 + Mission LX-1
Monitor
Samsung U28E590D
Alimentatore
Corsair AX860i
Case
Fractal Design Define S TG
Periferiche
Ozone Strike Pro Spectra, Steelseries Rival 500, DualShock4, Steam Controller
Internet
Fastweb 100Mb
Sistema Operativo
Windows 10 Pro
Ciao a tutti,
io ho scritto un piccolo programma in python che svolge delle analisi e sputa fuori dei grafici, ora il modello da me creato dovrebbe essere inglobato in un altro programma.
Da quel che ho capito l'interfaccia sarà in php e mi è stato chiesto se posso convertire il mio programma in una dll.
Io di queste faccende sono completamente digiuno, cercando in giro ho trovato questo, che però si riferisce a script, mentre per me sarebbe più comodo poter chiamare i miei metodi fornendo degli array come input e restituendo altri array come output.
A mali estremi creo uno script per ogni tipo di analisi che poi va a leggere un file di config, ma preferirei qualcosa di meno farraginoso se fosse possibile
Grazie :)
 

Andretti60

Utente Èlite
3,494
2,344
Hardware Utente
Beh, Python e' un linguaggio che viene usato per scrivere script, non librerie (e nemmeno eseguibili)
Il consiglio di stackoverflow e' (come quasi sempre) giusto. Passa i valori allo script mediante argomenti "command in line", e leggine l'uscita. O scrivi l'uscita su file e leggi il file, se per te e' piu' conveniente. Un altro vantaggio di lanciare lo script e' che lo puoi fare in maniera asincrona, e controllare ogni tanto quando il file di uscita e' pronto.
 
  • Mi piace
Reactions: dgcross

dgcross

Utente Attivo
1,209
305
Hardware Utente
CPU
Ryzen 5 1600 @3,85GHz 1,3V
Dissipatore
EK Supremacy EVO (Alphacool NexXxoS XT45+ST30 360mm)
Scheda Madre
ASRock X370 Gaming K4
Hard Disk
Goodram CX300 480GB + Toshiba P300 3TB
RAM
2x8 G.Skill TridentZ RGB @3066MHz CL14
Scheda Video
2x R9 Nano in CF @1050MHz + liquido custom (Alphacool NexXxoS XT45+ST30 360mm)
Scheda Audio
Sennheiser HD598 SE + Fiio Q1 Mark II + Breeze BA100 + Mission LX-1
Monitor
Samsung U28E590D
Alimentatore
Corsair AX860i
Case
Fractal Design Define S TG
Periferiche
Ozone Strike Pro Spectra, Steelseries Rival 500, DualShock4, Steam Controller
Internet
Fastweb 100Mb
Sistema Operativo
Windows 10 Pro
Grazie per la risposta.
Il fatto è che io vengo da una preparazione in data science e per i modelli in questo ambito si usa principalmente python. il problema sorge quando questi modelli vanno integrati dentro a dei software: io non ho la minima idea di come fare, ma nemmeno i miei interlocutori mi paiono molto ferrati al riguardo.
 

Moffetta88

Utente Èlite
3,928
1,691
Hardware Utente
Come suggerito dal link che hai messo
PHP:
exec("python mypythonscript.py someparams",$output);
var_dump($output);
è il metodo migliore, diciamo.
Devi assicurarti che sulla macchina in cui gira questo software sia installato python e quel comando serve proprio a far partire un "cmd" e recuperare i dati.
Io lo uso in metodo simile per recuperare determinati valori da bash di linux, far girare piccoli applicativi java e recuperare i risultati.
 

Andretti60

Utente Èlite
3,494
2,344
Hardware Utente
... io vengo da una preparazione in data science e per i modelli in questo ambito si usa principalmente python ...
Ma solo perche' usi librerie IA (tipo PyTorch o Tensor Flow) che sono facili da gestire in python, di fatto tu devi scrivere ben poco codice. A quel punto sarebbe meglio evitare di usare Python e usare direttamente quelle librerie nel framework che si usa. In genere si usa Python per "provare" quelle librerie, perche' permette di farlo in maniera veloce, ma poi quando si e' trovato il modo migliore per usarle gli scritti in python si buttano via.
 

pabloski

Utente Èlite
1,926
367
Hardware Utente
e sputa fuori dei grafici
Se devi mandare il grafico allo script php, è laborioso. Altro paio di maniche se invece devi mandare solo una matrice piena di numeri.

Se di mezzo c'è un browser ( come suppongo ) puoi considerare l'ipotesi di catturare direttamente le immagini, chiamando gli script python con passthru https://www.php.net/manual/en/function.passthru.php

In caso contrario, te la cavi con exec.

Considera che in un contesto dove le risorse sono accessibili tramite url, puoi benissimo richiamare gli script ( di qualsiasi tipo ) usando le funzioni per l'accesso al web.

E' possible ( ma complesso ) usare Apache Thrift http://thrift.apache.org/
 

Entra

oppure Accedi utilizzando