6

今日、PIL を使用する Python スクリプトを作成しようとしているときに、ローカル マシン (OS X 10.5.8、デフォルトの 2.5 Python インストール) に PIL がないことがわかりました。

だから私は実行します:

easy_install --prefix=/usr/local/python/ pil

そして、 /usr/local/python/lib/python2.5/site-packages がまだ存在しないことについて少し不平を言うので、作成して再試行し、これを取得します:

テストに失敗しました: /usr/local/python//lib/python2.5/site-packages は .pth ファイルをサポートしていません エラー: インストール ディレクトリまたは PYTHONPATH が正しくありません

PYTHONPATH になく、Python が ".pth" ファイルを読み取らないディレクトリにパッケージをインストールしようとしています。(--install-dir、--prefix、または distutils のデフォルト設定を使用して) 指定したインストール ディレクトリは次のとおりです。

/usr/local/python//lib/python2.5/site-packages

現在、PYTHONPATH 環境変数には以下が含まれています。

''

わかりました。パスを設定するために何もしていません。そこで、~/.bash_profile に簡単な行を追加します。

PYTHONPATH="$PYTHONPATH:/usr/local/python/lib/python2.5"

sourceもう一度やり直してください。

同じエラー メッセージです。

PYTHONPATH が明確に設定されていることを考えると、これは興味深いことです。私はecho $PYTHONPATH戻ってくることができます:/usr/local/python/lib/python2.5。インクルード パスが内部からどのように見えるかを確認することにしました。

import sys
print "\n".join(sys.path)

これにより、次の結果が得られます。

/System/Library/Frameworks/Python.framework/Versions/2.5/lib/python25.zip /System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5 /System/Library/Frameworks/Python.framework /Versions/2.5/lib/python2.5/plat-darwin /System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/plat-mac /System/Library/Frameworks/Python.framework/Versions /2.5/lib/python2.5/plat-mac/lib-scriptpackages /System/Library/Frameworks/Python.framework/Versions/2.5/Extras/lib/python /System/Library/Frameworks/Python.framework/Versions/2.5 /lib/python2.5/lib-tk /System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/lib-dynload /Library/Python/2.5/site-packages /System/Library/Frameworks /Python.framework/Versions/2.5/Extras/lib/python/PyObjC

そこから/usr/local/python/yadda/yadda著しく欠落しています。

ここで何をすべきかわからない。Python にこの場所をインクルード パスとして認識させるにはどうすればよいですか?

アップデート

Sven Marnach が示唆したように、私は PYTHONPATH のエクスポートを怠っていました。私はその問題を修正し、sys.pathPython 内から印刷すると表示されるようになりました。ただし、TEST FAILED新しい PYTHONPATH 環境変数を使用しただけで、上記のエラー メッセージがまだ表示されます。

そこで、 から に変更し/usr/local/python/lib/python2.5/usr/local/python/lib/python2.5/site-packages、エクスポートして、同じeasy_installコマンドを再度実行してみました。これにより、最初は成功したように見えた (実際には成功していない) まったく新しい結果が得られます。

Creating /usr/local/python/lib/python2.5/site-packages/site.py
Searching for pil
Reading http://pypi.python.org/simple/pil/
Reading http://www.pythonware.com/products/pil
Reading http://effbot.org/zone/pil-changes-115.htm
Reading http://effbot.org/downloads/#Imaging
Best match: PIL 1.1.7
Downloading http://effbot.org/media/downloads/PIL-1.1.7.tar.gz
Processing PIL-1.1.7.tar.gz
Running PIL-1.1.7/setup.py -q bdist_egg --dist-dir /var/folders/XW/XWpClVq7EpSB37BV3zTo+++++TI/-Tmp-/easy_install-krj9oR/PIL-1.1.7/egg-dist-tmp--Pyauy
--- using frameworks at /System/Library/Frameworks
[snipped: compiler warnings]
--------------------------------------------------------------------
PIL 1.1.7 SETUP SUMMARY
--------------------------------------------------------------------
version       1.1.7
platform      darwin 2.5.1 (r251:54863, Sep  1 2010, 22:03:14)
              [GCC 4.0.1 (Apple Inc. build 5465)]
--------------------------------------------------------------------
--- TKINTER support available
--- JPEG support available
--- ZLIB (PNG/ZIP) support available
*** FREETYPE2 support not available
*** LITTLECMS support not available
--------------------------------------------------------------------
To add a missing option, make sure you have the required
library, and set the corresponding ROOT variable in the
setup.py script.

To check the build, run the selftest.py script.
zip_safe flag not set; analyzing archive contents...
Image: module references __file__
No eggs found in /var/folders/XW/XWpClVq7EpSB37BV3zTo+++++TI/-Tmp-/easy_install-krj9oR/PIL-1.1.7/egg-dist-tmp--Pyauy (setup script problem?)

繰り返しますが、これは良さそうに見えますが、スクリプトを実行すると、次のようになります。

トレースバック (最新の呼び出しが最後):
ファイル "checkerboard.py"、1 行目、インポート イメージ、ImageDraw の ImportError: イメージという名前のモジュールはありません

/usr/local/python/usingの下にあるものを確認すると、次のfind .ようになります。

./lib ./lib/python2.5 ./lib/python2.5/site-packages ./lib/python2.5/site-packages/site.py ./lib/python2.5/site-packages/site.ピク

だから...モジュールのように見えるものは何もありません(site.pyとsite.pycはメタデータまたはヘルパースクリプトだと思います)。インストールはどこに行きましたか?

私はこれに注意します:

ビルドを確認するには、selftest.py スクリプトを実行します。

しかし、それが何であるかはよくわかりません。

また、「卵が見つかりません」というメッセージにも気付きました。これらのいずれかがヒントですか?

4

2 に答える 2

4

OS X で Apple 提供の Python 2.5 を使用しています。これはフレームワーク ビルドであり、既定では/Library/Python/2.5/site-packages、インストールされたパッケージの場所として使用されます/usr/local--prefix通常、OS X フレームワークのビルドで指定する必要はありません。setuptoolsまた、OS X 10.5 で Apple が提供する( easy_install) も、Python 自体のバージョンと同様にかなり古いことに注意してください。

PILとはいえ、OS X、特に OS X 10.5 に完全かつ正しくインストールすることは特に簡単ではありません。ヒントやバイナリ パッケージについては、アーカイブなどを検索してください。特に、MySQL や Django などの他のモジュールを使用する予定がある場合は、MacPortsなどのパッケージ マネージャーを使用してすべて (Python と PIL) をインストールすることをお勧めします。

于 2010-12-09T01:13:13.513 に答える
1

なぜ呼び出しで指定--prefixしたのですか?easy_installただ試しましたか:

sudo easy_install pil

PIL をデフォルトの場所にのみインストールしようとしている場合はeasy_install、正しいパスを見つけることができると思います。(明らかに/usr/local/pythonそうですよね…)

編集:おそらくあまりにも簡潔だったため、誰かがこの回答に反対票を投じました。それは、携帯電話から回答を投稿しようとしたときに得られるものだと思います。しかし、その要点は完全に有効です。IMHO: を使用--prefixしてカスタムのインストール場所を指定してeasy_installいる場合は、「間違ったことをしている」ようなものです。これを機能させることは可能かもしれませんが、easy_installドキュメントにはカスタムのインストール場所に関するセクションがあり、仮想 pythonオプションの小さな調整を除いて、可能性としては言及されていません。Mac のカスタムの場所にインストールする場合は、 OS X の手順に従うことをお勧めします--prefixが、その作業に適したツールとは思えません。

于 2010-12-09T01:13:40.567 に答える