Ajouter un programme python fonctionnel à de l'HTML
Résolu
Bonjour, j'aimerais savoir comment mettre un programme python dans une page html. Il faudrait que sur la page WEB, on puisse exécuter le programme mis dans cette page.
Merci à tous ceux qui me répondront
Bonne journée à vous
Merci à tous ceux qui me répondront
Bonne journée à vous
32 réponses
Résumé de la discussion
Mettre un programme Python dans une page HTML et le faire s'exécuter directement depuis cette page repose sur une limitation : le navigateur interprète HTML et JavaScript, pas Python. Des réponses évoquent une voie avec JavaScript et ActiveX pour lancer cmd /c 'python ...', mais cette approche est Windows-only et expose à des risques de sécurité. D'autres insistent sur les défis des chemins et des noms de fichiers, et indiquent que l'exécution Python dans le navigateur n'est pas fiable en dehors d'IE ou sans serveur. En pratique, ces solutions restent limitées, et une approche robuste consiste à exécuter Python côté serveur et à communiquer via HTTP, plutôt que d'essayer une exécution locale directement dans la page.
-
Ah enfin !!! (et grâce au concours de plusieurs intervenants)
normal car il y a le /k pour voir les erreurs !
remet le /c et la fenêtre se fermera ...
Ce code est une fonction en langage Javascript (attention, rien à voir avec Java !)
Le Javascript est le moyen qui permet d'exécuter des actions dans une page web, puisque le langage html n'est qu'un langage d'affichage, un langage de présentation
Cette fonction déclare une variable w et la défini comme un contrôle ActiveX (c'est ça qui fait peur à Windows quand on clique sur le lien: il peut y avoir des contrôles ActiveX malveillants, mais toi, tu reste en local, donc ça va)
Ensuite, en appliquant la méthode run à ce contrôle, on exécute une commande de l'interpréteur de commandes Windows et donc on fait exactement ce que tu fais à la main en entrant la commande
python C:\fresque\......
dans la fenêtre de l'invite de commandes
En fait, on peut exécuter des commandes de l'invite de commandes comme cls (efface l'écran),
dir (liste les répertoires et fichiers), etc.. dans pratiquement tous les langages:
En Python, on écrit:
import os
os.system('cls')
En langage C, on écrit:
system("cls");
En langage TCL, on écrit:
exec "cls"
Conclusions:
1_ toujours mettre les chemins des fichiers utilisés par un script Python, même s'ils sont
dans le même répertoire que le script
2_ effectivement (merci yg_be) cmd /k lance la commande en laissant l'invite de commandes ouverte, ce qui laisse le temps de lire les erreurs éventuelles
3_ Concernant les dossiers de travail et les fichiers:
Moi, à ta place, je laisserais tomber les dossiers de Windows du style C:\Utilisateurs
C:\Utilisateurs\bline\Bureau\, etc ...
Ces dossiers sont utilisés par Windows pour gérer les profils, stocker les raccourcis du bureau, des fichiers utiles au système, des images, des vidéos, etc ...
D'ailleurs, non seulement Utilisateurs s'appelle users mais Bureau s'appelle desktop:
C:\Users\33766\Desktop
C'est ça le piège !
Personnellement, que ce soit sur mon ordi perso ou professionnel, je fait dès le départ un dossier à moi:
C:\Phil et je travaille uniquement là-dedans:
C:\Phil\Dev\Python, C:\Phil\Photos, C:\Phil\videos, C:\Phil\suivi, etc ...
(Sur nos ordi professionnels, on a carrément partitionné le disque C:\ : on a créé une partition D:\ et tout est dedans : D:\data\clients\, D:\sources\ ....)
Et enfin, bien que Windows le permette désormais, je garde le réflexe de ne pas utiliser
de caractères exotiques, points, espaces, etc... dans les noms de dossiers ou de fichiers:
C:\toto\le dossier\le réchauffement.clim.py ---> C:\toto\le_dossier\le_rechauffement_clim.py
Et avec tout ça, je suis tranquille ! -
en mettant les chemins des images dans le code Python, ca donne quoi ?
images = {0:('C:\\Fresque\\Fresque_01.png',' .................-
Cela fonctionne parfaitement !
Il y a juste l'invite de commande qui ne se ferme pas après le clic mais je chipote
Pouvez-vous m'expliquer juste cette partie du code html ?
function run_python() { var w = new ActiveXObject("WScript.Shell"); w.run('cmd /k "python C:\\fresque\\Le_rechauffement_climatique.py"'); }
Merci encore !
-
-
ah !
essaie en mettant les chemins des images dans le fichier Python:
images = {0:('C:\\Fresque\\Fresque_01.png', ……………....
on va y arriver !-
Halleluja ! Ca fonctionne ! Enfin
Merci à tous pour votre aide !
L'invite reste ouverte après le clique peut on faire en sorte qu'elle disparaît ? Sinon c'est pas grave je chipote
Et juste une question, pouvez vous m'expliquer que fait ces lignes ?
function run_python() { var w = new ActiveXObject("WScript.Shell"); w.run('cmd /k "python C:\\fresque\\Le_rechauffement_climatique.py"'); }
Encore merci pour votre aide ! -
Contributeur@MrLemonPeux-tu dire en détail ce que tu as fait après la dernière suggestion de Phil_1857, qui a gagné la queue du Mickey comme on disait de mon temps (expression liée au manèges de la foire du Trône pour les plus jeunes, s'il en est).
Notamment était-ce le libellé du chemin ou l'insertion d'un lien vers les images dans le fichier python?
Cela servira à d'autres et prouve une fois de plus que la persévérance et l'entraide sont efficaces et agréables. -
@georges97J'ai mis dans le fichier python le chemin des images ce qui évite les problèmes :)
-
-
ah zut, on ne s'en sort pas ... pourtant on n'est pas loin, dommage qu'on ne puisse lire
il y a forcément une différence entre chez moi et chez toi …
peux-tu faire une photo de l'explorateur avec ton répertoire Fresque
et aussi copier ton html ici (avec les balises) -
-
sans extension ?
appelle-le test.html tout simplement
et les images ? elles sont dans fresque ?
moi, j'ai aussi mis les chemins des images dans le code Python
images = {0:('C:\\Phil\\Dev\\Python\\tests\\ccm\\Fresque_01.png',
et un détail: à chaque fois que tu fais un test, ferme la page web et relance-la -
Il s'appelle new 1 et est dans le dossier fresque
-
il s'appelle comment ton fichier html ?
et il est dans quel dossier ?
tu devrais aussi mettre les chemins des images dans le code Python, dans le dictionnaire images -
et ca fait quoi ?
on appuie sur le texte en bleu Fresque du climat sur la page web
on répond oui au message
et rien ne se passe ?
pas de message ? -
ok, mais tu n'as pas fait ce que je te demandais !!!
"tu crée un dossier directement sous C: C:\bline, par exemple"
et tu n'a pas mis les \\ au lieu de \
w.run('cmd /c "python C:\\bline\\le_rechauffement_climatique.py" ');
Recommence pour voir ... -

-
J'ai mis dans "bline" toutes les images et le programme du coup ça donne ça :
C:\Users\bline\Le_rechauffement_climatique.py
Je test ça : python "C:\Users\bline\Le_rechauffement_climatique.py" dans l'invite de commande, ça fonctionne parfaitement
Du coup je copie le même chemin dans la page html :
Mais là ça ne fonctionne pas bizarre
-
-
Bonjour MrLemon,
Peux-tu faire un simple test:
tu crée un dossier directement sous C:
C:\bline par exemple et tu y copie ton fichier : C:\bline\Le_rechauffement_climatique.py
et tu fait le test avec ça et tu me dis ce que ca donne
Je me méfie du dossier C:\utilisateurs, as tu remarqué que dans l'explorateur il s'appelle utilisateurs et que quand on clique dans la barre d'adresse en haut, il s'appelle C:\users ? -
ContributeurBonsoir à tous,
moi j'essaierais sans doubler les contre-oblique.
J'y avais pensé mais n'ai pas osé interférer et à mon avis, c'est la bonne écriture. Par contre, j'ai aussi relevé que dans certains cas le fichier est nommé le_rechauffement_climatique et dans d'autre le rechauffement climatique, sans underscore donc, ça pourrait expliquer qu'il ne soit pas trouvé?
Cordialement-
-
Contributeur@MrLemonSans vouloir insister, sommes-nous d'accord sur l'écriture:
C:\\Utilisateurs\bline\Bureau\Lycee\Fresque_du_Climat\ISN\le_rechauffement_climatique.py
Je pense comme yg_be que c'est le chemin d'accès qui pose problème, si tant est que le double-clic sur le fichier lance l'interpréteur python.
Bonne soirée -
@georges97Il y a pas de soucis je prends toutes les hypothèses, et non ce n'est pas ça c'est :
C:\\Utilisateurs\bline\\Bureau\Lycee\\Fresque_du_Climat_ISN\Le_rechauffement_climatique.py
Et oui c'est juste ça
Merci bonne soirée à vous -
Contributeur@MrLemonMeLemon,
Si l'"hypothèse" de yb_be (et la mienne) est exacte, il faut remplacer les doubles slashes inversés \\Bureau\Lycee\\ par de simples slashes inversés.
Il me semble que si votre graphie ne fonctionne pas, c'est qu'il peut y avoir un problème dans le chemin que vous utilisez, non?
Faîtes le test dans la fenêtre de saisie de l'explorateur de fichiers pour ouvrir Le_rechauffement_climatique.py
-
-
oui il n'aime pas les caractères accentués : renomme tout ça et ca va aller !
moi, en général, dans les noms de fichiers et de dossiers, je ne mets jamais de caractères exotiques, ni d'espaces:
C:\\Utilisateurs\\bline\\Bureau\\Lycee\\Fresque_du_Climat\\ISN\\le_rechauffement_climatique.py -
Il faut faire qqc pour qu'il soit dans le Path ?
-
Bizarre
Car python n'étant pas dans le path, la commande python est donc inconnue et tu devrais avoir un message d'erreur :
'python' n'est pas reconnu en tant que commande interne, ............... -
-
-
Je fais entrer mais rien ne se passe
-
et donc quand tu lance la fameuse commande
python "C:\\ ...................." dans l'interpréteur de commandes, ca donne quoi ?
- 1
- 2
Suivant