Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 28
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2016
    Messaggi
    44

    Avviare script Python da PHP

    Salve! Io vorrei avviare un script python da php in modo che php riceva una stringa, per poi passarla a javascript tramite ajax. Ho avuto problemi tra php e python mentre tra php e javascript dovrebbe essere tutto apposto.
    Io vorrei che una volta lanciato con ajax lo script php, quest'ultimo esegua uno script python che gli restituisca una stringa, il problema è che ho scarsa conoscenza del python.

    Lo script python è oValues.py

    #!/usr/bin/env python
    import time
    import Adafruit_ADS1x15
    adc = Adafruit_ADS1x15.ADS1115() #Create an ADS1115 ADC 16-bit instance
    GAIN = 1
    values = [0]*4
    for i in range(4):
    values[i] = adc.read_adc(i, gain=GAIN, data_rate=128)
    print str(values)

    Ora indipendentemente dal modo in cui viene riempito il vettore values, io vorrei passare la stringa str a php ed ho fatto in questo modo.

    Script PHP:

    <?php


    echo exec('./oValues.py');


    ?>

    Il problema che ho riscontrato facendo varie prove è che lo script php non riesce ad eseguire oValues.py mentre se provo a scrivere lo stesso comando sul terminale allora lo script python funziona

  2. #2
    ciao!

    scusa, ma perchè passare un valore da php a python e poi a javascript?
    non fai prima a fare php -> javascript usando ajax??

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2016
    Messaggi
    44
    No scusa forse mi sono spiegato male. I passaggi del dato sono: python -> php -> javascript. Comunque io richiamo lo script php da javascript con ajax. Lo script php poi avvia python che prende il dato. Il dato poi ritorna indietro fino a javascript

  4. #4
    ma per python usi qualche framework??

    cmq è uguale, perchè non fai python -> js direttamente??

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2016
    Messaggi
    44
    ah se è possibile fare python -> js direttamente lo farei solo che non so come si fa =) posso provare a richiamare lo script python con ajax?

  6. #6
    Utente di HTML.it
    Registrato dal
    Nov 2016
    Messaggi
    44
    Ho fatto alcune prove, il codice è questo:

    JAVASCRIPT

    $(document).ready(function(){
    $("button#getData").click(function(){
    $.ajax({
    url: "scripts/oFile.py",
    success: function(result){
    $("div#ris").html(result);
    }
    });
    });
    });

    SCRIPT PYTHON

    #!/usr/bin/env python


    import time
    import Adafruit_ADS1x15
    adc = Adafruit_ADS1x15.ADS1115() # Create an ADS1115 ADC (16-bit) instance.
    GAIN = 1
    values = [0]*4
    for i in range(4):

    values[i] = adc.read_adc(i, gain=GAIN, data_rate=128)

    print str(values)

    Funziona ma ottengo che nel div della pagina html mi stampa tutto il contenuto del file con lo script python e non solo il print str come volevo

  7. #7
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    non puoi eseguire uno script via AJAX, aggiungerei anche un "per fortuna"

    inizierei a verificare:
    • che lo script python sia dove lo stai cercando (dal tuo codice, stessa cartella del file PHP)
    • che lo script sia eseguibile
    • che l'utente che chiama lo script abbia i permessi per eseguirlo (controllerei l'utente www-data, tipico di apache)

  8. #8
    Utente di HTML.it
    Registrato dal
    Nov 2016
    Messaggi
    44
    Allora lo script python e quello php sono nella cartella scripts. La cartella scripts è nella stessa cartella di index.html dove c'è il codice javascript.
    Entrambi gli script sono momentaneamente eseguibili da chiunque per evitare appunto problemi coi permessi.
    All'inizio del codice python c'è #!/usr/bin/env python per rendere lo script eseguibile.
    All'inizio del codice php ho aggiunto
    #!/usr/bin/php -q.
    Ora se schiaccio il bottone dal broswer per la chiamata ajax mi compare
    #!/usr/bin/php -q non l'output del comando
    Ultima modifica di tom135; 20-09-2017 a 14:57

  9. #9
    si perchè per eseguire script python, devi configurare il server (suppongo apache).
    in pratica viene trattato come uno script CGI, e come tale devi configurarlo!

  10. #10
    Utente di HTML.it
    Registrato dal
    Nov 2016
    Messaggi
    44
    Quindi è possibile eseguire uno script python con ajax se configuro apache?

Tag per questa discussione

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.