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
    Profil pro
    Inscrit en
    décembre 2007
    Messages
    3 218
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : décembre 2007
    Messages : 3 218
    Points : 6 218
    Points
    6 218
    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
    Ne jamais remettre au lendemain ce que quelqu'un d'autre peut faire pour vous le jour même...
    La journée internationale de procrastination prévue initialement aujourd'hui, est repoussée à demain...
    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
    Profil pro
    Inscrit en
    décembre 2007
    Messages
    3 218
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : décembre 2007
    Messages : 3 218
    Points : 6 218
    Points
    6 218
    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.
    Ne jamais remettre au lendemain ce que quelqu'un d'autre peut faire pour vous le jour même...
    La journée internationale de procrastination prévue initialement aujourd'hui, est repoussée à demain...
    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