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 :

PyInstaller sous lunix


Sujet :

Déploiement/Installation Python

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Février 2011
    Messages
    297
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 297
    Points : 93
    Points
    93
    Par défaut PyInstaller sous lunix
    Bonjour
    juste une petite question , est ce qu'il existe un logiciel qui génère un exécutable du code source python qui fonction à la fois sous Windows que sous lunix

    j'ai installer pyinstaller sous windows et j'arrive à générer l’exécutable de mon code python mais le problème que cet exécutable est d’extension .exe donc il fonctionne seulement sous Windows pas sous Lunix
    merci

  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
    Sous Linux, tu ne dois pas nécessairement installer un programme Python dans le sens Windows du terme.

    L'utilisateur copie simplement les fichiers du programme dans son répertoire personnel et peut directement lancer le script principal de l'appli.

    Évidement, une installation dans le dossier /usr selon les règles afin que tous les utilisateurs puissent utiliser le programme est préférable et surtout si il y a des dépendances à prévoir, des bibliothèques tierces par exemple ou encore pour avoir une entrée dans le menu des applications.

    Ceci, cependant, se fait par le biais de paquetages dont la forme et par conséquent la construction, varient selon la distribution. Deban, OpenSuze, Archlinux etc.

    Donc, en gros, tu peux directement tester sous Linux un programme Python sans l'installer, ni créer d'exe d'aucune forme, et garder la question d'une instal pour plus tard.

    Je ne dis pas que ton programme fonctionnera d'office sous Linux, faudra sans doute quelques ajustements.


    ...

    Tout ceci est valable aussi pour Lunix.

  3. #3
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2011
    Messages
    180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2011
    Messages : 180
    Points : 321
    Points
    321
    Par défaut cx_freeze, mais...
    Salut,

    Entièrement d'accord avec Vins, sous Linux, il n'y a pas vraiment de raison
    de "geler" le code python pour le rendre exécutable.

    Cela dit, il y quand même moyen de le faire via cx_Freeze. Si le script
    de "compilation" peut être commun avec celui utilisé par la version windows,
    le résultat n'est en aucun casinterchangeable. Sauf, évidement, à faire tourner l'exe dans un Wine (je ne l'ai personnellement jamais testé)

    Encore une fois, il vaut mieux, quand c'est possible, distribuer ton programme
    en mode source (du moins sous Linux). Sous Windows, et dans un réseau d'entreprise, il peu par contre être judicieux de protéger un programme contre
    les modifications des petits malins... (Sans connotation péjorative).

    A bientôt

  4. #4
    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,

    Comme je travaille essentiellement en multiplateforme (au moins Windows-Linux), j'utilise cx_freeze. Et avec cx-freeze, j'utilise la méthode avec "setup.py", et je fais en sorte que le même setup.py puisse être utilisé sans modification sous Windows et Linux.

    Sous Windows, après avoir utilisé cx_freeze, je crée une version installable avec "Inno setup". J'obtiens alors un seul fichier .exe que je peux transmettre, et qui s'installe/désinstalle facilement comme n'importe quel logiciel Windows.

    Sous Linux, je ne sais pas créer de "paquet" .rpm, .deb (mais j'aimerais bien y arriver un jour...), et je me suis donc limité à la version exécutable à recopier quelque part.

    Pour obtenir cette version exécutable avec cx_freeze sous Linux, je m'étais donné comme objectif de pouvoir l'exécuter sur un autre linux "brut d'installation", c'est à dire qui n'a pas les bibliothèques nécessaires comme PyQt4, voire qui n'a pas la bonne version de Python pré-installée. Et ça, ça n'a pas été facile, parce que l'intégration de certaines bibliothèques nécessite une instruction de cx_freeze qui n'existe que dans une version récente: il faut donc compiler un cx_freeze récent au lieu d'installer celui prévu!

    Avec ça, j'ai pu vérifier qu'un gros programme PyQt4 (10000 lignes de code), ainsi rendu exécutable sous Ubuntu avec cx_freeze, fonctionnait parfaitement sur un Ubuntu "brut d'installation" (donc sans PyQt4).

    Bref, tout ça marche très bien, et mes petites expériences sur le sujet se trouvent ici:

    http://pyqt.developpez.com/tutoriels...pyqt4/windows/

    http://pyqt.developpez.com/tutoriels...e-pyqt4/linux/

    Ainsi, bien sûr, que sur mon site: http://python.jpvweb.com/mesrecettespython/
    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

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Février 2011
    Messages
    297
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 297
    Points : 93
    Points
    93
    Par défaut
    je viens de tester les étapes decrites par votre lien
    l'archive de cx_Freeze je les desarchivé sur le Bureau .
    quand je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     sudo python setup.py install
    j'ai plein d'erreur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    source/util.c:6:20: error: Python.h: Aucun fichier ou dossier de ce type
    source/util.c:405: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘*’ token
    source/util.c:419: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘g_ModuleMethods’
    source/util.c:456: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘*’ token
    source/util.c: In function ‘initutil’:
    source/util.c:490: warning: implicit declaration of function ‘Module_Initialize’
    error: command 'gcc' failed with exit status 1

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Février 2011
    Messages
    297
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 297
    Points : 93
    Points
    93
    Par défaut
    le dossier desarchivé je dois le placer ou exactement dans mon repertoire de projet
    car là j'ai une erreur quand je lance la commande l'erreur est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    raceback (most recent call last):
      File "setup.py", line 7, in <module>
        from cx_Freeze import setup, Executable
    ImportError: No module named cx_Freeze

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Février 2011
    Messages
    297
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 297
    Points : 93
    Points
    93
    Par défaut
    dans mon fihcier setup.py crée j'ai rajouté cette ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    from cx_Freeze-4.2.2.cx_Freeze import setup, Executable
    car mon fichier cx_Freeze se trouve dans le repertoire cx_Freeze-4.2.2
    mais j'ai toujours une erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    python setup.py build
      File "setup.py", line 7
        from cx_Freeze-4.2.2.cx_Freeze import setup, Executable
                      ^
    SyntaxError: invalid syntax

  8. #8
    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,

    Tu mélanges les étapes!

    1- installation de cx_freeze par compilation

    Comme c'est marqué dans mon tuto, tu te places dans le répertoire cx_Freeze-4.2.2 qui ne contient que les sources désarchivées de cx_Freeze. Cela n'a rien à voir pour l'instant avec ton projet, ni même avec PyQt4, et le "setup.py" de ce répertoire n'est pas le même que le "setup.py" de ton projet.

    Pour que ça marche, tu dois avoir déjà installé python-dev.

    Après avoir exécuté les 2 lignes de code et si pas d'erreur, cx_Freeze est installé. Pour le vérifier, tu lances idle (par exemple), et tu fais: "import cx_Freeze". Si ça donne une erreur, cx_Freeze n'est pas correctement installé.

    2- après, et après seulement, tu peux continuer ton projet, et dans ce cas, tu te places avec une console dans le répertoire de ton projet, celui qui contient le setup.py que tu as édité et qui va utiliser le cx_Freeze installé précédemment.

    Quand ça ne marche pas, tu gagnerais du temps à relire le tuto...
    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

  9. #9
    Membre expérimenté
    Avatar de Luke spywoker
    Homme Profil pro
    Etudiant informatique autodidacte
    Inscrit en
    Juin 2010
    Messages
    1 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Etudiant informatique autodidacte

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 077
    Points : 1 742
    Points
    1 742
    Par défaut
    C'est bizarre moi j'utilise Pyinstaller Sous Linux pour compiler...
    Tu peut télécharger le *.tar ici http://www.pyinstaller.org/
    Mais je crois etre hors sujet.
    Pour faire tes armes:
    Use du présent pour construire ton futur sinon use de ce que tu as appris auparavant.
    Et sois toujours bien armé avant de te lancer.
    Le hasard ne sourit qu'aux gens préparés...
    Site: Website programmation international (www.open-source-projects.net)
    Site: Website imagerie 3D (www.3dreaming-imaging.net)
    Testez aux moins pendant une semaine l'éditeur avec terminaux intégrées it-edit Vous l'adopterai sûrement !
    FUN is HARD WORK !!!

Discussions similaires

  1. comment peut-on avoir Windows sous Lunix
    Par lionel84 dans le forum Mandriva / Mageia
    Réponses: 21
    Dernier message: 24/12/2008, 14h54
  2. mapping mémoire sous lunix
    Par asma_tunisienne dans le forum Autres systèmes
    Réponses: 0
    Dernier message: 07/08/2008, 14h27
  3. Réponses: 1
    Dernier message: 01/11/2007, 19h14
  4. pyinstaller sous Linux
    Par jbjweb dans le forum Déploiement/Installation
    Réponses: 1
    Dernier message: 20/02/2007, 21h00

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