5568 sujets

Sémantique web et HTML

Pages :
Bonsoir tout le monde.

Mon projet est de faire une télécommande (d'un bateau) en utilisant une carte Raspberryi et le WiFi. Le "récepteur" serait donc le Raspberry, serveur Web, et l'"émetteur" serait alors le client Web sur un PC, ou une tablette ou un smartphone. Pour permettre des traitements "côté serveur", c'est écrit en PHP (je sais, certains diront que les sockets seraient mieux adaptés, mais la banalisation de l'"émetteur" me plait bien).

Les échanges d'information entre les deux se font à l'aide de formulaires HTML, et, dans l'idée de minimiser les échanges (est-ce une bonne idée, c'est la question ?) chaque "voie" de la télécommande est matérialisée par une iframe (ainsi, le form de chaque iframe ne concerne que les données de cette voie).

J'ai donc 8 iframes, qui tournent dans les cellules d'une table qui occupe tout l'écran.

Je n'en suis qu'aux balbutiements, mais j'ai déjà plein de problèmes que je ne sais pas résoudre.

Par exemple, dans une de mes iframes, je désire placer quatre indicateurs (de valeurs en provenance du bateau) que je voudrais représenter sous forme de cadrans, avec une aiguille, comme sur un tableau de bord. Pour faire cela, il faut placer une image de fond représentant la graduation, superposer une aiguille (avec un fond transparent, et qui s'oriente différemment suivant la valeur du paramètre). Et cela quatre fois, dans quatre cellules d'une table : c'est là que ça coince : cette table est sensée occuper tout l'espace de son iframe, ses quatre cellules sont identiques, aux valeurs des paramètres près. J'ai beau dire que la table est "table-layout:fixed;",
et les définitions des 4 cellules ont beau être identiques (copier-coller), je n'arrive à créer que la première, et les autres, c'est n'importe quoi... J'en viens à me demander si les valeurs que je donne aux dimensions de img (width, height, left, top) se rapportent aux cellules (conteneur le plus proche), ou à l'ensemble de la table, ou à l'iframe, voir peut-être à la fenêtre entière... Je ne sais plus.

Vous me demanderez certainement du code, et je répondrai, mais j'ai quand-même peur que ça fasse lourd...

Enfin, si certains ont des idées à me donner, moi, je n'en ai plus.

Merci d'avance.
Modérateur
les sockets en php ? ratchet (pas mal du tout). Perso, je préfère le traitement de socket en js avec node. Après tu lies (lier) ton application avec Apache et node.... Si tu connais assez bien en Unix / Unix like, c'est pas difficile. Smiley smile
Modifié par niuxe (07 Nov 2018 - 20:55)
En fait, je sais que les sockets existent, je m'y suis essayé il y a quelques années (j'ai abandonné quand les configurations WiFi "ad hoc" ont disparu avec Windows XP), mais je ne connais pas bien. Ce qui m'a fait faire ce choix, c'est qu'il n'y a à écrire que le programme serveur : tout ordinateur avec un navigateur est prçet à faire l'"émetteur" de la télécommande.

Merci de m'avoir lu.
Cette affaire sent l'I.O.T. ( Objets connectés via Internet )

Remplacer la framboise par un ESP8266 ou ESP32 et installer un client MQTT
Et sur le PC installer un serveur MQTT qui communique avec le serveur HTTP
L'ESP8266 se programme facilement en Lua (langage sympa) et l'ESP32 se programme facilement en Python.
Les purs et durs peuvent faire cela en C++
La conso d'un Raspi se compte en ampère, l'ESP8266 en mA et l'ESP32 plus puissant consomme encore moins

Pourquoi 8 iframes ? Au pire 8 <form>. Même un <form> devrait suffire.
Modifié par bazooka07 (07 Nov 2018 - 21:53)
Non, ces objets ne sont pas connectés via Internet : le Pi est serveur Apache, et DHCP : ça suffit largement.

Et pourquoi, sur les forums, quand on pose une question en décrivant soigneusement le contexte du problème, au moins la moitié des réponses concernent un autre contexte ?

Je possède un Raspberry, et je connais (un peu !) les langages HTML, JavaScript et PHP : avec ça, jepense pouvoir faire avancer mon projet. Je ne suis pas un pur et dur, c'est tout.

J'ai tenté d'expliquer pourquoi j'ai choisi 8 iframes. Il me semblait que mon explication tenait compte de la possibilité "1 form" : dans ce cas, il faut transférer les 8 ensembles de paramètres.
Je me suis dit (à tort ou à raison ?) que cela surchargerait les transmissions. Voila le "pourquoi".

Merci de m'avoir lu, et répondu.

AMIcalement.
J'ai l'impression que tu ne connais pas l'intérêt de <iframe>
https://www.journaldunet.fr/web-tech/dictionnaire-du-webmastering/1203289-iframe-definition/
Mais si tu as déjà décidé que 8 iframes étaient indispensables à ton projet: libre à toi

Le protocole MQTT se situe au dessus de la couche réseau TCP/IP pour éviter d'avoir à manipuler les websockets. Il est beaucoup plus léger que le protocole que le protocole HTTP. Il convient très bien pour envoyer des courts messages comme la valeur d'un capteur ou donner un ordre de positionnement à un actionneur. Il est très largement utilisé en domotique, télémétrie et robotique :
http://mqtt.org/
http://www.mqtt.fr/

Un Raspberry coûte une trentaine d'euros et vide une batterie en quelques heures
Un ESP8266 commandé à Shenzen coûte 2 à 3€ ( il y en a chez Amazon mais c'est plus cher ) et la batterie tiendra plusieurs jours. Peut s'alimenter avec un panneau solaire de 2 watts.
https://www.aliexpress.com/wholesale?catId=0&initiative_id=AS_20181107143358&SearchText=esp8266

Tu avoues être à court d'idée. Je t'en donne. Mais si tu as déjà tout planifier avec un solution lourde, peu de gens vont t'aider.

En fait, tu as juste besoin d'un "Service après-vente, bonjour"
https://www.youtube.com/results?search_query=service+apres+vente+des+emissions
J'ai l'impression qu'il y a un malentendu complet entre nos deux points de vue. Tu es manifestement beaucoup plus expérimenté que moi dans ces matières, mais il me semble que tu refuses de rentrer dans mon point de vue. Ce que je retiens de ton article sur les iframes, c'est surtout qu'ils ne sont pas (ou mal ?) pris en compte par les moteurs de recherche. Mais cela n'a absolument rien à voir avec mon projet. J'essaie d'utiliser les techniques du Web, mais pas du tout le Web. Les moteurs de recherche n'ont rien à voir là-dedans. Par contre, il va falloir que je regarde la question de la prise en compte sur les smartphones...

Tu me parles de la consommation du Raspberry. Elle se mesure en ampères (je doute qu'elle dépasse 1,5 ampère !). La belle affaire : le moteur d'un bateau pas tout à fait ridicule (j'espère que ça sera le cas !) dépasse 20 ampères.

Je ne tiens pas mordicus à ma "solution" à 8 iframes, mais j'aimerais mener à terme un projet (pas du tout industriel) avec les matériels et les techniques (informatiques, entre autres) qui sont entre mes mains : pour cela, il faut que je développe un "serveur Web" qui réponde à mon cahier des charges, et c'est tout. Avec tes conseils, il faudrait que j'approvisionne du nouveau matériel, que je m'approprie de nouveaux logiciels, que je développe une application côté "bateau", et une autre côté "pilote", ou même plusieurs, pour PC, pour androïd, pour Mac etc...

Me comprends-tu mieux ?

Merci de ton intérêt.

AMIcalement.
Modérateur
TheProgrammer a écrit :
hey les gar , discord pour programmeur ici
https://discord.gg/G6uhu7


à priori on s'en fout, c'est pas le sujet


@bazzoka : Nan son idée générale n'est pas déconnante. Cette été, j'ai fait une app similaire avec un raspi (device lambda connecté au raspi) et oui, c'est un objet connecté mais pas forcément sur le net. Il cherche à faire un hot spot like. Aussi, si le raspi est branché sur secteur, je vois pas où est le souci.

Ce soir, je suis mort de fatigue et j'ai la flemme de regarder ce que sont les esp. Peux tu être un peu plus explicite (surtout la version python Smiley smile ) ?

Pour ce qu'il veut faire, c'est pas difficile, mais s'il a juste les bases, il va vite être largué. Il faut avoir quelques connaissances relativement pointues dans chaque domaine (back/front/device/serveur/administration système/etc.)

L_AMI_Yves a écrit :

Et pourquoi, sur les forums, quand on pose une question en décrivant soigneusement le contexte du problème, au moins la moitié des réponses concernent un autre contexte ?


Parce qu'on peut te proposer des solutions plus abouties. Je commence à connaitre Bazzoka et souvent, il est pertinent dans ses réponses. D'ailleurs, c'est la raison pour laquelle, il a droit à une image pour bonne conduite. Smiley lol

Bazzoka07 a écrit :
Pourquoi 8 iframes ? Au pire 8 <form>. Même un <form> devrait suffire.

+1 Smiley lol (le lien est pour Bazzooka, sinon, je "plussoie" son commentaire)

@L_AMI_Yves : la gestion des 8 iframes.... pourquoi complexifier ? Et puis, les iframes, c'est une techno d'un autre temps.... Cela dit, c'est à vu de nez et peut être (n'en suis pas sûr tout de même d'où mon +1) c'est pertinent.
Modifié par niuxe (08 Nov 2018 - 21:43)
Merci Niuxe : je me sens un peu mieux compris. Je pense avoir un peu mieux que les bases, mais je ne me sens quand-même pas "pointu", c'est d'ailleurs pourquoi je suis là.

Dans mes huit voies, certaines ne servent qu'à envoyer des commandes, d'autres à recevoir des paramètres. Un form est bien sûr nécessaire pour envoyer une commande (et inutile en dehors de ça), tandis que, pour recevoir des paramètres, il faut aussi un form (c'est, àa ma connaissance, le seul moyen d'échanger de l'information), mais à "submit" automatique périodique. Tout ça, je sais le faire grosso-modo. De même, installer tout ce qu'il faut sur le Raspberry, c'est déjà fait.

Pour le moment, je coince sur l'occupation de l'écran, et particulièrement sur le dimensionnement des iframes. D'après mon ami Google, je ne suis pas le premier, et même, ce que j'ai lu aujourd'hui m'a bien découragé.

Au fond, j'en viens à me demander si je ne ferais pas mieux de revenir aux sockets, avec une bête application en VB6 sur PC (mais alors, tant pis pour la tablette ou le smartphone...)

Mais si je suis mieux compris, certains pourront-ils me décoincer ?

Dans l'attente...

AMIcalement.
Salut,

C'est un peu difficile quand on a l'expertise, de t'encourager à choisir une solution lourde et inefficace parce que tu ne maitrises pas la solution simple et efficace.

En quelque sorte, ton besoin c'est de pouvoir définir et utiliser un protocole de communication entre ton Raspberry et un client web. Intuitivement quand on cherche à développer un tel protocole on pense aux sockets, mais on peut très bien utiliser des librairies qui facilitent la tâche. Le protocole MQTT recommandé par Bazooka c'est effectivement approprié et RabbitMQ en est une librairie très populaire. De mon côté, je te recommande Socket.io qui te permettra d'envoyer et recevoir des messages en très peu de lignes de code. Dans les deux cas, ces librairies peuvent être utilisée dans une application Web, donc tu peux redire bonjour à ta tablette ou ton smartphone.

Voilà voilà !
@Anymah,

Sur un Raspberry Pi3B, les gens installent une distribution Raspbian (dérivé de Debian avec pilotes propriétaires). S'ils sont plus courageux, ils installent une Ubuntu 18.04 LTS.
En standard, le broker (serveur MQTT) est Mosquitto.
Le mieux serait d'utiliser Python. il y a un client MQTT (Paho), une librairie pour lire le port GPIO sur le Raspberry (python3-rpi.gpio) et un serveur HTTP (Bottle ou Flask)
https://bottlepy.org/docs/dev/
On peut éventuellement coller ces serveurs HTTP derrière Nginx
Développer un site Web en python est plus sympa qu'en PHP. Dommage que cela ne soit pas pris en compte par les hébergeurs.

Un peu de lecture pour les non-initiés :
https://www.framboise314.fr/linternet-des-objets-iot-sur-raspberry-pi-avec-mqtt/
https://projetsdiy.fr/mosquitto-broker-mqtt-raspberry-pi/

N.B.: Les objets connectés ne sont pas nécessairement connectés à Internet. Ils peuvent dialoguer avec un simple smartphone ou une tablette.

@niuxe,
Merci pour la vidéo. Tu m'as reconnu ? Smiley lol
Merci pour vos contributions, Anymah et Bazeooka07 : pour ainsi dire, vous m'avez (presque) convaincu. L'argument massue, c'est que j'ai pris conscience que le navigateur Web (jusqu'à maintenant, Firefox, mais c'est sûrement pareil pour les autres) n'est pas du tout adapté à ce que je veux faire.

Par contre, j'ai beaucoup de mal à m'engager dans la voie que vous tracez, avec les renseignements que vous donnez : il va falloir que je me reconfigure complètement, que je m'approprie de nouveaux outils. Vous allez forcément être sollicités, et pas plus tard que tout de suite : si je mets en place une architecture MQTT, il faudra donc un broker et deux clients. Il y aura d'un côté, sur le même ordi, le broker et un client, et de l'autre, juste l'autre client. Si l'idée de "banaliser" l'émetteur de la télécommande est conservée, il semble préférable de garder le broker sur le bateau. Si j'ai bien compris, le broker ne se charge que d'acheminer les messages. Le client du bateau sera donc chargé d'envoyer des informations (par exemple, état de charge des batteries, vitesse de rotation du moteur...?) et d'exécuter des ordres (commande du servo-pilote du moteur, du servo de gouvernail, ouverture ou fermeture de divers interrupteurs).

Côté émetteur, il y a l'interface graphique (affichage des paramètres, et des outils de commande des ordres décrits ci-dessus), décodage des messages reçus et élaboration des messages pour transmettre les ordres. J'avais prévu tout ça avec des outils que je savais utiliser.

S'il faut installer Eclipse pour cette nouvelle conception, j'ai très peur : j'ai déjà essayé il y a quelques années, je trouve que c'est une usine à gaz ! Je conçois que cela puisse se faire dans une entreprise de développement de logiciels, mais il m'a semblé qu'il y avait besoin d'un ingénieur système pour gérer Eclipse, afin que les développeurs puissent faire leur travail sans être tout le temps dérangés par des mises à jour etc... Jadis, j'avais tout ça, maintenant, je suis seul, à la retraite... Autre chose : je suis capable de lire une page Web en anglais, qui décrit les grandes fonctions d'un environnement etc... mais j'ai beaucoup de mal à me concentrer sur des spécifications techniques en anglais, pour savoir si la situation décrite est bien la mienne, et si je comprends bien tous les détails des solutions préconisées. En bref, une solution dont toute la documentation technique est en anglais va avoir du mal à me plaire...

Voila où j'en suis de mes réflexions.

J'espère que vous voudrez bien continuer à m'accompagner.

AMIcalement.
Coucou !

L_AMI_Yves a écrit :
Merci pour vos contributions, Anymah et Bazeooka07 : pour ainsi dire, vous m'avez (presque) convaincu. L'argument massue, c'est que j'ai pris conscience que le navigateur Web (jusqu'à maintenant, Firefox, mais c'est sûrement pareil pour les autres) n'est pas du tout adapté à ce que je veux faire.

Non justement pas ! Il y a plein de client MQTT JavaScript dont Paho recommandé par Bazooka. Fais voir une petite recherche sur internet.

L_AMI_Yves a écrit :
Il y aura d'un côté, sur le même ordi, le broker et un client, et de l'autre, juste l'autre client. Si l'idée de "banaliser" l'émetteur de la télécommande est conservée, il semble préférable de garder le broker sur le bateau. Si j'ai bien compris, le broker ne se charge que d'acheminer les messages.

Dans l'immédiat j'ai pas assez réfléchi pour savoir s'il vaut mieux mettre le broker d'un côté ou de l'autre. Mais comme c'est indépendant des clients tu peux théoriquement le déplacer à ta guise facilement. Sinon on peut effectivement voir le broker comme un achemineur de paquets, mais le mieux c'est de comprendre simplement le principe du pattern Publisher-Subscriber dont MQTT découle. Oublies pas qu'un client MQTT peut aussi bien être un émetteur qu'un récepteur. C'est une communication bidirectionnelle.

L_AMI_Yves a écrit :
S'il faut installer Eclipse pour cette nouvelle conception, j'ai très peur : j'ai déjà essayé il y a quelques années, je trouve que c'est une usine à gaz ! Je conçois que cela puisse se faire dans une entreprise de développement de logiciels, mais il m'a semblé qu'il y avait besoin d'un ingénieur système pour gérer Eclipse, afin que les développeurs puissent faire leur travail sans être tout le temps dérangés par des mises à jour etc... Jadis, j'avais tout ça, maintenant, je suis seul, à la retraite...

Eclipse est une usine à gaz. Je suis d'accord avec toi et je le recommanderais à personne. En revanche on clairement pas besoin d'un ingénieur système pour faire marcher un simple IDE (sinon y'a un soucis du côté des développeurs). Dans ton cas, tu peux te contenter d'un éditeur beaucoup plus léger (il y en a beaucoup et on a tous ses propres préférences mais personnellement je recommande beaucoup Visual Studio Code).

L_AMI_Yves a écrit :
Autre chose : je suis capable de lire une page Web en anglais, qui décrit les grandes fonctions d'un environnement etc... mais j'ai beaucoup de mal à me concentrer sur des spécifications techniques en anglais, pour savoir si la situation décrite est bien la mienne, et si je comprends bien tous les détails des solutions préconisées. En bref, une solution dont toute la documentation technique est en anglais va avoir du mal à me plaire...

Je consulte malheureusement toute mes documentations en anglais, et donc je connais très mal les possibilités en français pour te conseiller. Dans le doute, tu peux simplement revenir poser tes questions ici.

Voilà voilà !
Rebonjour tout le monde.

Je me suis plongé dans divers MOOCs sur Python : je trouve que ça ressemble beaucoup à Visual Basic, que j'ai beaucoup utilisé jadis. Je n'ai pas suivi Microsoft pour passer à .net : je suis un programmeur "vieux de la vieille", rajouter plusieurs meg de framwork pour ne pas m'en servir, ça m'a pas plu. Mais il faut évoluer, n'est-ce pas ? Si je ne devais programmer que pour mon PC, je le ferais en VB6, mais comme ce n'est pas le cas...

Je viens de faire une recherche sur les IDE et les ateliers RAD pour Python, mais c'est encore la bouteille à l'encre. Pouvez-vous me conseiller un outil (de préférence gratuit et multi-plateforme) où je retrouverais les points forts de VB6 : création ultra simple d'une interface graphique, interpréteur et débogueur intégré, génération d'application autonome. Je crois avoir fait le tour

Merci d'avance.

AMIcalement.
Modérateur
Eclipse est très un bon IDE. Je le connais depuis quelques années. Mais alors il faut absolument une machine de guerre pour le faire tourner. Il n'est pas difficile à aborder finalement. Une fois qu'on a compris sa logique d'utilisation, ça va. Je me répète : Il faut une machine de guerre pour le faire tourner correctement.

Au boulot (et j'ai pas le choix => je préfère mes outils), je dois l'utiliser pour déboguer l'environnement de travail (framework JS propriétaire avec un plug in installé dans Eclipse). Ma machine :
- os : SLED
- RAM : 16 gio
- cpu : Intel i5
Eclipse, mange 50% à 60% de mes ressources !

Tourne toi vers visual studio code ou Sublime text 3 ou Atom. Perso, j'utilise Atom et Sublime depuis quelques années maintenant. Je n'aime pas vraiment visual studio. Mais c'est une histoire de goût.

En ce qui concerne le VB, je ne pourrai pas t'aider. Par contre, en Python ou PHP ou JS, tu n'auras qu'à poser ta question sur le forum. Si j'ai le temps et que je vois ton message, je pourrai peut être t'aider suivant la problématique que tu rencontres. Cela dit, je ne ferai pas le travail à ta place.
Modifié par niuxe (12 Nov 2018 - 21:04)
Tu auras essentiellement besoin de Python pour le Raspberry.
Sur ton PC, tu peux garder Windows et VB6. D'après Qwant, il sait causer MQTT. Mais je n'ai jamais utilisé VB6 et Delphi est un peu loin.
Il faut te connecter sur le Raspi et installer un serveur MQTT Mosquitto, avec un client MQTT pour envoyer et écouter les messages du serveur, une librairie pour dialoguer avec le port GPIO et certainement le port I2C (librairie SMBUS) s'il y a des mesures analogiques.
Note que tu peux travailler directement en ligne de commande avec Python pour faie quelques tests. Donc sur le Raspi il faut utiliser apt pour installer tout cela :
sudo apt update
sudo apt install mosquitto mosquitto-clients python3-paho-mqtt python3-rpi.gpio python3-smbus bpython3

Bpython3 est un interprêteur en ligne de commande. il a l'avantage de fournir de l'aide directement, faire la complétion de code, évaluer les variables et faire la coloration syntaxique.
Tu peux installer Python sous WIndows avec le lien ci-dessous :
https://www.python.org/downloads/windows/
Il est livré par défaut avec un IDE. Mais en général un bon éditeur avec la coloration syntaxique suffit, Notepad++ par exemple.
Pour débuter en python, la référence incontournable est le livre de Gérard Swinnen que tu peux télécharger ici :
https://inforef.be/swi/python.htm
Il faudrait que tu détailles les capteurs et les actionneurs que tu veux connecter au Raspberry. Tu as parlé de jauges. Comment fais tu les mesures analogiques ?

Pour le terminal ou télécommande, tu dois pouvoir utiliser un smartphone ou une tablette sous Android.

@Niuxe,
J'utilise couramment Netbeans sous Ubuntu 18.04 pour déboguer PHP avec XDebug. il ne va pas trop mal mais cela reste du Java. J'ai le temps d'aller chercher un café quand il s'élance.
Modifié par bazooka07 (12 Nov 2018 - 22:33)
Merci de vos aides.

J'ai parlé d'une expérience que j'ai faite il y a quelques années d'Eclipse, pas du tout positive (usine à gaz !) ton opinion me confirme dans cette idée.

Il me semble que le concept d'"environnement de développement" est plutôt flou parmi les "développeurs du dimanche" que nous sommes plus ou moins dès qu'on est sorti du boulot (ce qui est maintenant mon cas depuis plusieurs années) : je cherche plus qu'un éditeur de texte avec coloration syntaxique (j'utilise couramment PSPAD), plus qu'un interpréteur en ligne de commande (IDLE est venu avec Python).

Je rêvais de ce qu'offre VB6 (que vous, les petits jeunes, ne pouvez pas connaître...) : quand on le lance, la fenêtre d'exécution s'ouvre, avec un menu d'outils graphiques (boutons, zones de label, zones de saisie et j'en passe) qu'il suffit de disposer sur cette fenêtre afin de bâtir l'IHM. Chaque fois que l'on place un outil, des programmes de prise en compte par défaut des interactions sont préparés dans diverses pages de programme, que l'on peut ensuite ouvrir pour les compléter. On peut lancer l'exécution du programme depuis l'environnement de développement : en cas d'erreur, le fichier source s'ouvre à la ligne fautive. Quand le développement est fini, on peut générer un ".exe" qu'il est ensuite possible d'installer sur un PC qui n'a pas VB6.

Je ne sais pas si vous voyez ce que je veux dire.

VB6 est maintenant complètement dépassé, Microsoft ne le maintient plus (mais les fans font pression, et il continue à tourner). J'ai peut-être une centaine de petits programmes en VB6, dont un Sudoku qui n'a pas son pareil. Je trouve ce concept de programmation formidablement efficace, et c'est ce que j'espère retrouver avec Python.

Bien entendu, il n'est pas question que j'attende que quelqu'un d'autre fasse mon "travail" ! Quel serait l'intérêt ?

Encore merci.

AMIcalement.
Modérateur
L_AMI_Yves a écrit :

....
Je rêvais de ce qu'offre VB6 (que vous, les petits jeunes, ne pouvez pas connaître...) : quand on le lance, la fenêtre d'exécution s'ouvre, avec un menu d'outils graphiques (boutons, zones de label, zones de saisie et j'en passe) qu'il suffit de disposer sur cette fenêtre afin de bâtir l'IHM. Chaque fois que l'on place un outil, des programmes de prise en compte par défaut des interactions sont préparés dans diverses pages de programme, que l'on peut ensuite ouvrir pour les compléter. On peut lancer l'exécution du programme depuis l'environnement de développement : en cas d'erreur, le fichier source s'ouvre à la ligne fautive. Quand le développement est fini, on peut générer un ".exe" qu'il est ensuite possible d'installer sur un PC qui n'a pas VB6.
...


C'est normal que tu aies eu IDLE. C'est livré avec sur Windows et surement sur MAC. Sur GNU/Linux on a le choix de l'installer ou pas. J'avoue ne pas m'en être servi. Cela dit, on m'a dit que c'est un petit éditeur assez bien.

Ce que tu cherches, c'est bel et bien un IDE avec une interface de débogage. Sur Atom ou sur Visual studio code ou sur sublime, il y a des outils intéressants. De toute manière, le terminal est ton ami. Tu lances ton programme à partir du terminal et tu débug en faisant des petits print. Sur Atom, il y a un débugger et tu peux t'installer un terminal à plusieurs onglets. Sur Visual studio code, tu peux placer des points d'arrêts alors que sur Atom, tu n'as qu'à surligner une ligne.

Là j'ai pensé à te conseiller de voir du côté de Komodo edit. Pendant près de 7-8 ans, je l'ai utilisé. Mais il est devenu trop basique. C'est un très bon éditeur mais en dessous de ce que propose Atom/Sublime (qui s'est vraiment bien amélioré)/visual. À essayer peut être ?

Perso, je te conseillerai soit Atom soit Visual pour déboguer (les liens amènent vers des vidéos de présnetations des plugins). À noter qu'en Python, il y a des librairies pour débugger.

@Bazooka : Le livre de Swinnen à propos de Python 3 est très bien fait. Mais cela reste une belle introduction. Il ne parle pas des modules annexes qui sont tout aussi intéressants à aborder. Le problème du python est simple : syntaxe ultra cool (pourquoi j'ai adopté ce langage) mais l'écosystème est énorme.

- Programming in Python 3: A Complete Introduction to the Python Language (Developer's Library) (vraiment bien)
- Learning Python Application Development (pas mal du tout)
- http://apprendre-python.com (bon petit site - équivalent php debutant)

bazooka07 a écrit :

sudo apt update
sudo apt install mosquitto mosquitto-clients python3-paho-mqtt python3-rpi.gpio python3-smbus bpython3


Attention, il vaut mieux utiliser un environnement virtuel. Ça évite des déboires par la suite.... Et pip (équivalent à composer/npm/yarn/gem) est ton ami....

Au fait, il faut oublier Python 2.7. Le support s'arrête officiellement dans un peu plus d'un an.

bazooka07 a écrit :

J'utilise couramment Netbeans sous Ubuntu 18.04 pour déboguer PHP avec XDebug. il ne va pas trop mal mais cela reste du Java. J'ai le temps d'aller chercher un café quand il s'élance.


J'ai essayé mais jamais accroché. À l'époque où je l'avais testé, le portage de zen coding était médiocre. Peut être qu'avec Emmet, c'est mieux maintenant ?
Modifié par niuxe (13 Nov 2018 - 21:50)
C'est vrai que Python est un langage vraiment cool :
plus de point-virgule, de curly brackets
une façon ultra simple et native pour documenter son programme
doc utilisable dans l'interpréteur
des modules compilés automatiquement en byte code

Perso je n'utilise jamais l'environnement virtuel mais je n'utilise presque exclusivement que les librairies livrées avec la distribution Linux pour éviter des conflits de versions.
Et j'utilise pip3 avec parcimonie

Tu as oublié toute la doc sur python.org, c'est un niveau supérieur à php.net
https://docs.python.org/3/

Tu utilises XDebug avec visual code ou atom ? C'est le seul truc qui me retient à Netbeans. Il y a Vimdebug mais bon...
Pages :