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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    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
    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 confirmé

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

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 307
    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 averti
    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
    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
    Expert confirmé
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 486
    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 486
    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"...

  5. #5
    Membre averti
    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
    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 ?

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

  7. #7
    Membre averti
    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
    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

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