2011-07-07 4 views
1

パッケージ管理の問題hereを解決しようとすると、PYTHONPATHを使用してsite-packagesディレクトリ外のパッケージにアクセスする方法に問題がある可能性があることを知りました。サイトパッケージ外のバージョン管理されたパッケージ名でPYTHONPATHが発生する

ディレクトリがPythonのsite-packagesディレクトリにない言ったときにそのバージョン管理ディレクトリのフォルダ名からパッケージ(たとえばwxPython)(すなわちwx-2.8-msw-unicode)からモジュールをインポートしようとしたとき、私は、インポートエラーが発生します。

問題を再現するには、次のようにします。pythonディレクトリ以外のディレクトリ、たとえばC:\fooを作成します。 wxPythonをダウンロードし、そのディレクトリに置きます(C:\foo\wx-2.8-msw-unicode)。あなたが好きならもっと追加してください。環境変数PYTHONPATHにディレクトリC:\fooを追加します。私はインポートエラーを受け取る

import wx 

、その後、新しいPythonのインタラクティブシェルを開き、(それはある)のパスがあることを確認するために

import sys 
for i in sys.paths: 
    print i 

を実行します。私は間違って何をしていますか?この動作は正しいですか?

+0

この情報は役に立ちましたか? http://stackoverflow.com/questions/1001851/pythonpath-ignored –

+0

この記事では、sys.pathに追加されるディレクトリの順序について議論しているようです。それがどう関係しているのか分かりません。 – TorelTwiddler

答えて

0

あなたが言っていることを理解しているので、これは予想される動作です。 C:\fooはPythonパスにありますが、インポート可能なwxモジュールは含まれていません。 import wxを成功させるには、ファイル__init__.pyを含むwx.(py/pyc/pyd/dll/so)またはディレクトリwxのいずれかをPythonパスのディレクトリの1つに直接見つける必要があります。

通常、インストーラはこれがインポート可能な場所にあることを確認して並べ替えます。あなた自身でそれをしたい場合は、wxがインポート可能な場所に終わるようにする必要があります。

+0

これは私が 'PYTHONPATH'の使い方を解釈する方法です。別の説明が見つからない限り、次の1時間以内にこれを正解とマークします。 – TorelTwiddler

関連する問題