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: python library not found


Sujet :

Déploiement/Installation Python

  1. #1
    Membre averti
    Femme Profil pro
    Ingénieur informatique scientifique
    Inscrit en
    Mai 2010
    Messages
    313
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur informatique scientifique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mai 2010
    Messages : 313
    Points : 301
    Points
    301
    Par défaut PyInstaller: python library not found
    Bonjour,

    je viens vers vous car malgré mes recherches sur le net et la lecture de posts de gens ayant eu un problème similaire, je n'arrive pas à résoudre mon problème!

    J'ai besoin de créer un fichier exécutable à partir d'un programme python 2.7, sur une machine Linux CentOS 5.10.
    Pour cela j'utilise PyInstaller. Pour le moment je veux juste tester avec un programme bidon que j'ai appelé hello.py:
    Code hello.py : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    #! /usr/bin/env python
    print "Hello World!"

    Malheureusement quand j'exécute la commande
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    pyinstaller --onefile hello.py
    J'ai le message d'erreur suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    raise IOError("Python library nor found!")
    A priori il manque le fichier libpython2.7.so.1.0, effectivement je ne l'ai pas lorsque je fais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ldd /usr/local/bin/python2.7
    Qui me donne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    linux-gate.so.1 =>  (0x00b71000)
    libpthread.so.0 => /lib/libpthread.so.0 (0x0035d000)
    libdl.so.2 => /lib/libdl.so.2 (0x00341000)
    libutil.so.1 => /lib/libutil.so.1 (0x0018b000)
    libm.so.6 => /lib/libm.so.6 (0x00316000)
    libc.so.6 => /lib/libc.so.6 (0x001b7000)
    /lib/ld-linux.so.2 (0x00198000)
    Mais je ne sais pas comment l'obtenir!

    En cherchant sur le net j'ai vu qu'il fallait compiler en "dynamique" mon python 2.7 (même si je n'ai pas trop compris ce que cela signifie), j'ai donc recompilé en faisant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ./configure --prefix=/usr/local --enable-shared=enable
    make
    make install
    Mais cela n'a rien changé.
    Pourriez-vous m'aider sur ce problème?
    Merci d'avance!

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

    Je ne peux pas t'aider sur ce point car il y a longtemps que je n'ai pas travaillé avec CentOS, et de toute façon, je n'utilise pas pyinstaller.

    J'attire ton attention sur le fait que pyinstaller (http://www.pyinstaller.org/) n'existe pas pour Python 3.x, ce qui commence à manquer sérieusement. En ce qui me concerne, je n'invertis plus de temps sur de tels produits.

    Peut-être devrais-tu essayer cx_freeze (http://cx-freeze.sourceforge.net/), et là, je pourrais t'aider.

    En tout cas, sur les Linux, il vaut mieux privilégier les paquets disponibles pour l'OS plutôt que d'installer des sources par compilation: même si ça semble marcher, les dépendances sont quelquefois difficiles à identifier.
    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 averti
    Femme Profil pro
    Ingénieur informatique scientifique
    Inscrit en
    Mai 2010
    Messages
    313
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur informatique scientifique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mai 2010
    Messages : 313
    Points : 301
    Points
    301
    Par défaut
    Bonjour Tyrtamos! Merci de ta réponse

    En effet j'avais vu que PyInstaller ne fonctionnait pas pour Python 3.x mais comme pour mon appli j'utilise python 2.7 je m'était dit que ce n'était pas grave, et il m'avait semblé plus simple d'utilisation que Cx_freeze.

    Quoi qu'il en soit, j'ai fini par résoudre mon problème en téléchargeant la librairie manquante ici:
    http://dl.iuscommunity.org/pub/ius/s...Redhat/5/i386/
    J'ai téléchargé et installé epel-release-5-4.noarch.rpm et ius-release-1.0-11.ius.el5.noarch.rpm.
    J'ai veillé à ce que le fichier libpython2.7.so.1.0 alors créé soit bien dans mon LD_LIBRARY_PATH.
    ça a fonctionné! J'ai pu créer mon exécutable avex PyInstaller sans erreur.

    En tout cas, sur les Linux, il vaut mieux privilégier les paquets disponibles pour l'OS plutôt que d'installer des sources par compilation: même si ça semble marcher, les dépendances sont quelquefois difficiles à identifier.
    Je suis bien d'accord avec ça! malheureusement ici il s'agit de contraintes que je ne peux pas changer: il faut que je fasse tourner mon programme python 2.7 sous CentOS 5 afin de créer un exécutable pour le distribuer sur des machines redHat 5.

    Maintenant il faut que je fasse tourner mon "vrai" programme, qui utilise notamment PyQt4, et non le programme "bidon" hello.py...
    Je pense que ça va me prendre un peu de temps pour faire tourner ça et installer tous les modules manquants!
    Une fois que j'aurai terminé je verrai si j'utilise PyInstaller ou Cx_freeze.

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

Discussions similaires

  1. ld: library not found for -lfl
    Par sosolal dans le forum C
    Réponses: 2
    Dernier message: 23/03/2014, 15h39
  2. ld: library not found for -lX11
    Par michel_36 dans le forum Développement OS X
    Réponses: 2
    Dernier message: 30/03/2013, 13h05
  3. Réponses: 0
    Dernier message: 07/03/2013, 08h47
  4. Réponses: 5
    Dernier message: 28/01/2010, 21h41
  5. [PDA][Motorola] SymbolJavaApi (not found in java.library.path)
    Par air75 dans le forum Développement Mobile en Java
    Réponses: 1
    Dernier message: 15/11/2007, 17h13

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