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

Bibliothèques tierces Python Discussion :

easy_install ujson : gcc fail


Sujet :

Bibliothèques tierces Python

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 93
    Points : 54
    Points
    54
    Par défaut easy_install ujson : gcc fail
    J'ignore si c'est le bon endroit où poster.

    J'ai besoin d'installer ujson sur Mandriva 2011. Ça plante.

    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
    # easy_install ujson
    Searching for ujson
    Reading http://pypi.python.org/simple/ujson/
    Reading https://github.com/jskorpan/ultrajson
    Reading http://www.esn.me
    Reading https://github.com/esnme/ultrajson
    Reading http://github.com/esnme/ultrajson
    Best match: ujson 1.18
    Downloading
    http://pypi.python.org/packages/source/u/ujson/ujson-1.18.zip#md5=8d033858770ff2222a001ee1fcd0ee15
    Processing ujson-1.18.zip
    Writing /tmp/easy_install-Ef8w3R/ujson-1.18/setup.cfg
    Running ujson-1.18/setup.py -q bdist_egg --dist-dir
    /tmp/easy_install-Ef8w3R/ujson-1.18/egg-dist-tmp-ipbdRm
    ./python/objToJSON.c: In function ‘objToJSON’:
    ./python/objToJSON.c:695:3: attention : initialization from incompatible
    pointer type [enabled by default]
    ./python/objToJSON.c:695:3: attention : (near initialization for
    ‘encoder.beginTypeContext’) [enabled by default]
    ./python/objToJSON.c:706:3: attention : initialization from incompatible
    pointer type [enabled by default]
    ./python/objToJSON.c:706:3: attention : (near initialization for
    ‘encoder.releaseObject’) [enabled by default]
    build/temp.linux-i686-2.7/./lib/ultrajsondec.o: In function
    `decode_numeric':
    /tmp/easy_install-Ef8w3R/ujson-1.18/./lib/ultrajsondec.c:279: undefined
    reference to `pow'
    collect2: ld a retourné 1 code d'état d'exécution
    error: Setup script exited with error: command 'gcc' failed with exit
    status 1
    Il paraît qu'il faut ajouter -lm ou quelque chose comme ça mais je ne programme pas à ce niveau.
    Quelqu'un peut-il m'aider ?
    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,

    Juste une idée: je ne connais pas ce module, mais dans son readme, la méthode d'installation recommandée est:

    en console sous root faire (dans le répertoire du logiciel téléchargé) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    python setup.py build install
    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 éprouvé

    Homme Profil pro
    Diverses et multiples
    Inscrit en
    Mai 2008
    Messages
    662
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Diverses et multiples

    Informations forums :
    Inscription : Mai 2008
    Messages : 662
    Points : 1 273
    Points
    1 273
    Par défaut
    -lm est une option du compilateur (de l’éditeur de liens, en fait) lui indiquant d’ajouter la bibliothèque libm à celles dans lesquelles il doit rechercher les items (ici, la fonction pow()) inconnus.

    Le problème étant que easy_install ne semble pas offrir de moyen simple de passer une option de compilation…

    Normalement, il devrait y avoir un fichier Setup dans ujson-1.18. Y repérer la ligne contenant "ultrajsondec.c" et lui rajouter à la fin "-lm"?

    NOTE*: Suggestion "à l’aveugle", en m’appuyant juste sur la doc. Jamais utilisé easy_install ni distutils, en fait…

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 93
    Points : 54
    Points
    54
    Par défaut
    Merci pour vos réponses...

    J'ai essayé build install -> même problème.

    Quant à ajouter -lm dans le fichier setup.p, il n'y a que ça de dispo :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    module1 = Extension('ujson', sources = ['./python/ujson.c',
    './python/objToJSON.c', './python/JSONtoObj.c', './lib/ultrajsonenc.c',
    './lib/ultrajsondec.c'], include_dirs = ['./python', './lib'])
    Ça me paraît difficile...

    Autre(s) idée(s) ?

  5. #5
    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
    Autre idée. Lorsqu'on veut intégrer un nouveau module avec de la compilation, il est en général nécessaire d'installer un paquet de développement de type "python-dev" qui contient les fichiers source en C nécessaires. Mais je ne connais pas mandriva.
    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 éprouvé

    Homme Profil pro
    Diverses et multiples
    Inscrit en
    Mai 2008
    Messages
    662
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Diverses et multiples

    Informations forums :
    Inscription : Mai 2008
    Messages : 662
    Points : 1 273
    Points
    1 273
    Par défaut
    Je ne pense pas que le problème soit le manque de paquet -dev, ici (normalement, dans ce cas, ça coincerait au pre-processing, en ne trouvant pas certains #include, alors que là c’est le linking qui bloque).

    Peut-être remplacer la ligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    module1 = Extension('ujson',
                        sources = ['./python/ujson.c', './python/objToJSON.c', './python/JSONtoObj.c', './lib/ultrajsonenc.c', './lib/ultrajsondec.c'],
                        include_dirs = ['./python', './lib'])
    par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    module1 = Extension('ujson',
                        sources = ['./python/ujson.c', './python/objToJSON.c', './python/JSONtoObj.c', './lib/ultrajsonenc.c', './lib/ultrajsondec.c'],
                        include_dirs = ['./python', './lib'], libraries=['m'])
    dans setup.py?

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 93
    Points : 54
    Points
    54
    Par défaut
    python-devel est déjà installé.

    Effectivement, ajouter libraries=['m'] a résolu le problème.

    Merci !!

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

Discussions similaires

  1. command 'gcc' failed with exit status 1
    Par rezguiinfo dans le forum Debian
    Réponses: 2
    Dernier message: 02/02/2011, 17h01
  2. gcc et win32
    Par MatRem dans le forum Autres éditeurs
    Réponses: 1
    Dernier message: 16/01/2003, 12h22
  3. getch() avec gcc
    Par Jorus dans le forum Autres éditeurs
    Réponses: 5
    Dernier message: 16/12/2002, 14h47
  4. Réponses: 1
    Dernier message: 13/11/2002, 20h34
  5. [Kylix] gcc et kylix
    Par alexsmadja dans le forum EDI
    Réponses: 1
    Dernier message: 28/05/2002, 10h00

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