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 :

Standalone application python -- Winpython-32bit-3.3.5.0--PySide


Sujet :

Déploiement/Installation Python

  1. #1
    Membre actif
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2013
    Messages
    156
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2013
    Messages : 156
    Points : 218
    Points
    218
    Par défaut Standalone application python -- Winpython-32bit-3.3.5.0--PySide
    Salut à tous !

    Je suis totalement désespéré !
    J'ai besoin de déployer mon application créer avec Winpython.
    J'essai d'utiliser cx_freeze pour ça, mais j'y capte rien. J'ai fait ça pour le moment:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    import sys
    from cx_Freeze import setup, Executable
     
    executables = [
            Executable("database_access.py"),
            Executable("ui_mainwindow.py"),
            Executable("Frame_pref.py"),
            Executable("ui_Preference.py"),
            Executable("ScatterPlotSpeedTest.py"),
            Executable("ui_TEST_WINDOWS_PYSIDE.py"),
            Executable("Thread_manager.py"),
            Executable("log.py"),
            Executable("Lib.Access.py"),
            Executable("Lib.Arduino_Access.py"),
            Executable("Lib.Bluethooth_communication.py"),
            Executable("Lib.com_one_tools.py"),
            Executable("Lib.crc_algorithms.py"),
            Executable("Lib.Processing.py"),
            Executable("Lib.Serial_communication.py")
    ]
     
     
    buildOptions = dict(include_files = [("conf_db_access.json")]) #folder,relative path. Use tuple like in the single file to set a absolute path.
     
     
    setup(
        name = "appname",
        version = "1.0",
        description = "description",
        author = "your name",
        options = dict(build_exe = None),
        executables = executables
    )
    J'ai aussi essayer avec inno_setup !:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    ; Script generated by the Inno Setup Script Wizard.
    ; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!
     
    [Setup]
    AppName = DB_Access_03
    AppVersion = 0.3
    DefaultDirName = C:\MYPROGOP
     
    [Files]
    Source: "C:\Users\Nicolas\Desktop\MyApplication"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
     
    [Icons]
    Name: "{group}\Application"; Filename: "{app}\WinPython-32bit-3.3.5.0\python-3.3.5\pythonw.exe"; WorkingDir: "{app}"; Parameters: """{app}\WinPython-32bit-3.3.5.0\python-3.3.5\Lib\site-packages\Trunk_DB_Access\database_access.py"""; IconFilename: "{app}\favicon.ico"
     
    [Run]
    Filename: "{app}\WinPython-32bit-3.3.5.0\python-3.3.5\python.exe"; WorkingDir: "{app}"; Parameters: """{app}\postinstall.py"""; Flags: runhidden
    je suis encore plus perdu.

    Mon problème c'est que tous les exemples que je trouve sont fait avec un seul fichier, c'est fastoch et sans Pyside.

    J'ai réussit a avoir des installeurs qui tenez la route avec Inno Setup, mais lorsque je lancer l'exe, hop Pyside non reconnu

    Si quelqu'un a des exemples ou des conseils, je vous écoute !

    Merci d'avance

  2. #2
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 461
    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 461
    Points : 9 248
    Points
    9 248
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    J'utilise souvent cx_freeze, et j'en suis très content. Mais je travaille avec Python (et pas winpython) et PyQt4 (et pas PySide).

    Je viens de mettre à jour mon tuto ici: http://python.jpvweb.com/mesrecettes..._pyqt4_windows.

    Les exemples de programmes PyQt4 fonctionnent aussi sous PySide: il suffit de remplacer "from PyQt4 import QtCore, QtGui" par "from PySide import QtCore, QtGui"

    Commence par recopier l'exemple donné, lance le traitement par cx_freeze, donne les résultats.

    Si ok, essaie avec tes programmes.
    Un expert est une personne qui a fait toutes les erreurs qui peuvent être faites, dans un domaine étroit... (Niels Bohr)
    Mes recettes python: http://www.jpvweb.com

  3. #3
    Membre actif
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2013
    Messages
    156
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2013
    Messages : 156
    Points : 218
    Points
    218
    Par défaut
    Bonjour,
    Merci pour ta réponse et ce tutoriel Python très clair.

    J'ai réussit à créer mon standalone. malheureusement il me manque un module dans l'exe.
    Enfin j'ai un bouton qui déclenche des graphiques en temps réel, mais l'action click dessus ne fait rien et je n'ai pas de fenêtre de débuggage, est-il possible de l'avoir afin de débuggé ?

    Edit : Voila j'ai reussit à avoir un message d'erreur :
    Nom : trackback.png
Affichages : 810
Taille : 81,6 Ko

    J'imagine que le problème est le chemin, mais je ne sais pas le modifier.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
     
    #!/usr/bin/python
    # -*- coding: utf-8 -*-
    # Python 3
     
    """
    Pas d'accent dans le setup.py, ni dans la description, ni dans les commentaires
     
    Icone sous Windows: il faut:
    => un xxx.ico pour integration dans le exe, avec "icon=xxx.ico"
    => un xxx.png pour integration avec PyQt4 + demander la copie avec includefiles.
    """
     
    import sys, os
    from cx_Freeze import setup, Executable
     
    #############################################################################
    # preparation des options
     
    # chemins de recherche des modules
    path = sys.path
    path += [(r"C:\Users\Nicolas\Desktop\MyApplication")]
    path += [(r"C:\Users\Nicolas\Desktop\MyApplication\WinPython-32bit-3.3.5.0\python-3.3.5\Lib")]
    path += [(r"C:\Users\Nicolas\Desktop\MyApplication\WinPython-32bit-3.3.5.0\python-3.3.5\Lib\site-packages")]
    path += [(r"C:\Users\Nicolas\Desktop\MyApplication\WinPython-32bit-3.3.5.0\python-3.3.5\Lib\site-packages\serial\tools")]
    path += [(r"C:\Users\Nicolas\Desktop\MyApplication\WinPython-32bit-3.3.5.0\python-3.3.5\Lib\site-packages\Trunk_DB_Access")]
    path += [(r"C:\Users\Nicolas\Desktop\MyApplication\WinPython-32bit-3.3.5.0\python-3.3.5\Lib\site-packages\Trunk_DB_Access\Lib")]
    path += [(r"C:\Users\Nicolas\Desktop\MyApplication\WinPython-32bit-3.3.5.0\python-3.3.5\Lib\site-packages\Trunk_DB_Access\ScatterPlotSpeedTest.py")]
     
     
     
    # options d'inclusion/exclusion des modules
    includes = ['pyqtgraph','pyqtgraph.graphicsItems']
    excludes = []
    packages = ['pyqtgraph','pyqtgraph.graphicsItems']
     
    # copier les fichiers et/ou repertoires et leur contenu:
    includefiles = [] # recopier l'icone.png de la fenetre ici
     
    if sys.platform == "win32":
        includefiles += [(r"C:\Users\Nicolas\Desktop\MyApplication\WinPython-32bit-3.3.5.0\python-3.3.5\Lib\site-packages\PySide\plugins","plugins")]
        includefiles += [(r"C:\Users\Nicolas\Desktop\MyApplication\WinPython-32bit-3.3.5.0\python-3.3.5\Lib\site-packages\PySide\translations","translations")]
        includefiles += [(r"C:\Users\Nicolas\Desktop\MyApplication\WinPython-32bit-3.3.5.0\python-3.3.5\Lib\site-packages\pyqtgraph\graphicsItems","graphicsItems")]
        includefiles += [(r"C:\Users\Nicolas\Desktop\MyApplication\WinPython-32bit-3.3.5.0\python-3.3.5\Lib\site-packages\pyqtgraph","pyqtgraph")]
    else:
        pass
     
    binpathincludes = []
    if sys.platform == "linux2":
        # Linux: pour que les bibliotheques de /usr/lib soient copiees aussi
        binpathincludes += ["/usr/lib"]
     
    # construction du dictionnaire des options
    options = {"path": path,
               "includes": includes,
               "excludes": excludes,
               "packages": packages,
               "include_files": includefiles,
               "bin_path_includes": binpathincludes,
               "create_shared_zip": False,
               "include_in_shared_zip": False,
               "compressed": False
               }
     
    # pour inclure sous Windows les dll system necessaires
    if sys.platform == "win32":
        options["include_msvcr"] = True
     
    #############################################################################
    # preparation des cibles
    base = None
    if sys.platform == "win32":
        # plateforme Windows
        base = "Win32GUI" # pour les programmes graphiques
        #base = "Console" # pour les programmes en console
     
    icone = None
    if sys.platform == "win32":
        icone = None # mettre ici l'icone.ico pour integration dans l'exe
     
    cible_1 = Executable(
        script = "C:\\Users\\Nicolas\\Desktop\\MyApplication\\WinPython-32bit-3.3.5.0\\python-3.3.5\\Lib\\site-packages\\Trunk_DB_Access\\database_access.py",
        base = base,
        compress = False,
        copyDependentFiles = True,
        appendScriptToExe = True,
        appendScriptToLibrary = False,
        icon = icone
        )
     
    #############################################################################
    # creation du setup
    setup(
        name = "Db_Access_0.4",
        version = "0.4",
        description = "essai",
        author = "Eove",
        options = {"build_exe": options},
        executables = [cible_1]
        )

    Voici le code adapté (ps y'as des trucs un peu partout mais je fait des tests pour faire marcher mon pyqtgraph)

    Merci de votre aide.

Discussions similaires

  1. .exe standalone application
    Par benooo dans le forum MATLAB
    Réponses: 9
    Dernier message: 19/04/2011, 11h59
  2. Compiler GUI en standalone Application
    Par Nowoday dans le forum Interfaces Graphiques
    Réponses: 3
    Dernier message: 08/04/2011, 20h32
  3. Refaire une application Python sous Django
    Par Jiyuu dans le forum Django
    Réponses: 3
    Dernier message: 04/04/2009, 15h15
  4. repise d'une application python
    Par spinakur dans le forum Django
    Réponses: 3
    Dernier message: 24/12/2008, 09h32
  5. Internationnalisation d'une application Python
    Par leviathan516 dans le forum Général Python
    Réponses: 1
    Dernier message: 22/03/2006, 14h48

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