Richiamare pacchetto Python da altro linguaggio

dgcross

Utente Attivo
1,279
342
CPU
Ryzen 5 5600X
Dissipatore
EK Supremacy EVO (2x Alphacool NexXxoS ST30 360mm)
Scheda Madre
ASRock X370 Gaming K4
HDD
Samsung 980 Pro 512GB, Samsung 870 EVO 2TB, Goodram CX300 480GB, Toshiba P300 3TB
RAM
2x8+2x16 G.Skill TridentZ RGB @3400MHz CL16
GPU
Galax 2080 Ti HOF OC Lab + liquido custom (2x Alphacool NexXxoS ST30 360mm)
Audio
Alientek D8, Fiio Q1 Mark II, Mission LX-1, Sennheiser HD598 SE
Monitor
Samsung U28E590D
PSU
Corsair AX860i
Case
Lian Li O11 Dynamic
Periferiche
Ozone Strike Pro Spectra, Steelseries Rival 500, DualSense
Net
Tiscali
OS
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
6,440
5,091
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
Reazioni: dgcross

dgcross

Utente Attivo
1,279
342
CPU
Ryzen 5 5600X
Dissipatore
EK Supremacy EVO (2x Alphacool NexXxoS ST30 360mm)
Scheda Madre
ASRock X370 Gaming K4
HDD
Samsung 980 Pro 512GB, Samsung 870 EVO 2TB, Goodram CX300 480GB, Toshiba P300 3TB
RAM
2x8+2x16 G.Skill TridentZ RGB @3400MHz CL16
GPU
Galax 2080 Ti HOF OC Lab + liquido custom (2x Alphacool NexXxoS ST30 360mm)
Audio
Alientek D8, Fiio Q1 Mark II, Mission LX-1, Sennheiser HD598 SE
Monitor
Samsung U28E590D
PSU
Corsair AX860i
Case
Lian Li O11 Dynamic
Periferiche
Ozone Strike Pro Spectra, Steelseries Rival 500, DualSense
Net
Tiscali
OS
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

Moderatore
Staff Forum
Utente Èlite
20,464
12,877
CPU
i5-4690
Dissipatore
DEEPCOOL CAPTAIN 240EX
Scheda Madre
MSI Z97 U3 PLUS
HDD
KINGSTON SSD KC400 240GB
RAM
24GB BALLISTIX SPORT @2133MHz
GPU
STRIX GTX980 DC2OC
Audio
INTEGRATA
Monitor
AOC G2590VXQ
PSU
BEQUIET! System Power 7 500W
Case
DEEPCOOL MATREXX 55
Periferiche
NESSUNA
Net
EOLO 100
OS
UBUNTU/WINDOWS11
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
6,440
5,091
... 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
2,868
916
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
Discord Ufficiale Entra ora!