IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Déploiement/Installation Python Discussion :

Déployer son programme python sans l'installation de python


Sujet :

Déploiement/Installation Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2019
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2019
    Messages : 2
    Par défaut Déployer son programme python sans l'installation de python
    Bonjour à tous et à toutes,

    Je viens vers vous car j'aurai besoin de conseil dans le cadre de mon stage d'ingénieur. J'ai été amené à développer un logiciel effectuant le travail suivant: il accepte en entrée des fichiers excels contenant les mêmes informations mais pas aux mêmes endroits (il s'agit de fichier de fournisseurs alimentaires pour les maj des stocks, donc ils ont chacun leur propre format...) et donne en sortie un fichier excel avec un format standard pour la boite pour laquelle je travaille.

    J'ai donc développé mon programme en python (3.6) en utilisant tkinter pour avoir une interface graphique propre. Le programme est parfaitement fonctionnel. Maintenant, je dois trouver un moyen de le distribuer aux équipes commerciales pour qu'elles puissent l'utiliser. Cependant:
    - j'aimerai éviter de geler le code car cela rend les maj difficile (rajout d'un fournisseur par exemple)
    - les commerciaux sont sous différents OS
    - difficile de leur faire installer python (il y en a beaucoup, certains restent que 2/3 mois, d'autres refusent de l'installer tout simplement)

    J'ai donc cherché sur Internet des solutions et j'ai vu qu'il serait possible de faire un serveur (style django peut être) afin d'éviter l'installation de python et faciliter les maj, j'ai cependant du mal à comprendre la doc sur internent.

    De plus, étant débutant, j'aimerai avoir vos conseils pour poursuivre mon projet et même vos propositions si vous en avez!

    Merci d'avance,

    Gauthier

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 778
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 778
    Par défaut
    Salut,

    Citation Envoyé par Gauthier_ Voir le message
    J'ai donc cherché sur Internet des solutions et j'ai vu qu'il serait possible de faire un serveur (style django peut être) afin d'éviter l'installation de python et faciliter les maj, j'ai cependant du mal à comprendre la doc sur internent.
    En gros, il va falloir recoder complètement différemment le programme que vous avez réalisé. Un peu comme si vous n'aviez rien fait... dommage non? Qu'en pense votre patron de stage?

    Citation Envoyé par Gauthier_ Voir le message
    Maintenant, je dois trouver un moyen de le distribuer aux équipes commerciales pour qu'elles puissent l'utiliser. Cependant:
    - j'aimerai éviter de geler le code car cela rend les maj difficile (rajout d'un fournisseur par exemple)
    - les commerciaux sont sous différents OS
    - difficile de leur faire installer python (il y en a beaucoup, certains restent que 2/3 mois, d'autres refusent de l'installer tout simplement)
    cx_freeze, pyinstaller, ... sont des utilitaires qui permettent de "packager" tout ce qu'il faut pour installer Python, les bibliothèques utilisées et l'application sans que l'utilisateur n'ait à en connaître les détails.
    Différents OS, c'est différents kits à fabriquer mais comme vous allez devoir tester que çà s'installe correctement avant de diffuser...

    Ajouter un fournisseur, c'est des données qui changent (pas le code à priori sinon il est peut être à revoir).... et rien n'empêche votre programme d'aller voir (sur Internet) s'il y a des mises à jours (de données) à charger et de le faire.
    note: se mettre à jour "lui même" est plus compliqué (sauf à s'appuyer sur l'infrastructure que vous avez sur les mobiles en tout genre).

    Citation Envoyé par Gauthier_ Voir le message
    J'ai donc développé mon programme en python (3.6) en utilisant tkinter pour avoir une interface graphique propre. Le programme est parfaitement fonctionnel.
    Avant de coder, les questions a se poser sont:
    • comment récupérer des informations en cas de soucis qui permettront de reproduire/diagnostiquer un problème sans être sollicité la nuit ou les week-end?
    • comment diffuser rapidement un correctif?
    • comment faire tester l'application par une population significative histoire de s'assurer que l'interface n'est pas trop chaotique (ou que le premier crétin venu plante l'application en 2 mns - et c'est un "plus" de planter en phase de test plutôt qu'après avoir déployé l'application, et en général, dans les boîtes vous avez des crétins utiles "ah si machin a testé, c'est pas si mal").

    et suivant les réponses à ces questions (non techniques) vous n'allez pas construire votre code de la même façon.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Nouveau candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2019
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2019
    Messages : 2
    Par défaut
    Merci de ta réponse, je me rend compte que je n'ai pas assez expliquer mon programme certainement. Du coup, j'ai un fichier principal .py (interface d'acceuil avec un menu). Sur ce menu, on choisi ensuite le fournisseur à l'aide d'un bouton tkinter du coup, et la commande associé à ce bouton appelle une fonction qui se trouve dans un autre fichier .py, en gros il y a plusieurs fichiers .py (une dizaine) pour plusieurs fournisseurs. Les maj des stocks sont faites toutes les deux semaines environ.

    Pour l'ajout d'un fournisseur, il faut nécessairement ajouter un fichier .py qui sera appelé avec un bouton sur l'acceuil. Car chaques fournisseurs utilisent son format qu'ils transmettent par mail aux commerciaux, les colonnes ne sont pas les mêmes d'un fournisseur à l'autre, les calculs des prix également...

    Ensuite, un fois le fichier généré par mon programme, il est relu par le commercial puis importé dans l'ERP de la boite qui fait également une relecture.

    J'ai déjà testé mon programme sur plusieurs fichiers fournisseurs et je l'ai fait tester à 2/3 commerciaux avec succès, donc ça serait un peu gênant de devoir recoder ...

    cx_freeze, pyinstaller, ... ne permettent pas simplement de faire un exe compatible à tout les OS sans installation sur les machines nécessaire?

    Pour répondre aux questions:
    - en cas de soucis, la double relecture fera remonter les erreurs (pas de sollicitations les nuits et we car c'est une démarche manuelle)
    - un correctif n'impacte que le fichier .py du fournisseur concerné

  4. #4
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 778
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 778
    Par défaut
    Citation Envoyé par Gauthier_ Voir le message
    cx_freeze, pyinstaller, ... ne permettent pas simplement de faire un exe compatible à tout les OS sans installation sur les machines nécessaire?
    Un exécutable, des librairies partagées (DLL),... sont toujours dépendantes de l'OS...

    Citation Envoyé par Gauthier_ Voir le message
    Pour l'ajout d'un fournisseur, il faut nécessairement ajouter un fichier .py qui sera appelé avec un bouton sur l'acceuil. Car chaques fournisseurs utilisent son format qu'ils transmettent par mail aux commerciaux, les colonnes ne sont pas les mêmes d'un fournisseur à l'autre, les calculs des prix également...
    C'est votre choix d'implémentation.
    Pour ne pas être méchant, je dirais juste qu'il n'est pas très heureux.

    Il devrait être possible d'ajouter un module a un "executable" construit par cx_freeze ou pyinstaller mais comme cela n'a pas été construit pour, çà va être sportif à designer, développer, tester,...

    De toutes façons comment livrer, installer,... et quelque chose qui doit être pensé avant même d'écrire la première ligne de code.
    C'est comme si vous achetiez une table qui ne rentre pas dans votre salon ou qu'il faille casser les murs pour l'y faire entrer... c'est dommage non?

    Bon courage en tout cas.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

Discussions similaires

  1. Réponses: 5
    Dernier message: 20/05/2015, 09h35
  2. enregistrer son programme python
    Par sebousseau dans le forum Général Python
    Réponses: 12
    Dernier message: 03/05/2014, 15h21
  3. Réponses: 28
    Dernier message: 05/07/2013, 10h05
  4. Executer un programme sans avoir installé python
    Par Zizook dans le forum Général Python
    Réponses: 8
    Dernier message: 01/02/2013, 19h23
  5. [Executable]Comment lancer son programme sans fenêtre DOS
    Par the_ugly dans le forum Général Java
    Réponses: 11
    Dernier message: 09/11/2005, 07h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo