Ubuntu(10.10)システムでは、Pythonパッケージをインストールして/usr/local/lib/python2.6/site-packages/
にインストールします。これはデフォルトのパス(sys.path)に含まれていません)。このディレクトリをパスに追加しますか?
$PYTHONPATH
環境変数を設定することはもちろん解決策ですが、これを行うためのよりエレガントな方法を探しています。たとえば、easy_install
もインストールされたパッケージをその中に入れ、私のsys.pathは次のようになります。
['', '/usr/local/lib/python2.6/dist-packages/keyring-0.5.1-py2.6.Egg',
'/usr/lib/python2.6', '/usr/lib/python2.6/plat-linux2', '/usr/lib/python2.6/lib-tk',
'/usr/lib/python2.6/lib-old', '/usr/lib/python2.6/lib-dynload',
'/usr/local/lib/python2.6/dist-packages', '/usr/lib/python2.6/dist-packages',
'/usr/lib/python2.6/dist-packages/PIL', '/usr/lib/pymodules/python2.6',
'/usr/lib/pymodules/python2.6/gtk-2.0']
したがって、パスは明らかにPythonバイナリに組み込まれているデフォルトではありません。
上記のエントリを含む単一の構成ファイルはありますか?それともどのように変更できますか?
サイトモジュールのドキュメント と Pythonの検索パスの変更 が探しているようです。
私が理解している限り、これらのエントリは_sys.path
_に次のように追加されています。
/usr/lib/python2.6/site.py
_/usr/lib/python2.6/dist-packages/site.py
_これを変更する最も簡単な方法は、_/usr/local/lib/python2.6/dist-packages/site-packages.pth
_を含むファイル_../site-packages
_を追加することです。
または、site.getsitepackages()
を使用するようにパッケージを教えることもできますか?
/etc/profile.d/local_python.sh
という名前の新しいファイルを作成して、
PYTHONPATH="/usr/local/lib/python2.6/site-packages/":"${PYTHONPATH}"
export PYTHONPATH
これにより、システムにログインしているすべてのユーザーのPYTHONPATH
変数が設定されます。
Pythonのパスの変更に関する私の調査結果をまとめたいと思います。それには2つの方法があります。
PYTHONPATH
Any。pthファイルがデフォルトのパス(以下を参照)にある場合、その内容はsys.path
に含まれます。上記の。pthファイルの形式は単純です。1行に1つの(フォルダー)パスがあります。驚いたことに、パスは。pthファイルに対して絶対パスまたは相対パスにすることができます。
デフォルトのパスはインタープリターが存在する場所で、<some-prefix>/lib/python<version>/site-packages
は<some-prefix>
が通常/usr/
です。
PYTHONPATH
は、オペレーティングシステムの環境変数です。 UNIXシステムでは、env
でリストします。このような変数のグローバルな変更は、@ TestUser16418で言及されているように、/etc/profile.d/
フォルダー内の。shスクリプトによって行われます。
たとえば、.Egg
ファイルとして利用できるsuds
モジュールをインポートする場合は、次のようにします。
Egg_path = '/home/shahid/suds_2.4.Egg'
sys.path.append(Egg_path)
import suds
# ... rest of code