Python : Mon application destinée aux jardiniers

Edit du 03/ 04/2017

Je viens de déposer la totalité du code source sur Framagit : 

https://framagit.org/Ordinosor/mon-jardin/tree/master

Bonjour,

Cela fait un an et demi que j’ai commencé à coder divers programmes en Python et du coup, je me suis dit que ce serait peut-être une bonne idée de tous les rassembler dans une même application destinée aux jardiniers amateurs désireux de gérer leurs semis, plantations et récoltes.

Rien de bien révolutionnaire dans ce programme mais cela me permet de mettre en pratique mon apprentissage amateur du Python et de découvrir les différentes subtilités de ce langage puissant et agréable.

Par conséquent, je me permets de poster une vidéo dans laquelle je vous présente ladite application. Je vous demande un peu d’indulgence compte tenu du fait que je ne suis pas un développeur professionnel. La programmation est pour moi un passe-temps qui s’est transformée en véritable passion mais je reste fondamentalement un amateur. Je sais que mes codes sont perfectibles mais je n’hésite pas à remettre l’ouvrage sur le métier lorsque cela s’avère nécessaire (risque de bugs, code trop lourd etc…).

J’utilise beaucoup les try-excet-else afin de prévenir tout crash. Je reste ouvert à toute critique constructive ou a toute suggestion d’amélioration. Voici donc mon application intitulée sobrement (et provisoirement) Mon Jardin. Toute aide est la bienvenue! (J’aimerais bien améliorer l’application avec d’autres personnes).

Voici le code source:

https://framagit.org/Ordinosor/mon-jardin/tree/master

Je souhaiterais exporter ce programme sur d’autres ordinateurs mais je ne sais pas trop comment m’y prendre. J’ai bien tenté d’essayer avec cx freeze mais le résultat n’ pas été concluant. Si quelqu’un a une idée, je suis preneur. Merci d’avance.

Auteur : Ordinosor

Bienvenue sur Miamondo, mon blog personnel. "Mia mondo", c'est de l'espéranto et ça signifie "Mon monde" en français. Je m'appelle Benoît alias Ordinosor, Français expatrié en Allemagne. Mes centres d'intérêt sont les distributions GNU/Linux, le langage de programmation Python, la science-fiction et l'espéranto.

41 réflexions sur « Python : Mon application destinée aux jardiniers »

  1. Pour créer un exécutable de ton application tu devrais essayer avec pyinstaller ça marche pas trop mal. J’ai également essayé avec cx_Freeze mais je n’y suis pas arrivé.
    Mon application utilisait PyQt5 pour créer l’interface graphique. Je ne sais pas ce que tu as utilisé pour créer la tienne mais normalement ça devrait marcher.

    J'aime

  2. Excellente idée ce programme. Je relance mon potager cette année (rien ne presse étant donné que je vis à plus de 1000 m d’altitude, on ne sème pas avant fin avril et encore). J’aimerais bien examiner le code source également, question de relancer aussi mon apprentissage de Python (auquel je n’ai pas touché depuis un an).

    J'aime

    1. Merci Dana,

      Je le mets en ligne dès que possible, soit demain, soit Samedi. Il y a encore quelques bugs que j’espère corriger aujourd’hui. En outre, je souhaiterais rajouter quelques fonctionnalités comme par exemple, un onglet pour archiver les données des années passées et également un éditeur de texte dans lequel l’utilisateur pourrait créer des fiches de jardinage (trucs et astuces, fiche légumes etc…). Toute aide est la bienvenue car je n’y arriverai pas tout seul!

      J'aime

  3. Ca m’interresse aussi. Et comme je vais bientot commencer a planter mon jardin autant commencer sur un bon pied.

    Le code est-il prevu pour etre traduit facilement?

    J'aime

  4. J’habite en Angleterre et la jardinière c’est plutôt ma femme qui prefere avoir ces applications en Anglais 🙂

    Alors une fois que tu es content de la stabilité si tu veux le traduire en Anglais je pourrais aider au besoin

    J'aime

    1. Alors , Bienvenue! Est-ce que l’espagnol est ta langue maternelle? Si ce n’est pas le cas, il ne faudra pas hésiter à faire relire par quelqu’un dont c’est la langue maternelle. C’est ce que je vais faire avec l’allemand. Je compte aussi faire une version en espéranto.
      Tout le code est sur framagit (https://framagit.org/Ordinosor/mon-jardin/tree/master).
      Qu’est-ce que tu préfères? Traduire directement dans le code? Si c’est le cas, je vais ouvrir un nouveau projet dans mon Framagit ou dans le tien si tu en as un. On copie-colle le code-source de la version française. Et tu traduis directement dans le code. Il faudra commencer par le fichier READ.ME (seulement pour la partie en français, inutile de traduire la partie en anglais) et ensuite par accueil. py.
      Sinon, tu m’envoies les traductions et je les inclue directement dans le code. C’est comme tu veux.
      En tout cas, merci pour ton aide.
      Benoît.

      J'aime

  5. Bonjour Ordinosor,
    J’ai installé mon-jardin, mais je n’arrive pas à le lancer :
    $ ./jardin.py
    Traceback (most recent call last):
    File « ./jardin.py », line 19, in
    from mon_jardin.accueil import Home
    File « /documents/jardin/mon_jardin/accueil.py », line 19, in
    from tkinter import *
    ImportError: No module named ‘tkinter’

    J’installe donc tkinter :
    # urpmi tkinter
    $MIRRORLIST: media/core/updates/tkinter-2.7.9-2.4.mga5.x86_64.rpm
    installation de tkinter-2.7.9-2.4.mga5.x86_64.rpm depuis /var/cache/urpmi/rpms

    Mais jardin.py ne le trouve pas. Il répond toujours :
    ImportError: No module named ‘tkinter’

    Est-ce que c’est la version de tkinter qui ne lui convient pas, ou alors c’est qu’il n’est pas à l’endroit où il le cherche :
    $ locate tkinter
    /usr/lib64/python2.7/lib-dynload/_tkinter.so

    Vaut-il mieux poser la question ici ou sur framagit ?

    J'aime

    1. Bonjour Joël,

      Tu peux également ouvrir une « issue » (= problème) sur framagit mais on va quand-même essayer de trouver une solution ici aussi. Je voudrais d’abord savoir quelle distribution tu utilises. Est-ce que c’est Mageia?
      Est-ce que tu peux t’assurer que python3 est bien installé sur ton ordinateur?

      J'aime

  6. Merci pour vos indications.

    Oui, je suis sous Mageia5.
    Oui, python3 est bien installé :
    # urpmi python3
    Le paquetage python3-3.4.3-1.5.mga5.x86_64 est déjà installé

    Rien qui s’appelle python3-imaging-tk :
    # urpmi python3-imaging-tk
    Pas de paquetage nommé python3-imaging-tk

    ni imaging :
    # urpmi -y imaging
    Pas de paquetage nommé imaging

    Par contre, j’ai pu installer tkinter3 :
    # urpmi -y python3-tk
    Pour satisfaire les dépendances, le paquetage suivant va être installé :
    Paquetage Version Révision Arch
    (média « Core Release »)
    tkinter3 3.4.3 1.mga5 x86_64

    Après quoi le message d’erreur est différent :
    $ ./jardin.py
    Traceback (most recent call last):
    File « ./jardin.py », line 19, in
    from mon_jardin.accueil import Home
    File « /documents/jardin/mon_jardin/accueil.py », line 22, in
    from PIL import Image, ImageTk
    ImportError: No module named ‘PIL’

    Je suppose que c’est dû à l’absence de python3-imaging-tk…

    Je vais chercher si je trouve quelque chose qui y ressemble dans les packages de la future Mageia6…

    J'aime

      1. # urpmi -y python3-pil
        Pas de paquetage nommé python3-pil
        Les paquetages suivants contiennent python3-pil : python3-pillow, python3-pillow-devel, python3-pillow-doc, python3-pillow-qt, …

        J’essaie donc :
        # urpmi python3-pillow-qt
        Pour satisfaire les dépendances, les paquetages suivants vont être installés :
        Paquetage Version Révision Arch
        (média « Core Release »)
        python3-qt4 4.11.3 1.mga5 x86_64
        python3-qt4-core 4.11.3 1.mga5 x86_64
        python3-qt4-dbus 4.11.3 1.mga5 x86_64
        python3-qt4-declarative 4.11.3 1.mga5 x86_64
        python3-qt4-designer 4.11.3 1.mga5 x86_64
        python3-qt4-gui 4.11.3 1.mga5 x86_64
        python3-qt4-multimedia 4.11.3 1.mga5 x86_64
        python3-qt4-network 4.11.3 1.mga5 x86_64
        python3-qt4-opengl 4.11.3 1.mga5 x86_64
        python3-qt4-script 4.11.3 1.mga5 x86_64
        python3-qt4-sql 4.11.3 1.mga5 x86_64
        python3-qt4-svg 4.11.3 1.mga5 x86_64
        python3-qt4-test 4.11.3 1.mga5 x86_64
        python3-qt4-webkit 4.11.3 1.mga5 x86_64
        python3-qt4-xml 4.11.3 1.mga5 x86_64
        python3-qt4-xmlpatterns 4.11.3 1.mga5 x86_64
        (média « Core Updates »)
        python3-pillow 2.6.2 2.6.mga5 x86_64
        python3-pillow-qt 2.6.2 2.6.mga5 x86_64

        Après quoi le message d’erreur n’est à nouveau plus le même :
        $ ./jardin.py
        Traceback (most recent call last):
        File « ./jardin.py », line 19, in
        from mon_jardin.accueil import Home
        File « /documents/jardin/mon_jardin/accueil.py », line 22, in
        from PIL import Image, ImageTk
        ImportError: cannot import name ‘ImageTk’

        Je finit par trouver que ImageTk se trouve dans python3-pillow-tk
        Donc :
        # urpmi python3-pillow-tk
        Après quoi je peux lancer :
        $ ./jardin.py

        J’aurai plusieurs remarques et demandes.
        Je vais les faire sur framagit…

        J'aime

  7. Il y a un délai à respecter entre chaque issue que l’on soumet sur framagit ?
    J’ai pu soumettre une issue sans problème, mais ensuite chaque tentative se solde par une erreur 502

    J'aime

    1. Tu peux m’en envoyer ici et je vais essayer pour voir.
      Pour ce qui est de l’issue sur les champs inactifs, je peux te répondre tout de suite (et je répondrai aussi sur framagit). Les champs sont inactifs et c’est tout à fait normal.
      Pour les rendre actifs, il faut d’abord que tu sélectionnes une variété du légume dans le menu. Par exemple, tu as créé la page salades et tu te trouves sur cette page salades nouvellement créée. il faut que tu enregistres au moins une variété par exemple « mâche ». Ensuite tu cliques sur cette variété et tes champs sont activés. C’est une sécurité pour que l’utilisateur entre les informations dans l’ordre et pour qu’il n’y ait pas de bugs. Mais si ce n’est pas intuitif, il faut que je rajoute une fenêtre de dialogue pour expliquer la procédure.

      Pour la deuxième issue (ouverture automatique de la page nouvellement créée), c’est une bonne idée. Je vais modifier le code.

      J'aime

      1. Non, j’avais bien créé une variété (d’ailleurs, je l’avais fait en suivant ta vidéo explicative > salade > romaine…) au préalable…

        Je viens néanmoins d’enregistrer la nouvelle version de accueil.py, puis je l’ai rendu exécutable ($ chmod +x accueil.py), mais ça n’as rien changé, bien que j’ai fermé puis réouvert jardin.py.

        Je suppose que c’est mon installation qui est en cause, du fait que, sous Mageia, je n’ai pas pu installer exactement les mêmes lib que celles demandées…

        Si tu veux, je colle la sortie console sur https://framagit.org/Ordinosor/mon-jardin/issues/12

        Par contre, je suis surpris que tu aies vu ma deuxième issue : de chez moi, elle n’apparaît nulle part sur framagit…

        J'aime

    1. Chez moi, ça fonctionne parfaitement. Les modifications sont prises en compte. Pour ce qui est des champs inactifs, peut-être que le problème vient d’une fenêtre pop-up (fenêtre de dialogue) qui s’ouvre et que tu ne vois pas parce qu’elle est cachée derrière la fenêtre mère. Je vais donc supprimer cette fenêtre de dialogue mais pas maintenant, ce soir.

      J'aime

      1. Non, j’avais aussi pensé à cela.
        J’ai donc fait des essais en veillant à fermer d’abord toutes les fenêtres pop-up. Mais ça ne fonctionnait pas non plus…

        J'aime

  8. J’étais un peu absent ces temps-ci.
    Concernant la traduction en Espagnol, je suis complètement bilingue, ce qui n’empêche pas qu’il m’arrive de faire des fautes dans les deux langues 😉
    Je pensais créer un pad, avec mes traductions, ce qui permettrait à ceux qui le souhaitent d’y apporter leur touche et corriger au besoin.

    J'aime

  9. J’ai oublié, juste une précision:
    Sur ma ubuntu 16.04 j’avais la même erreur que Joel Tarlao:
    File « /home/sima/jardin.py », line 19, in
    from mon_jardin.accueil import Home
    File « /home/sima/mon_jardin/accueil.py », line 22, in
    from PIL import Image, ImageTk

    python3-imaging-tk était installé… mais en fait il est devenu obsolète.
    —-
    apt-get install python3-pil.imagetk
    à résolu le problème.

    Aimé par 1 personne

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s