Instalando o Python Imaging Library (PIL) no Snow Leopard com atualizados Python 2.6.2
-
08-07-2019 - |
Pergunta
Eu tenho uma nova instalação (iniciado com uma unidade limpou) do Snow Leopard com as ferramentas de desenvolvimento instaladas durante a instalação do Snow Leopard.
Eu então instalado o Python 2.6.2, substituindo o python padrão Snow Leopard 2.6.1. Eu tentei instalar PIL por:
-
easy_install
-
pip
- download de fonte e correndo
python setup.py build
manualmente.
Todos produzir o mesmo erro (link para o log pip
: http://drop.io/gi2bgw6 ) . Eu vi outros tiveram sucesso instalando PIL usando o python padrão Snow Leopard 2.6.1, então eu não sei por que eu estou tendo tanta dificuldade para fazê-la funcionar com 2.6.2.
Solução
O python.org Python foi construído com um gcc mais cedo. Tente usar gcc-4.0 em vez do padrão de 4,2 do SL:
export CC=/usr/bin/gcc-4.0
Veja problema semelhante aqui .
Isso consegue passar o problema stdarg. Você pode então executar em problemas compilação posterior com várias bibliotecas dependentes.
BTW, gcc-4.0 e gcc-4.2 são ambos incluídos com o Xcode do Snow Leopard 3 instalações de forma que nenhum adicionais são necessários.
ATUALIZADO 2011-05: Note, que o mais recente Xcode 4 , liberado para uso experimental com 10,6 e espera que seja padrão com 10,7, já não inclui suporte PPC por isso, se você instalar o Xcode 4, esta sugestão não vai funcionar. As opções incluem usando o mais recente 64-bit / 32-bin Python 2.7.x instaladores de python.org ou instalar um Python mais recente 2.6 e PIL e as várias libs 3-parte usando MacPorts, Homebrew, ou Fink.
Outras dicas
O problema que eu tive foi que PIL estava sendo compilado com a arquitetura PowerPC (PPC -arch).
Faça isso antes de setup / build / compilação:
export ARCHFLAGS="-arch i386"
(Supondo que você está em i386)
Modificado Resposta ??h1>
Aqui estão os passos que eu tomei para instalar com êxito PIL no Mac OS X 10.6 (sem usar MacPorts ou Fink).
-
Instale 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
-
Instale 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
-
compilar o mais recente Python 2.6.2+ do 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 ??strong>: Eu não receber os seguintes erros após a execução
make
. No entanto, eu continuei como eu não estava preocupado em perder esses módulos, e eu era capaz de instalar com sucesso 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
-
Atualização .bash_profile para o novo Python 2.6.2+ e 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
-
Instale easy_install, pip, virtualenv e 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
-
Criar um virtualenv e depois usar pip para instalar PIL
mkvirtualenv pil-test cdvirtualenv easy_install pip pip install http://effbot.org/downloads/Imaging-1.1.6.tar.gz
Nota ??strong>:. Eu não era capaz de instalar PIL usando pip install pil
, então eu instalado a partir do URL, como mostrado acima
Resposta Original
Do que eu posso ver em sua pip-log.txt arquivo parece que você instalou o Python 2.6.2 usando a imagem Mac Disk Installer partir Python.org lançado em 16 de abril de 2009. você pode confirmar isso?
No registro de pip, gcc falhou com status de saída 1. O comando ofender gcc
do seu log pip é o seguinte:
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
Este parece ser um problema relacionado com o Snow Leopard alterando o valor padrão para a bandeira -arch de i386
para x86-64
acordo com Ronald Oussoren em Mensagem 92083 de Python Edição 6802 . Há um patch disponível Python 2.6.2, mas não foi integrado a imagem de disco Mac Installer.
Seu melhor solução que não envolve MacPorts ou Fink provavelmente seria compilar e instalar Python do ramo 2,6 liberação tanto do Mercurial Python Repository ou o Subversion Python Repository . De acordo com a Mensagem 92315 de Edição 6802 , Ronald Oussoren fixa isso em Revisão r74686 .
Tenho visto erros semelhantes usando Python 2.6.2 instalado a partir da imagem Mac Disk ao tentar, em seguida, instalar Tecido em um virtualenv, então eu planejar para compilar e instalar a partir do ramo de manutenção 2.6 release. Se você quiser, eu vou atualizar quando bem sucedido.
10.6 Snow Leopard PIL sem o incômodo e sem manter MacPorts :)
Passo 1: Instalar MacPorts
Passo 2: sudo port instalar py26-pil
Passo 3: mv /opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/* /Library/Python/2.6/site-packages/
Passo 4: Desinstalar MacPorts
O melhor dos dois mundos?
Seguindo os passos funcionaram para mim:
$ brew install pip
$ export ARCHFLAGS="-arch i386 -arch x86_64"
$ pip install pil
Parece-me que o "Nenhum tal lima" é conjunto com stdarg.h é o erro mais interessante. Parece haver um arquivo de cabeçalho faltando. Eu não sei como se certificar de que está instalado no OS X, assim que este apenas meia resposta, sinto muito por isso, mas talvez ele empurra-lo na direção certa.
Pode ser que você deve tentar pré-construir binários universais do site pythonmac
http://pythonmac.org/packages/py25-fat/index.html
Estes são para python2.5, com python2.5 incluído (isso pode ou não ser útil para você), eu tenho usado ele desde que eu tinha problema com auto-construção PIL com py2app.
Eu encontrei um método mais simples. sudo port instalar Python26 sudo port instalar python_select
Em seguida, use set python_select Python26 como padrão.
Em seguida, basta instalar PIL como normal.
Eu era capaz de conseguir PIP instalado com Python do SL usando estas instruções:
http://jetfar.com/libjpeg- e-python-imaging-pil-on-snow-leopard /
Resolvido em 2 etapas:
Passo 1: desinstalado e instalado Xcode, sugeriu aqui: http: // binarylionstudios .com / blog / 2011/01/30 / erro de stdarg.h-no-such-file-ou-diretório /
para remover Xcode properlly seguir esta resposta: Como remover totalmente Xcode 4
sudo / Developer / Library / uninstall-devtools --mode = all
Use a instalação Xcode.app depois de reiniciar o Mac
Passo 2: após xcode foi reinstalado, a instalação falhou
incapaz de executar gcc-4.2: No arquivo ou diretório, tais PIL
Para resolver que eu segui este post: http: //aravir-rose.blogspot. COM / 2011/12 / instalar-python-27s-imaging-library.html
Boa sorte!
No OS X Lion com o Xcode atual e não gcc-4.0 eu sou capaz de contornar o erro stdard.h faltando, definindo as variáveis ??de ambiente a seguir:
export CC = "/ usr / bin / llvm-gcc-4.2"
Eu não posso dizer que entendo por que isso funciona.
A propósito isso funciona para o garfo Pillow de PIL também.