Exécuter un programme python depuis PHP

Résolu
Chewquette - Modifié le 26 oct. 2023 à 00:32
jordane45 Messages postés 38148 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 29 avril 2024 - 27 oct. 2023 à 06:51

Bonjour,

J'ai lancé wamp server et créé un dossier qui contient un fichier .php et un fichier hello.py. Le problème est que peut importe ce que j'essaie de faire, rien ne fonctionne. Il est important de préciser que je préfère éviter les requêtes car les deux programmes sont sensé être côté serveur. Voici ce que j'ai tenté: 

<?php
$python_script = "hello.py";
$output = shell_exec("python" . $python_script);
echo "<h1>Output:{$output}</h1>";
?>

Mon fichier python ressemble à cela:

import sys #pour recuperer argv plus tard

print("Hello")

J'ai tenté avec exec() ou encore escapeshellcmd() que j'insère par la suite dans shell_exec() mais sans succès. Avec un var_dump() je reçois chemin-fichier-php php:numero-de-ligne:string '' (length=0)".

Est-ce que quelqu'un saurait d'où peut venir le problème?
Windows / Firefox 118.0

A voir également:

3 réponses

jordane45 Messages postés 38148 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 29 avril 2024 4 651
26 oct. 2023 à 13:56

Bonjour

Déjà, il manque un espace après le mot python dans ta ligne de commande.

Ensuite, je pense qu'il faut lui indiquer le chemin complet vers l'exécutable python sinon il risque de ne pas retrouver son emplacement pour l'exécuter


1

Bonjour,

Merci de m'avoir répondu. J'ai apporté les modifications cependant rien ne s'affiche après le mot "output" sur la page. Voici la version corrigée:

<?php
$python_script = "C:/wamp64/www/php_py/hello.py";
$output = shell_exec("python " . $python_script);
echo "<h1>Output: {$output} </h1>";
?>

J'ai tenté avec \\ ou juste \ mais le résultat est le même. Cependant, essayer sur cmd lance le programme python.

Edit: J'ai essayé sur Ubuntu plutôt que windows et cela fonctionne. Le problème ne semble pas venir du code php.

0

J'ai trouvé la solution, malgré que python soit dans mon path, cela ne fonctionnait pas dans php et la configuration de php.ini dans wamp server n'avait aucun champ spécifiant que des fonctions étaient désactivées, la seule solution un peu primitive mais fonctionnelle est de faire:

<?php
$output = shell_exec("C:\chemin-vers-python\Python3xx\python.exe hello.py");

echo "<h1>Output:" . $output . "</h1>";
?>
0
jordane45 Messages postés 38148 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 29 avril 2024 4 651
27 oct. 2023 à 06:51

En fait... Tu as juste fait ce que je t'avais dit..

Le.chemin vers l'exe de python...

0