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 :

Deploiement windows possible?


Sujet :

Déploiement/Installation Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Expert confirmé

    Avatar de deusyss
    Homme Profil pro
    Expert Python
    Inscrit en
    Mars 2010
    Messages
    1 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Expert Python
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2010
    Messages : 1 659
    Par défaut Deploiement windows possible?
    Bonjour,

    Je developpe sous Linux en Python 2.7. J'ai lu de nombreuses choses sur py2exe et cx_freeze. Je n'ai malheureusement pas trouvé réponse à mon probleme.

    Mon application est organisé ainsi:
    DOSSIER_PRINCIPAL
    >>SRC
    >>>>PY
    >>>>>>Module1
    >>>>>>Module2
    >>>>>>Module3
    >>>>>>Module4
    >>>>BDD
    >>>>>>BDD_SQLITE
    >>IMG
    >>>>BACKGROUND
    >>>>BUTTONS
    >>>>>>IMG1
    >>>>>>IMG2
    >>>>>>IMG3

    Module 1 fait import de pygtk, gtk, sys, os, Module 2 fait import de maths, Module 3 fait import de sqlite, sys, os et Module 4 fait import de Module1, Moduel2, Module3, sys, os.

    Le module1 récupère des images dans Buttons, et le module 3 accede à la BDD_SQLITE.

    Le logiciel fonctionne bien, mais vient l'épineuse question de la convertion en exe. J'ai trouvé nombre d'exemple d'un simple, voir de deux fichiers, mais jamais avec autant d'interconnection. Mes essais d'hier soir n'ont rien donné de concluants.

    Mon souhait serait de créer une application standalone en remplaçant les modulex.py par des modulesx.exe tout simplement. Est-ce faisable à votre avis?

    Merci beaucoup
    "La connaissance appartient à tout le monde" (Film Antitrust)

    Tout le nécessaire pour Python:
    *News/Accueil *Cours/tutoriels *FAQ
    *Forums *Outils dédiés *Mon espace personnel avec mes Articles, Cours et Tutoriels

  2. #2
    Expert confirmé
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 495
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 495
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    J'utilise souvent cx_freeze sous Windows et sous Linux, y compris pour de gros programmes complexes avec bibliothèque graphique (j'utilise PyQt4), sqlite, ftp, web, etc...

    Ce que tu envisages est tout à fait faisable, mais bien sûr, pour faire un exe destiné à Windows, il faudra le faire sous Windows (les bibliothèques à emporter sont différentes)!

    Pour cx_freeze, j'utilise la méthode avec "setup.py", ce qui me permet d'utiliser un "modèle" que je modifie au fur et à mesure de mes expériences. Mon tuto pour Windows est ici: http://python.jpvweb.com/mesrecettes..._pyqt4_windows.

  3. #3
    Expert confirmé

    Avatar de deusyss
    Homme Profil pro
    Expert Python
    Inscrit en
    Mars 2010
    Messages
    1 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Expert Python
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2010
    Messages : 1 659
    Par défaut
    Bonjour Tyrtamos,

    Merci beaucoup pour ton retour rapide.

    Je pensais pouvoir générer l'exe depuis Linux, mais non aparemment. On apprend tous les jours.

    Je viens de lire ton exemple. Je comprend bien comment faire avec mes multiples fichiers PY.

    Petite question: Les exe générés seront a placer dans mon dossier "00-PY" du coup? et tout fonctionnera bien?

    Essais ce soir si je remet la main sur la bonne VM. Merci beaucoup je te tiens au courant.


    EDIT: côté Linux, je créé des paquet .deb donc pas besoin de cx_freeze
    "La connaissance appartient à tout le monde" (Film Antitrust)

    Tout le nécessaire pour Python:
    *News/Accueil *Cours/tutoriels *FAQ
    *Forums *Outils dédiés *Mon espace personnel avec mes Articles, Cours et Tutoriels

  4. #4
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 790
    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 790
    Par défaut
    Salut,
    Citation Envoyé par deusyss Voir le message
    Mon souhait serait de créer une application standalone en remplaçant les modulex.py par des modulesx.exe tout simplement. Est-ce faisable à votre avis?
    Hu?!
    En Python, un module est un objet auquel on appliquera /import/ pour pouvoir l'utiliser. Construire moduleX.exe a partir de moduleX.py est possible mais les .exe s’exécuteront dans leurs interpréteurs et des process distincts alors que les scripts ".py" devraient partager le même interpréteur.
    => les interactions entre ces /modules/ ne sont plus du tout les mêmes.

    Avec un engin de Virtualisation tel que VirtualBox, il est possible d’accéder au projet (les sources) en utilisant des /shared-folders/. Dit autrement, je peux modifier le source depuis une VM Linux et la mise a jour se propage dans la VM Windows.

    A partir de la, un outil de packaging tel que cx_freeze génère les fichiers de la distribution dans un sous-répertoire build.exe-linux-X.Y ou exe.win32-X.Y a partir de ce qui a été définit dans le setup.py. L’étape suivante sera d'emballer le /build/ en fonction de l'outil de déploiement: MSI, RPM,...
    note: in fine, c'est la structure du répertoire du /build.os_specific/ qu'on retrouvera sur la cible après /déploiement/

    J'y intègre plusieurs .exe (ou points d’entrée): le prog, des tests fonctionnels de base (qui appelleront prog.exe) et des tests d’intégration (s'il y a des dépendances externes).

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

  5. #5
    Expert confirmé

    Avatar de deusyss
    Homme Profil pro
    Expert Python
    Inscrit en
    Mars 2010
    Messages
    1 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Expert Python
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2010
    Messages : 1 659
    Par défaut
    Bonjour,

    Je n'ai pas eu le temps de repasser sur mon déploiement windows depuis quelques temps, étant pas mal pris en ces mois d'été.

    J'ai cependant eu le temps d'y réfléchir, et en fait, que tout mes fichiers .py soient rassemblés en un seul exe ne me posent au final aucuns problèmes, c'est même plus pratiques.

    Je recommencerais mes essais dès que j'en aurai l'occasion et vous tiendrais au courant.

    Merci beaucoup pour votre aide en tattendant
    "La connaissance appartient à tout le monde" (Film Antitrust)

    Tout le nécessaire pour Python:
    *News/Accueil *Cours/tutoriels *FAQ
    *Forums *Outils dédiés *Mon espace personnel avec mes Articles, Cours et Tutoriels

  6. #6
    Expert confirmé

    Avatar de deusyss
    Homme Profil pro
    Expert Python
    Inscrit en
    Mars 2010
    Messages
    1 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Expert Python
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2010
    Messages : 1 659
    Par défaut
    Bonjour à tous,

    Je reviens après quelques temps d'absence sur mon post, et un certains nombre d'essais.

    Suite à vos retours, je suis aprtis sur un seul exe final, mais avec le désir de garder ma structure.

    j'ai essayer ton lien tyrtamos, j'ai lu la documentation cx_freeze, qui manque un peu de clarté je trouve d'ailleurs, mais qui fait bien ressortir que ce peut etre un outil puissant.

    Bref, jusqu'ici rien avec cx_freeze.
    J'ai pourtant du mal à croire que personne n'a déjà fait ce que j'essaie de faire, que ce soit avec cx_freeze ou autre. Je continue à chercher.

    Si vous avez une idée, elle est la bienvenue. Je joint mon soft terminé si quelqu'un veut faire des essais.

    Merci
    Fichiers attachés Fichiers attachés
    "La connaissance appartient à tout le monde" (Film Antitrust)

    Tout le nécessaire pour Python:
    *News/Accueil *Cours/tutoriels *FAQ
    *Forums *Outils dédiés *Mon espace personnel avec mes Articles, Cours et Tutoriels

  7. #7
    Expert confirmé
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 495
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 495
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    J'ai essayé avec ton programme, et je commence à trouver les problèmes que tu rencontres.

    1- sans instruction particulière dans le setup, seuls sont transférés les modules compilés .pyc (=> library.zip), ainsi que les bibliothèques "système" .dll. Mais rien d'autre: ni la base de données, ni la doc, ni les images..

    Pour retrouver tous ces éléments à exploiter par l'exe, il faut en demander la recopie dans le setup destiné à cx_freeze, grâce à l'instruction "includefiles".

    2- mais si on recopie ainsi, on va retrouver ces éléments recopiés à un autre endroit de l'arborescence, c'est à dire que les répertoires BDD, IMG et DOC seront au même niveau que les ModuleX.py. Et, là, on aura le 2ème problème: l'arborescence proposée ne pourra pas être la même dans la version .py et dans la version exe, ce qui posera des problèmes d'adressage pour accéder à ces éléments.

    Donc il faut, à mon avis, modifier l'arborescence du programme de la façon suivante:

    DOSSIER_PRINCIPAL

    >>Module1.py
    >>Module2.py
    >>Module3.py
    >>Module4.py
    >>septup.py

    >>BDD
    >>>>BDD_SQLITE

    >>IMG
    >>>>BACKGROUND
    >>>>BUTTONS
    >>>>>>IMG1
    >>>>>>IMG2
    >>>>>>IMG3

    >>DOC
    >>>>NOTICE
    >>>>DOC_SOURCE

    Avec ça, on pourra dans le setup demander la recopie des répertoires de données comme suit:

    includefiles = ["BDD", "IMG", "DOC"]

    Dans cette solution, vu des modules python, l'adresse relative pour accéder aux données sera la même dans la version py et dans la version exe, ce qui éliminera les problèmes de chemins.

    Si tu es d'accord, corrige tes codes pour coller avec la nouvelle arborescence, et redonne le zip que je continue à chercher.

  8. #8
    Expert confirmé

    Avatar de deusyss
    Homme Profil pro
    Expert Python
    Inscrit en
    Mars 2010
    Messages
    1 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Expert Python
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2010
    Messages : 1 659
    Par défaut
    Merci beaucoup pour ton aide.

    Je comprend mieux les problèmes que je rencontrais avec tes explications. Même si j'avoue que j'aurais préféré conservé la structure que j'avais créé, je comprend que je n'ai pas vraiment le choix pour m'autoriser un déploiement windows

    C'est en pratiquant qu'on apprend. Il me restera plus qu'a modifier toutes les structures de mes projets après; le principal étant d'avoir une solution.

    J'ai donc modifié la structure de mon projet, ainsi que le code pour les chemins d'accès aux divers fichiers. Le zip est en PJ.

    Je vais faire des essais dans le courant de la journée. J'accepte volontiers ton aide sur le sujet. Comme je l'ai dit précédemment, la doc me semble un peu nébuleuse.

    Merci beaucoup
    Fichiers attachés Fichiers attachés
    "La connaissance appartient à tout le monde" (Film Antitrust)

    Tout le nécessaire pour Python:
    *News/Accueil *Cours/tutoriels *FAQ
    *Forums *Outils dédiés *Mon espace personnel avec mes Articles, Cours et Tutoriels

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Deploiement Windows XP
    Par Metafire18 dans le forum Windows XP
    Réponses: 1
    Dernier message: 03/07/2009, 12h25
  2. [Lex/Yacc] Comment installer sous Windows - Possible avec cygwin ?
    Par info_amel dans le forum Générateurs de compilateur
    Réponses: 0
    Dernier message: 10/12/2007, 22h36
  3. Réponses: 7
    Dernier message: 29/06/2007, 18h13
  4. Réponses: 3
    Dernier message: 23/03/2007, 16h23
  5. Réponses: 3
    Dernier message: 24/10/2005, 09h22

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