Installation de la bibliothèque d’imagerie Python (PIL) sur Snow Leopard avec la version mise à jour de Python 2.6.2

StackOverflow https://stackoverflow.com/questions/1438270

Question

J'ai une nouvelle installation (démarrée avec un lecteur effacé) de Snow Leopard avec les outils de développement installés lors de l'installation de Snow Leopard.

J'ai ensuite installé Python 2.6.2, en remplacement du python 2.6.1 par défaut de Snow Leopard. J'ai essayé d'installer PIL en:

  1. easy_install
  2. pip
  3. téléchargement de la source et exécution de python setup.py build manuellement.

Tous génèrent la même erreur (lien vers le journal pip : http://drop.io / gi2bgw6 ). J'ai vu d'autres personnes installer avec succès Pilote avec le python 2.6.1 par défaut de Snow Leopard, je ne sais donc pas pourquoi j'ai tant de mal à le faire fonctionner avec la version 2.6.2.

Était-ce utile?

La solution

Le fichier python.org Python a été créé avec un gcc antérieur. Essayez d’utiliser gcc-4.0 au lieu du 4.2 par défaut de SL:

export CC=/usr/bin/gcc-4.0

Voir le problème similaire ici .

Cela dépasse le problème de stdarg. Vous pouvez ensuite rencontrer ultérieurement des problèmes de construction avec diverses bibliothèques dépendantes.

BTW, gcc-4.0 et gcc-4.2 sont tous deux inclus dans le Xcode 3 de Snow Leopard. Aucune installation supplémentaire n'est donc nécessaire.

MISE À JOUR 2011-05: Notez que le nouveau Xcode 4 , publié pour une utilisation expérimentale avec 10.6 et censé être standard avec 10.7, n'inclut plus le support PPC. Ainsi, si vous installez Xcode 4, cette suggestion ne fonctionnera pas. Les options incluent l’utilisation des derniers programmes d’installation Python 2.7.x 64 bits / 32-bin de python.org ou l’installation d’un Python 2.6 et PIL plus récents, ainsi que des diverses bibliothèques tierces utilisant MacPorts, Homebrew ou Fink.

Autres conseils

Le problème que j’ai rencontré est que PIL était compilé avec l’architecture PowerPC (-arch ppc).

Faites ceci avant setup / build / compile:

export ARCHFLAGS="-arch i386"

(En supposant que vous soyez sur i386)

Réponse modifiée

Voici les étapes que j'ai suivies pour installer PIL avec succès sur Mac OS X 10.6 (sans utiliser MacPorts ni Fink).

  1. Installer readline

    cd ~/src
    curl -O ftp://ftp.cwru.edu/pub/bash/readline-6.0.tar.gz
    tar -xvzf readline-6.0.tar.gz
    cd readline-6.0
    ./configure  
    make  
    sudo make install
    
  2. Installez gbdm

    cd ~/src
    curl -O ftp://mirror.anl.gov/pub/gnu/gdbm/gdbm-1.8.3.tar.gz
    tar -xvzf gbdm-1.8.3.tar.gz
    cd gdbm-1.8.3
    # Need to modify Makefile.in
    perl -pi -e 's/BINOWN = bin/BINOWN = root/' Makefile.in
    perl -pi -e 's/BINGRP = bin/BINGRP = wheel/' Makefile.in
    ./configure
    make
    sudo make install
    
  3. Compilez la dernière version 2.6.2+ de Python à partir du référentiel Mercurial

    cd ~/development
    hg clone http://code.python.org/hg/branches/release2.6-maint/ python-release2.6-maint.hg
    cd python-release2.6-main.hg
    ./configure --enable-framework MACOSX_DEPLOYMENT_TARGET=10.6
    make
    sudo make frameworkinstall
    

    Remarque : les erreurs suivantes ont été générées après l'exécution de make . Cependant, j'ai continué car je ne craignais pas de manquer ces modules et j'ai réussi à installer PIL.

    Failed to find the necessary bits to build these modules:
    _bsddb             dl                 imageop         
    linuxaudiodev      ossaudiodev        spwd            
    sunaudiodev                                           
    To find the necessary bits, look in setup.py in detect_modules() for the module's name.
    
    
    Failed to build these modules:
    Nav                                                   
    
    running build_scripts
    
  4. Mise à jour .bash_profile pour le nouveau Python 2.6.2+ et pour virtualenvwrapper

    # Set PATH for MacPython 2.6 if Python2.6 is installed
    if [ -x /Library/Frameworks/Python.framework/Versions/2.6/bin/python2.6 ]; then
        PATH="/Library/Frameworks/Python.framework/Versions/2.6/bin:${PATH}"
        export PATH
    fi
    
    # MDR April 23, 2009: Added for virtualenvwrapper
    if [ -x   /Library/Frameworks/Python.framework/Versions/2.6/bin/virtualenvwrapper_bashrc ]; then
        export WORKON_HOME=$HOME/.virtualenvs
        export PIP_VIRTUALENV_BASE=$WORKON_HOME
        source /Library/Frameworks/Python.framework/Versions/2.6/bin/virtualenvwrapper_bashrc
    fi
    
  5. Installez easy_install, pip, virtualenv et virtualenvwrapper pour Python 2.6.2 +

    curl -O http://peak.telecommunity.com/dist/ez_setup.py
    sudo python ez_setup.py
    sudo easy_install pip
    sudo easy_install virtualenv
    sudo easy_install virtualenvwrapper
    
  6. Créez un fichier virtualenv puis utilisez pip pour installer PIL

    mkvirtualenv pil-test
    cdvirtualenv
    easy_install pip
    pip install http://effbot.org/downloads/Imaging-1.1.6.tar.gz
    

Remarque : je n’ai pas pu installer PIL avec pip install pil , j’ai donc installé à partir de l’URL comme indiqué ci-dessus.

Réponse originale

D'après ce que je peux voir dans votre fichier pip-log.txt , il semble que vous ayez installé Python 2.6.2. Utilisation de la Image du disque d'installation Mac de Python.org publié le 16 avril 2009. Pouvez-vous le confirmer?

Dans le journal du pipeline, gcc a échoué avec le statut de sortie 1. La commande gcc incriminée dans votre journal de pip est la suivante:

gcc -arch ppc -arch i386 -isysroot /Developer/SDKs/MacOSX10.4u.sdk -fno-strict-aliasing -fno-common -dynamic -DNDEBUG -g -O3 -DHAVE_LIBJPEG -DHAVE_LIBZ -I/System/Library/Frameworks/Tcl.framework/Headers -I/System/Library/Frameworks/Tk.framework/Headers -IlibImaging -I/Library/Frameworks/Python.framework/Versions/2.6/include -I/usr/local/include -I/usr/include -I/Library/Frameworks/Python.framework/Versions/2.6/include/python2.6 -c _imaging.c -o build/temp.macosx-10.3-fat-2.6/_imaging.o

Cela semble être un problème lié au changement de la valeur par défaut de l'option -arch de i386 en x86-64 selon Ronald Oussoren dans Message 92083 de Numéro 6802 de Python . Python 2.6.2 est un correctif disponible, mais il n’a pas été intégré à l’image de disque du programme d’installation du Mac.

Votre meilleure solution sans MacPorts ou Fink serait probablement de compiler et d’installer Python à partir de la branche 2.6 de la version Dépôt Mercurial Python ou Dépôt Python Subversion . Selon le Message 92315 de Numéro 6802 , Ronald Oussoren a corrigé le problème dans révision r74686. .

J'ai constaté des erreurs similaires lors de l'utilisation de Python 2.6.2 installé à partir de l'image disque Mac, alors que j'essayais d'installer Fabric dans virtualenv. Je prévois donc de compiler et d'installer à partir de la branche de maintenance de la version 2.6. Si vous le souhaitez, je le mettrai à jour en cas de succès.

10.6 Snow Leopard installe PIL sans soucis et sans conserver MacPorts :)

Étape 1: Installez MacPorts
Étape 2: installer le port sudo py26-pil
Étape 3: mv /opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/* /Library/Python/2.6/site-packages/
Étape 4: Désinstallez MacPorts

Le meilleur des deux mondes?

Les étapes suivantes ont fonctionné pour moi:

$ brew install pip
$ export ARCHFLAGS="-arch i386 -arch x86_64"
$ pip install pil

Il me semble que le " Aucun fichier de ce type " Cette conjonction avec stdarg.h est l’erreur la plus intéressante. Il semble y avoir un fichier d'en-tête manquant. Je ne sais pas comment m'assurer qu'il est installé sur OS X, alors ce n'est qu'une demi-réponse, désolée, mais peut-être que cela vous pousse dans la bonne direction.

Peut-être devriez-vous essayer de pré-construire des binaires universels à partir du site pythonmac

http://pythonmac.org/packages/py25-fat/index.html

Celles-ci sont pour python2.5, avec python2.5 inclus (que vous puissiez ou non être utilisable pour vous), je l'utilise depuis que j'ai eu du mal à utiliser l'auto-compilation PIL avec py2app.

J'ai trouvé une méthode plus simple. port sudo installer python26 sudo port install python_select

Utilisez ensuite python_select, définissez python26 par défaut.

Ensuite, installez PIL normalement.

J'ai pu installer PIP avec Python de SL à l'aide des instructions suivantes:

http://jetfar.com/libjpeg- et-python-imagerie-pil-sur-léopard /

Avez-vous XCode (fourni sur le disque Snow Leopard) installé? Certains composants clés (notamment GCC ) doivent être installés et gérés par XCode

Résolu en 2 étapes:

Étape 1: Xcode désinstallé et installé, suggéré ici: http: // binarylionstudios .com / blog / 2011/01/30 / error-stdarg.h-no-tel-fichier-ou-répertoire /

pour supprimer Xcode correctement, suivez cette réponse: Comment supprimer complètement Xcode 4

  

sudo / Developer / Library / uninstall-devtools --mode = all

utilisez le fichier Xcode.app après le redémarrage de votre Mac

Étape 2: après la réinstallation de xcode, l'installation a échoué

  

impossible d'exécuter gcc-4.2: aucun fichier ou répertoire PIL de ce type

pour résoudre le problème que j'ai suivi ce post: http: //aravir-rose.blogspot. com / 2011/12 / installation-python-27s-imaging-library.html

Bonne chance!

Sous OS X Lion avec le XCode actuel et aucun gcc-4.0, je peux contourner l'erreur stdard.h manquante en définissant les variables d'environnement suivantes:

  

exportation CC = " /usr/bin/llvm-gcc-4.2"

Je ne peux pas dire que je comprends pourquoi cela fonctionne.

Soit dit en passant, cela fonctionne également pour l'oreiller de PIL.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top