3

Python 2.6.1、GCC 4.2.1、PIL 1.1.7 を使用して Snow Leopard に PIL をインストールしようとしていますが、libjpeg6b と libjpeg7 の両方で試しましたが、何も機能しません。fink から libjpeg/pil/zlib のすべてのトレースをクリアし、さまざまなコンパイラ オプションなどを試し、http://jetfar.com/libjpeg-and-python-imaging-pil-on-snow-leopard/を使用しました。 http:// www.brambraakman.com/blog/comments/installing_pil_in_snow_leopard_jpeg_resync_to_restart_error/ (StOv では 1 つしか投稿できないため、リンクではありません...)

役立つ可能性のある 4 ビットの情報:

OOOL は libjpeg を依存関係として表示しません

otool -L /Library/Python/2.6/site-packages/PIL/_imaging.so
/Library/Python/2.6/site-packages/PIL/_imaging.so:
 /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 125.2.0)

これらの奇妙なコンパイラ メッセージが表示されます

i686-apple-darwin10-gcc-4.2.1: -framework: linker input file unused because linking not done
i686-apple-darwin10-gcc-4.2.1: Tcl: linker input file unused because linking not done
i686-apple-darwin10-gcc-4.2.1: -framework: linker input file unused because linking not done
i686-apple-darwin10-gcc-4.2.1: Tk: linker input file unused because linking not done
gcc-4.2 -fno-strict-aliasing -fno-common -dynamic -DNDEBUG -g -fwrapv -Os -Wall -Wstrict-prototypes -DENABLE_DTRACE -arch i386 -arch ppc -arch x86_64 -pipe -I/System/Library/Frameworks/Tcl.framework/Headers -I/System/Library/Frameworks/Tk.framework/Headers -IlibImaging -I/sw/include/freetype2 -I/sw/include -I/opt/local/include -I/System/Library/Frameworks/Python.framework/Versions/2.6/include -I/usr/local/include -I/usr/include -I/System/Library/Frameworks/Python.framework/Versions/2.6/include/python2.6 -c Tk/tkImaging.c -o build/temp.macosx-10.6-universal-2.6/Tk/tkImaging.o -framework Tcl -framework Tk
In file included from /System/Library/Frameworks/Tk.framework/Headers/tk.h:78,
                 from Tk/tkImaging.c:51:

_imagingmath が原因で selftest.py が失敗します (上記の 2 番目のリンクを使用した後、_imaging が原因で失敗する前に)

Themistocles:Imaging-1.1.7 me$ python selftest.py 
Traceback (most recent call last):
  File "selftest.py", line 11, in <module>
    from PIL import ImageMath
  File "./PIL/ImageMath.py", line 19, in <module>
    import _imagingmath
ImportError: No module named _imagingmath

_imaging が原因で selftest.py 以外が失敗する

>>> import _imaging
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: dlopen(/Library/Python/2.6/site-packages/PIL/_imaging.so, 2): Symbol not found: _jpeg_resync_to_restart
  Referenced from: /Library/Python/2.6/site-packages/PIL/_imaging.so
  Expected in: flat namespace
 in /Library/Python/2.6/site-packages/PIL/_imaging.so

助けてください!これはばかげている。この時点で、PIL sans jpeg サポートをコンパイルできれば幸いです。

4

3 に答える 3

5

私は最近、PIL、django、libjpeg を Snow Leopard とうまく連携させる方法についての記事を書きました。

http://appelfreelance.com/2010/06/libjpeg-pil-snow-leopard-python2-6-_jpeg_resync_to_restart/

こちらにもコピーさせていただきます。

お持ちでない方は先にダウンロードしてください。

http://www.ijg.org/files/jpegsrc.v7.tar.gz

シェル環境に移動し、次を実行して解凍します

tar -zxvf jpegsrc.v7.tar.gz
cd jpeg-7

次に実行します

sudo make clean
sudo CC="gcc -arch i386""./configure --enable-shared --enable-static
sudo make
sudo make install

次に PIL を取得し、展開します

http://effbot.org/downloads/Imaging-1.1.6.tar.gz
tar -zxvf Imaging-1.1.6.tar.gz
cd Imaging-1.1.6

すでに PIL をお持ちの場合は、実行することをお勧めします

sudo rm -Rf ビルド

既存のビルドをきれいにするために、これにより多くのエラーと白髪が発生しました!

settings.py ファイルで find JPEG_ROOT を実行します

以下のように修正します

JPEG_ROOT = libinclude(“/usr/local”)

次にビルドに移ります

sudo python setup.py ビルド

libjpeg が正常にインストールされた場合、「jpeg」に関連するエラーなしで python selftest.py を実行できるはずです</p>

sudo python setup.py インストール

すべてが正常に機能した場合は、コマンド ラインで python を実行して python インタープリターを入力し、次の操作も実行できるはずです。

import PIL
import Image
import _imaging

エラーなし。

トリプルチェックするために、デスクトップに単純な jpeg があります。

image = Image.open(“/Users/MyName/Desktop/myimage.jpeg”)
image.save(“/Users/MyName/Desktop/test.jpeg”)

エラーなしで動作するはずです

于 2010-07-27T09:07:35.577 に答える
1

マックポートをダウンロード:

http://www.macports.org/install.php

次に、それを pil に使用します。

http://trac.macports.org/browser/trunk/dports/python/py-pil/Portfile

私もこれでかなり苦労しましたが、ポートは何とかなりました。

于 2010-07-11T21:11:30.413 に答える
0

PIL をインストールしようとすると、常に数画面分の gcc エラーが発生します。ある時点で (おそらく MacPorts 経由で) 何かが機能するようになったので、今の私の解決策は、それを適切なサイト パッケージ (たとえば、新しい virtualenv 内) にコピーすることです。

ここに投稿しました:http://blogmaker.com/PIL-1.1.6-for-MacOSX-10.5-Leopard.zip

私のために働きます。それが他の人に役立つかどうかはわかりません!提案があればお気軽にお問い合わせください。あと、もっといい投稿場所があれば教えてください。PIL は非常にクールであり、非常に手間がかかります。サポートのための決定的な場所があるとよいでしょう。私が解決したことのない PIL 関連の問題が他にもあります。

于 2010-07-24T14:52:09.630 に答える