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

Python Discussion :

Compilation d'un programme python en binaire.


Sujet :

Python

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2012
    Messages : 29
    Points : 11
    Points
    11
    Par défaut Compilation d'un programme python en binaire.
    Bonjour !

    Alors voila mon soucis, aprés de maintes et maintes recherches sur le web, je n'ai pas trouvé de solution !

    Je suis sous Lubuntu, je n'ai pas windows, mais j'aimerais compilé un programme python afin qu'il puisse s’exécuter sans avoir installer python sous linux, et un autre programme .exe pour l’exécuter sous windows. Comment faire ?

    Merci d'avance

  2. #2
    Expert éminent

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 300
    Points : 6 780
    Points
    6 780
    Par défaut
    Salut,

    Tu es donc sur une dérivée Debian et tu n'aurais pas Python installé par défaut ?

    Dur à croire, mais bon.

    Mon conseil, Installe python et oublie l'idée de 'compiler pour un Linux qui n'a pas Python'.

    Pour Windows, je pense que cx_freeze te permet cela à partir de Linux.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2012
    Messages : 29
    Points : 11
    Points
    11
    Par défaut
    Le truc c'est que j'utilise des modules et j'aimerais éviter que les gens ai systématiquement besoin de les installer, cx_freeze gère les modules ?

  4. #4
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2012
    Messages : 29
    Points : 11
    Points
    11
    Par défaut
    Donc j'ai utilise cx_freeze pour un test...

    Voici mon 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
    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
     
    #!/usr/bin/python
    # -*- coding: utf-8 -*-
     
    # source d'inspiration: http://wiki.wxpython.org/cx_freeze
     
    import sys, os
    from cx_Freeze import setup, Executable
     
    #############################################################################
    # preparation des options 
    path = ''
    includes = []
    excludes = []
    packages = []
     
    options = {"path": path,
               "includes": includes,
               "excludes": excludes,
               "packages": packages
               }
     
    #############################################################################
    # preparation des cibles
    base = None
    if sys.platform == "win32":
        base = "Win32GUI"
     
    cible_1 = Executable(
        script = "test.py",
        base = base,
        compress = True,
        icon = None,
        )
     
    #############################################################################
    # creation du setup
    setup(
        name = "test_cx_freeze",
        version = "0.1",
        description = "simple test de cx_freeze avec PyQt4",
        author = "Tyrtamos",
        options = {"build_exe": options},
        executables = [cible_1]
        )
    Et l'erreur ... :
    [rsette@lubuntu-rsette cx_Freeze-4.2.3]$ python setup.py build
    running build
    running build_exe
    Traceback (most recent call last):
    File "setup.py", line 43, in <module>
    executables = [cible_1]
    File "/home/rsette/Téléchargements/cx_Freeze-4.2.3/cx_Freeze/dist.py", line 359, in setup
    distutils.core.setup(**attrs)
    File "/usr/lib/python2.7/distutils/core.py", line 152, in setup
    dist.run_commands()
    File "/usr/lib/python2.7/distutils/dist.py", line 953, in run_commands
    self.run_command(cmd)
    File "/usr/lib/python2.7/distutils/dist.py", line 972, in run_command
    cmd_obj.run()
    File "/usr/lib/python2.7/distutils/command/build.py", line 128, in run
    self.run_command(cmd_name)
    File "/usr/lib/python2.7/distutils/cmd.py", line 326, in run_command
    self.distribution.run_command(command)
    File "/usr/lib/python2.7/distutils/dist.py", line 972, in run_command
    cmd_obj.run()
    File "/home/rsette/Téléchargements/cx_Freeze-4.2.3/cx_Freeze/dist.py", line 230, in run
    metadata = metadata)
    File "/home/rsette/Téléchargements/cx_Freeze-4.2.3/cx_Freeze/freezer.py", line 91, in __init__
    self._VerifyConfiguration()
    File "/home/rsette/Téléchargements/cx_Freeze-4.2.3/cx_Freeze/freezer.py", line 371, in _VerifyConfiguration
    self._GetInitScriptFileName()
    File "/home/rsette/Téléchargements/cx_Freeze-4.2.3/cx_Freeze/freezer.py", line 283, in _GetInitScriptFileName
    raise ConfigError("no initscript named %s", name)
    cx_Freeze.freezer.ConfigError: no initscript named Console

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

    cx_freeze (http://cx-freeze.sourceforge.net/) permet d'avoir des exécutables "standalone" sous Linux et Windows, sans besoin d'installer autres choses.

    Mais il faut Windows pour créer l'exécutable sous Windows, et Linux pour l'exécutable sous Linux, parce que les bibliothèques entrainées ne sont pas les mêmes.

    Sous Linux, je suis arrivé à créer des exécutables complexes qui fonctionnent sur un Linux "brut d'installation", mais avec les restrictions suivantes:
    1- pour entrainer toutes les bibliothèques nécessaires, il est quelquefois nécessaire d'utiliser des options qui ne sont que dans les cx_freeze récents: si la version cx_freeze standard du Linux n'est pas assez récente, il est donc nécessaire de compiler une version moderne au lieu d'utiliser le paquet standard.
    2- je ne sais pas fabriquer un "paquet" (.deb ou .rpm)
    3- de ce fait, je ne sais pas (je n'ai pas essayé) si l'exécutable fait sur Ubuntu (par exemple), fonctionne sans modification sous Suse ou Fedora.

    Pour cx_freeze, j'utilise le mode "setup.py", et j'ai fait quelques tutos:
    - http://python.jpvweb.com/mesrecettes..._pyqt4_windows
    - http://python.jpvweb.com/mesrecettes...ze_pyqt4_linux

    Cette méthode du "setup.py" est intéressante, parce qu'elle conduit à faire évoluer progressivement un "modèle" au fur et à mesure des expériences. Et on peut se débrouiller pour que le setup puisse fonctionner sans modification sur les différentes plateformes (Windows/Linux/MacOSX).

    [edit]: ah, je vois que tu utilises déjà mon "setup.py"...
    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

  6. #6
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2012
    Messages : 29
    Points : 11
    Points
    11
    Par défaut
    Oui, je l'utilise déjà !

    Du coup, d'ou vient mon erreur ?

    Et qu'elle setup.py dois-je utiliser sous linux et sous windows ? Celui que j'ai donné est-il bon ?

    Edit : Il n'y a donc AUCUN moyen de créer un exécutables windows sous linux ?

  7. #7
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 462
    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 462
    Points : 9 249
    Points
    9 249
    Billets dans le blog
    6
    Par défaut
    Comment as-tu installé cx_freeze?
    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

  8. #8
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2012
    Messages : 29
    Points : 11
    Points
    11
    Par défaut
    Je l'ai téléchargé directement puis j'ai mis mon test.py à la racine du dossier

  9. #9
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 462
    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 462
    Points : 9 249
    Points
    9 249
    Billets dans le blog
    6
    Par défaut
    Citation Envoyé par gadgetroch Voir le message
    Je l'ai téléchargé directement puis j'ai mis mon test.py à la racine du dossier
    Précise ta réponse: as-tu installé la version standard de ton Linux (la paquet .dev) ou une autre? Et comment l'as-tu installé?

    Je ne te pose pas la question par hasard, mais à cause de ça: http://code.activestate.com/lists/python-list/171463/.

    Par ailleurs, j'utilise un dérivé d'Ubuntu 11.10 (Mint12), et je n'ai que la version 4.0.1 de cx_freeze, et toi, tu as la 4.2.3.

    Bref, avant de travailler sur le setup, il faut être sûr de l'installation du cx_freeze!
    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

  10. #10
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2012
    Messages : 29
    Points : 11
    Points
    11
    Par défaut
    J'ai correctement installé cx_freeze, mais j'ai un autre type d'erreur... :
    [rsette@lubuntu-rsette ~]$ python setup.py build
    running build
    running build_exe
    copying /usr/lib/pymodules/python2.7/cx_Freeze/bases/Console -> build/exe.linux-x86_64-2.7/test
    copying /usr/lib/libpython2.7.so.1.0 -> build/exe.linux-x86_64-2.7/libpython2.7.so.1.0
    Traceback (most recent call last):
    File "setup.py", line 43, in <module>
    executables = [cible_1]
    File "/usr/lib/pymodules/python2.7/cx_Freeze/dist.py", line 278, in setup
    distutils.core.setup(**attrs)
    File "/usr/lib/python2.7/distutils/core.py", line 152, in setup
    dist.run_commands()
    File "/usr/lib/python2.7/distutils/dist.py", line 953, in run_commands
    self.run_command(cmd)
    File "/usr/lib/python2.7/distutils/dist.py", line 972, in run_command
    cmd_obj.run()
    File "/usr/lib/python2.7/distutils/command/build.py", line 128, in run
    self.run_command(cmd_name)
    File "/usr/lib/python2.7/distutils/cmd.py", line 326, in run_command
    self.distribution.run_command(command)
    File "/usr/lib/python2.7/distutils/dist.py", line 972, in run_command
    cmd_obj.run()
    File "/usr/lib/pymodules/python2.7/cx_Freeze/dist.py", line 165, in run
    freezer.Freeze()
    File "/usr/lib/pymodules/python2.7/cx_Freeze/freezer.py", line 410, in Freeze
    self.compress, self.copyDependentFiles)
    File "/usr/lib/pymodules/python2.7/cx_Freeze/freezer.py", line 333, in _WriteModules
    initModule = finder.IncludeFile(initScript, "cx_Freeze__init__")
    File "/usr/lib/pymodules/python2.7/cx_Freeze/finder.py", line 386, in IncludeFile
    deferredImports)
    File "/usr/lib/pymodules/python2.7/cx_Freeze/finder.py", line 259, in _LoadModule
    module.code = compile(fp.read() + "\n", path, "exec")
    TypeError: compile() expected string without null bytes

    Je reposte mon 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
    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
     
    #!/usr/bin/python
    # -*- coding: utf-8 -*-
     
    # source d'inspiration: http://wiki.wxpython.org/cx_freeze
     
    import sys, os
    from cx_Freeze import setup, Executable
     
    #############################################################################
    # preparation des options 
    path = ''
    includes = []
    excludes = []
    packages = []
     
    options = {"path": path,
               "includes": includes,
               "excludes": excludes,
               "packages": packages
               }
     
    #############################################################################
    # preparation des cibles
    base = None
    if sys.platform == "win32":
        base = "Win32GUI"
     
    cible_1 = Executable(
        script = "test.py",
        base = base,
        compress = True,
        icon = None,
        )
     
    #############################################################################
    # creation du setup
    setup(
        name = "test_cx_freeze",
        version = "0.1",
        description = "simple test de cx_freeze avec PyQt4",
        author = "Tyrtamos",
        options = {"build_exe": options},
        executables = [cible_1]
        )
    Je crois que ça vient de la variables path, mais n'ayant aucune bibliotheques, pour le moment, j'ignore quoi mettre

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

    Essaie au moins de traiter par cx_freeze un programme du genre "print 'coucou' " .

    Le code (fichier appelé: "printcoucou.py"):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    #!/usr/bin/python
    # -*- coding: utf-8 -*-
    # Python 2.7
     
    print "coucou"
    Et le setup.py:

    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
    #!/usr/bin/python
    # -*- coding: utf-8 -*-
    # Python 2.7
     
    import sys, os
    from cx_Freeze import setup, Executable
     
    #############################################################################
    # preparation des options 
     
    # chemins de recherche des modules
    path = sys.path
     
    # options d'inclusion/exclusion des modules
    includes = []
    excludes = []
    packages = []
     
    # copier les fichiers et/ou répertoires et leur contenu:
    includefiles = []
     
    # construction du dictionnaire des options
    options = {"path": path,
               "includes": includes,
               "excludes": excludes,
               "packages": packages,
               "include_files": includefiles
               }
     
    #############################################################################
    # preparation des cibles
    base = None
     
    # à mettre en commentaire pour un programme 'console' pour Windows
    #if sys.platform == "win32":
    #    base = "Win32GUI"
     
    cible_1 = Executable(
        script = "printcoucou.py",
        base = base,
        compress = True,
        icon = None,
        )
     
    #############################################################################
    # creation du setup
    setup(
        name = "printcoucou",
        version = "1",
        description = "printcoucou",
        author = "Tyrtamos",
        options = {"build_exe": options},
        executables = [cible_1]
        )
    Ce code et ce setup fonctionnent sans modification sur Windows 7 et sur mon Linux "Mint 12" (compatible Ubuntu 11.10).

    Sur Mint 12, il a cependant fallu que j'installe cx_freeze par compilation des sources, car le paquet standard proposé ne fonctionnait qu'avec Python 2.6 alors que le Python par défaut est le 2.7. Il était par ailleurs trop ancien (4.0.1 au lieu de 4.2.3).

    Si le "printcoucou" fonctionne, on pourra aller plus loin dans l'analyse des erreurs. S'il ne fonctionne pas, il y a un problème d'installation à résoudre.
    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

  12. #12
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2012
    Messages : 29
    Points : 11
    Points
    11
    Par défaut
    Apres un python setup.py build, j'ai toujours la même erreur... :

    [rsette@lubuntu-rsette Python]$ python setup.py build
    running build
    running build_exe
    creating directory build/exe.linux-x86_64-2.7
    copying /usr/lib/pymodules/python2.7/cx_Freeze/bases/Console -> build/exe.linux-x86_64-2.7/printcoucou
    copying /usr/lib/libpython2.7.so.1.0 -> build/exe.linux-x86_64-2.7/libpython2.7.so.1.0
    Traceback (most recent call last):
    File "setup.py", line 53, in <module>
    executables = [cible_1]
    File "/usr/lib/pymodules/python2.7/cx_Freeze/dist.py", line 278, in setup
    distutils.core.setup(**attrs)
    File "/usr/lib/python2.7/distutils/core.py", line 152, in setup
    dist.run_commands()
    File "/usr/lib/python2.7/distutils/dist.py", line 953, in run_commands
    self.run_command(cmd)
    File "/usr/lib/python2.7/distutils/dist.py", line 972, in run_command
    cmd_obj.run()
    File "/usr/lib/python2.7/distutils/command/build.py", line 128, in run
    self.run_command(cmd_name)
    File "/usr/lib/python2.7/distutils/cmd.py", line 326, in run_command
    self.distribution.run_command(command)
    File "/usr/lib/python2.7/distutils/dist.py", line 972, in run_command
    cmd_obj.run()
    File "/usr/lib/pymodules/python2.7/cx_Freeze/dist.py", line 165, in run
    freezer.Freeze()
    File "/usr/lib/pymodules/python2.7/cx_Freeze/freezer.py", line 410, in Freeze
    self.compress, self.copyDependentFiles)
    File "/usr/lib/pymodules/python2.7/cx_Freeze/freezer.py", line 333, in _WriteModules
    initModule = finder.IncludeFile(initScript, "cx_Freeze__init__")
    File "/usr/lib/pymodules/python2.7/cx_Freeze/finder.py", line 386, in IncludeFile
    deferredImports)
    File "/usr/lib/pymodules/python2.7/cx_Freeze/finder.py", line 259, in _LoadModule
    module.code = compile(fp.read() + "\n", path, "exec")
    TypeError: compile() expected string without null bytes

    Pourtant l'installation de mon cx_freeze a été faite par ubuntu, demonstration :

    [rsette@lubuntu-rsette Python]$ sudo apt-get install cx-freeze
    Lecture des listes de paquets... Fait
    Construction de l'arbre des dépendances
    Lecture des informations d'état... Fait
    cx-freeze est déjà la plus récente version disponible.
    0 mis à jour, 0 nouvellement installés, 0 à enlever et 0 non mis à jour.

    Edit : Je crois que j'ai aussi un problème de 2.7 et 2.6...

  13. #13
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 462
    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 462
    Points : 9 249
    Points
    9 249
    Billets dans le blog
    6
    Par défaut
    Ça y est, ça marche!!!

    J'ai installé Lubuntu 11.10 en 64bits (lubuntu-11.10-desktop-amd64.iso) en machine virtuelle:

    - Le Python installé par défaut est la version 2.7.2

    - Le paquet cx_freeze proposé en standard est l'ancienne version 4.0.1, et demande l'installation de Python 2.6 au titre des dépendances: il faut bien entendu refuser => c'est la cause des difficultés.

    Voilà donc ce qu'il faut faire pour que ça marche:

    1- désinstaller le cx_freeze actuel qui n'est pas bon. Ce serait bien de vérifier que l'interpréteur Python 2.6 sera aussi désinstallé, ou au moins désactivé. Cela veut dire que si on fait "python" dans une console, c'est bien la version 2.7 qui arrive. Si ce n'est pas le cas: ne pas aller plus loin et demande ici ce qu'il faut faire!

    2- installer le paquet python-dev (important!).

    3- télécharger les sources de cx_freeze ici: http://prdownloads.sourceforge.net/c...ar.gz?download

    4- désarchiver l'archive dans, par exemple, /home/utilisateur=toi/téléchargements, ce qui va créer un sous-répertoire "cx_Freeze-4.2.3"

    5- ouvrir une console et se placer dans ce sous-répertoire avec (nom d'utilisateur à corriger):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cd /home/utilisateur=toi/téléchargements/cx_Freeze-4.2.3
    6- dans cette console, exécuter les 2 lignes suivantes:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    python setup.py build
    sudo python setup.py install
    Il ne devrait pas y avoir d'erreur (en tout cas, je n'en ai pas eu). Et s'il en a pas: tu as le dernier cx_freeze installé!


    Il faut ensuite te placer, toujours en console, dans le répertoire dans lequel il y a le script "printcoucou.py" et le "setup.py", et faire:

    Et ça devrait marcher sans erreur. Se placer ensuite en console dans le sous-répertoire build/exe.linux-x86_64-2.7, et faire:

    Et ça devrait afficher "coucou"!

    A toi de jouer!
    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

  14. #14
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2012
    Messages : 29
    Points : 11
    Points
    11
    Par défaut
    En effet ça fonctionne !!!

    J'ai mon printcoucou

    Alors maintenant voici mes questions...

    1. Puis-je inclure pygame, imagedraw, math et bien d'autres pour compiler une interface graphique ?

    2. Puis je creer un .exe ???

  15. #15
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 462
    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 462
    Points : 9 249
    Points
    9 249
    Billets dans le blog
    6
    Par défaut
    Réponse au point 1: tu fais comme moi: tu essayes! Et au fur et à mesure des erreurs, tu corriges ton setup.py ou même, dans certains cas, ton code Python. J'ai mis à disposition ma petite expérience du sujet (application en PyQt4 avec QtSql sur Linux) ici: http://python.jpvweb.com/mesrecettes...ze_pyqt4_linux.

    Réponse au point 2: pour faire un "exe" Windows, il faut faire le traitement de cx_freeze sur Windows! Parce que les bibliothèques entrainées ne sont pas les mêmes. Mais tu peux toujours essayer avec "wine" sous Linux. Autre solution: installer une machine virtuelle comme virtualbox sur ton linux, et installer dedans un windows (à partir de son CD) en virtuel. Cependant, il faut une machine pas trop limitée. Autre solution: faire ça chez un copain qui a Windows...
    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

  16. #16
    Expert éminent
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    3 823
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 823
    Points : 7 119
    Points
    7 119
    Par défaut
    Puis je creer un .exe ???
    Il y a aussi la solution cython

    Avec son option --embed, tu crées un exe.

    Voici un tuto très bien fait et fonctionnel
    Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
    La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)

  17. #17
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2012
    Messages : 29
    Points : 11
    Points
    11
    Par défaut
    Citation Envoyé par fred1599 Voir le message
    Il y a aussi la solution cython

    Avec son option --embed, tu crées un exe.

    Voici un tuto très bien fait et fonctionnel
    Mais j'ai toujours des dépendances ! Or si une personne n'a pas de librairie python ça craint

    De plus, je peux créer un exécutable mais pas de .exe sous linux, ou bien ?

  18. #18
    Expert éminent
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    3 823
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 823
    Points : 7 119
    Points
    7 119
    Par défaut
    De plus, je peux créer un exécutable mais pas de .exe sous linux, ou bien ?
    Evidemment non! Mais cx_freeze c'est pareil.

    Maintenant si tu es sous windows, cython transformera ton fichier c en exe.

    Mais j'ai toujours des dépendances ! Or si une personne n'a pas de librairie python ça craint
    Euh... Si tu le transformes en exe, il y a plus de dépendances.

    Enfin comme c'est un peu plus compliqué que cx_freeze, continue là dessus.

    Surtout que je n'ai pas vu ton code et que je ne sais pas si c'est faisable ou pas.
    Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
    La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)

  19. #19
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2012
    Messages : 29
    Points : 11
    Points
    11
    Par défaut
    Citation Envoyé par fred1599 Voir le message

    Enfin comme c'est un peu plus compliqué que cx_freeze, continue là dessus.
    Hum... Le truc c'est que j'ignore commence insérer imagedraw dans cx_freeze...

  20. #20
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 462
    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 462
    Points : 9 249
    Points
    9 249
    Billets dans le blog
    6
    Par défaut
    Citation Envoyé par gadgetroch Voir le message
    Hum... Le truc c'est que j'ignore commence insérer imagedraw dans cx_freeze...
    imagedraw est un module? Alors tu peux au moins essayer de l'ajouter aux modules dans le setup.py:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    includes = ["imagedraw"]
    Ou, si c'est un package:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    packages = ["imagedraw"]
    Bref, il faut regarder un peu la doc: http://cx-freeze.sourceforge.net/cx_Freeze.html (oui, je sais, elle n'est pas terrible...) et essayer des trucs. Tu auras des erreurs, mais tu ne casseras rien. Sinon tu n'avanceras pas dans ton projet.
    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

Discussions similaires

  1. compiler un programme Python pour accélérer son exécution
    Par elodouwen dans le forum Général Python
    Réponses: 15
    Dernier message: 27/11/2017, 14h29
  2. Réponses: 145
    Dernier message: 15/02/2009, 11h51
  3. compilation d'un programme à partir d'un autre programme??
    Par Naruseb dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 11/08/2005, 15h05
  4. [Lien]erreur dans mon programme python
    Par durnambule dans le forum Général Python
    Réponses: 11
    Dernier message: 29/01/2004, 14h59

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