Domanda

Ho una nuova installazione (iniziata con un'unità cancellata) di Snow Leopard con gli strumenti per sviluppatori installati durante l'installazione di Snow Leopard.

Ho quindi installato Python 2.6.2, sostituendo Python 2.6.1 predefinito di Snow Leopard. Ho provato a installare PIL da:

  1. easy_install
  2. pip
  3. scaricando sorgente ed eseguendo python setup.py build manualmente.

Tutti generano lo stesso errore (collegamento al registro pip : http://drop.io / gi2bgw6 ). Ho visto che altri hanno avuto successo nell'installazione di PIL usando il python 2.6.1 predefinito di Snow Leopard, quindi non sono sicuro del motivo per cui ho così tanti problemi a farlo funzionare con 2.6.2.

È stato utile?

Soluzione

Python.org Python è stato creato con una versione precedente di gcc. Prova a usare gcc-4.0 invece del predefinito 4.2 di SL:

export CC=/usr/bin/gcc-4.0

Vedi problema simile qui .

Che supera il problema di stdarg. È quindi possibile riscontrare problemi di compilazione successivi con varie librerie dipendenti.

BTW, gcc-4.0 e gcc-4.2 sono entrambi inclusi con l'Xcode 3 di Snow Leopard, quindi non sono necessarie installazioni aggiuntive.

AGGIORNATO 2011-05: Nota che il più recente Xcode 4 , rilasciato per uso sperimentale con 10.6 e previsto come standard con 10.7, non include più il supporto PPC, quindi, se installi Xcode 4, questo suggerimento non funzionerà. Le opzioni includono l'uso dei più recenti programmi di installazione Python 2.7.x a 64 bit / 32 bin di python.org o l'installazione di un Python 2.6 e PIL più recenti e le varie librerie di terze parti che utilizzano MacPorts, Homebrew o Fink.

Altri suggerimenti

Il problema che ho riscontrato era che PIL veniva compilato contro l'architettura PowerPC (-arch ppc).

Fallo prima di setup / build / compile:

export ARCHFLAGS="-arch i386"

(Supponendo che tu sia su i386)

Risposta modificata

Ecco i passaggi che ho seguito per installare con successo PIL su Mac OS X 10.6 (senza usare MacPorts o Fink).

  1. Installa 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. Installa 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. Compila l'ultimo Python 2.6.2+ dal 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 : ho ricevuto i seguenti errori dopo aver eseguito make . Tuttavia, ho continuato perché non ero preoccupato di perdere questi moduli e sono stato in grado di installare con successo 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. Aggiorna .bash_profile per il nuovo Python 2.6.2+ e per 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. Installa easy_install, pip, virtualenv e virtualenvwrapper per 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. Crea un virtualenv e poi usa pip per installare PIL

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

Nota : non sono stato in grado di installare PIL usando pip install pil , quindi ho installato dall'URL come mostrato sopra.

Risposta originale

Da quello che posso vedere nel tuo pip-log.txt sembra che tu abbia installato Python 2.6.2 utilizzando Immagine disco di installazione Mac da Python.org rilasciato il 16 aprile 2009. Puoi confermarlo?

Dal registro pip, gcc non è riuscito con lo stato di uscita 1. Il comando gcc offensivo dal registro pip è il seguente:

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

Questo sembra essere un problema relativo a Snow Leopard che modifica il valore predefinito per la bandiera -arch da i386 a x86-64 secondo Ronald Oussoren in Messaggio 92083 di Python Issue 6802 . È disponibile una patch Python 2.6.2, ma non è stata integrata nell'immagine disco del programma di installazione Mac.

La migliore soluzione che non coinvolge MacPorts o Fink sarebbe probabilmente quella di compilare e installare Python dal ramo di rilascio 2.6 dal Mercurial Python Repository o Subversion Python Repository . Secondo Messaggio 92315 di Numero 6802 , Ronald Oussoren ha risolto questo problema in Revisione r74686 .

Ho visto errori simili utilizzando Python 2.6.2 installato dall'immagine disco Mac mentre provavo a installare Fabric in un virtual virtual, quindi ho intenzione di compilare e installare dal ramo di manutenzione della versione 2.6. Se lo desideri, aggiornerò quando avrà successo.

10.6 Snow Leopard installa PIL senza problemi e senza mantenere MacPorts :)

Passaggio 1: installa MacPorts
Passaggio 2: installare la porta sudo py26-pil
Passaggio 3: mv /opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/* /Library/Python/2.6/site-packages/
Passaggio 4: disinstallare MacPorts

Il meglio dei due mondi?

I seguenti passaggi hanno funzionato per me:

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

Mi sembra che il "Nessun file di questo tipo" è congiuntamente a stdarg.h è l'errore più interessante. Sembra che manchi un file di intestazione. Non so come assicurarmi che sia installato su OS X, quindi questa è solo una mezza risposta, mi dispiace, ma forse ti spinge nella giusta direzione.

Forse dovresti provare i binari universali pre-compilati dal sito pythonmac

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

Questi sono per python2.5, con python2.5 incluso (quindi può o non può essere utilizzabile per te), lo sto usando da quando ho avuto problemi ad usare il build self PIL con py2app.

Ho trovato un metodo più semplice. sudo port installa python26 sudo port install python_select

Quindi utilizzare python_select impostare python26 come predefinito.

Quindi installa PIL normalmente.

Sono stato in grado di installare PIP con Python di SL usando queste istruzioni:

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

Hai XCode (disponibile sul disco Snow Leopard) installato? Ci sono alcuni componenti chiave (in particolare GCC ) che devono essere installati quale XCode gestisce per te.

Risolto in 2 passaggi:

Passaggio 1: Xcode disinstallato e installato, suggerito qui: http: // binarylionstudios .com / blog / 2011/01/30 / error-stdarg.h-no-come-file-o-directory /

per rimuovere Xcode segui correttamente questa risposta: Come rimuovere completamente Xcode 4

  

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

usa Xcode.app dopo aver riavviato il tuo mac

Passaggio 2: dopo la reinstallazione di xcode, l'installazione non è riuscita

  

impossibile eseguire gcc-4.2: nessun file o directory PIL

per risolvere il fatto che ho seguito questo post: http: //aravir-rose.blogspot. com / 2011/12 / installazione-python-27s-imaging-library.html

Buona fortuna!

Su OS X Lion con XCode corrente e senza gcc-4.0 sono in grado di aggirare l'errore mancante stdard.h impostando le seguenti variabili di ambiente:

  

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

Non posso dire di aver capito perché funziona.

A proposito, funziona anche con la forcella Pillow di PIL.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top