Pregunta

Tengo una nueva instalación (comencé con una unidad limpia) de Snow Leopard con las herramientas de desarrollo instaladas durante la instalación de Snow Leopard.

Luego instalé Python 2.6.2, reemplazando el Python 2.6.1 predeterminado de Snow Leopard. Intenté instalar PIL:

  1. easy_install
  2. pip
  3. descargando fuente y ejecutando python setup.py build manualmente.

Todos producen el mismo error (enlace al pip log: http://drop.io / gi2bgw6 ). He visto que otros han tenido éxito instalando PIL usando el Python 2.6.1 predeterminado de Snow Leopard, así que no estoy seguro de por qué tengo tantos problemas para que funcione con 2.6.2.

¿Fue útil?

Solución

El Python.org Python fue construido con un gcc anterior. Intente usar gcc-4.0 en lugar del valor predeterminado de SL de 4.2:

export CC=/usr/bin/gcc-4.0

Vea un problema similar aquí .

Eso supera el problema stdarg. Luego puede encontrar problemas de compilación posteriores con varias bibliotecas dependientes.

Por cierto, gcc-4.0 y gcc-4.2 se incluyen con Xcode 3 de Snow Leopard, por lo que no se necesitan instalaciones adicionales.

ACTUALIZADO 2011-05: Tenga en cuenta que el nuevo Xcode 4 , lanzado para uso experimental con 10.6 y que se espera que sea estándar con 10.7, ya no incluye soporte PPC, por lo tanto, si instala Xcode 4, Esta sugerencia no funcionará. Las opciones incluyen el uso de los nuevos instaladores Python 2.7.x de 64 bits / 32 bin de python.org o la instalación de un nuevo Python 2.6 y PIL y las diversas librerías de terceros usando MacPorts, Homebrew o Fink.

Otros consejos

El problema con el que me topé fue que PIL se estaba compilando contra la arquitectura PowerPC (-arch ppc).

Haga esto antes de configurar / construir / compilar:

export ARCHFLAGS="-arch i386"

(Asumiendo que estás en i386)

Respuesta modificada

Estos son los pasos que tomé para instalar con éxito PIL en Mac OS X 10.6 (sin usar MacPorts o Fink).

  1. Instalar 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. Instalar 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. Compile la última versión de Python 2.6.2+ del Mercurial Repo

    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
    

    Nota : Recibí los siguientes errores después de ejecutar make . Sin embargo, continué porque no me preocupaba perder estos módulos y pude instalar PIL con éxito.

    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. Actualizar .bash_profile para el nuevo Python 2.6.2+ y para 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. Instalar easy_install, pip, virtualenv y virtualenvwrapper para 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. Cree un virtualenv y luego use pip para instalar PIL

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

Nota : No pude instalar PIL usando pip install pil , así que lo instalé desde la URL como se muestra arriba.

Respuesta original

Por lo que puedo ver en su pip-log.txt parece que instaló Python 2.6.2 utilizando la imagen de disco del instalador de Mac de Python.org lanzado el 16 de abril de 2009. ¿Puede confirmar esto?

Desde el registro de pip, gcc falló con el estado de salida 1. El comando ofensivo gcc de su registro de pip es el siguiente:

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

Esto parece ser un problema relacionado con Snow Leopard que cambia el valor predeterminado para la bandera -arch de i386 a x86-64 según Ronald Oussoren en Mensaje 92083 de Python Issue 6802 . Hay un parche disponible en Python 2.6.2, pero no se ha integrado en la imagen de disco del instalador de Mac.

Su mejor solución que no involucra MacPorts o Fink probablemente sería compilar e instalar Python desde la rama de lanzamiento 2.6 desde Mercurial Python Repository o el Subversion Python Repository . De acuerdo con Mensaje 92315 de Problema 6802 , Ronald Oussoren arregló esto en Revisión r74686 .

He estado viendo errores similares al usar Python 2.6.2 instalado desde Mac Disk Image al intentar instalar Fabric en virtualenv, por lo que planeo compilar e instalar desde la rama de mantenimiento de la versión 2.6. Si lo desea, lo actualizaré cuando tenga éxito.

10.6 Snow Leopard instala PIL sin la molestia y sin mantener MacPorts :)

Paso 1: Instalar MacPorts
Paso 2: sudo port install py26-pil
Paso 3: mv /opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/* /Library/Python/2.6/site-packages/
Paso 4: desinstalar MacPorts

¿Lo mejor de ambos mundos?

Los siguientes pasos funcionaron para mí:

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

Me parece que el " No existe tal archivo " es conjunción con stdarg.h es el error más interesante. Parece que falta un archivo de encabezado. No sé cómo asegurarme de que esté instalado en OS X, así que esta es solo la mitad de una respuesta, lo siento, pero tal vez te empuja en la dirección correcta.

Tal vez deberías probar pre-construir binarios universales desde el sitio de Pythonmac

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

Estos son para python2.5, con python2.5 incluido (por lo que puede o no ser utilizable para usted), lo he estado usando desde que tuve problemas para usar PIL de autoconstrucción con py2app.

Encontré un método más simple. sudo port install python26 sudo port install python_select

Luego usa python_select establece python26 como predeterminado.

Luego simplemente instale PIL como de costumbre.

Pude instalar PIP con Python de SL usando estas instrucciones:

http://jetfar.com/libjpeg- y-python-imaging-pil-on-snow-leopard /

¿Tiene XCode (viene en el disco Snow Leopard) instalado? Hay algunos componentes clave (especialmente GCC ) que deben instalarse y que XCode se encarga de usted.

Resuelto en 2 pasos:

Paso 1: Xcode desinstalado e instalado, sugerido aquí: http: // binarylionstudios .com / blog / 2011/01/30 / error-stdarg.h-no-such-file-or-directory /

para eliminar Xcode correctamente, siga esta respuesta: Cómo eliminar completamente Xcode 4

  

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

usa la instalación Xcode.app después de reiniciar tu mac

Paso 2: después de reinstalar xcode, la instalación falló

  

no se puede ejecutar gcc-4.2: No existe tal archivo o directorio PIL

para resolver que seguí esta publicación: http: //aravir-rose.blogspot. com / 2011/12 / installation-python-27s-imaging-library.html

¡Buena suerte!

En OS X Lion con XCode actual y sin gcc-4.0, puedo evitar el error stdard.h faltante configurando las siguientes variables de entorno:

  

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

No puedo decir que entiendo por qué esto funciona.

Por cierto, esto también funciona para la horquilla Pillow de PIL.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top