Pythonでデフォルトパスを追加する方法

2014-02-24

Pythonで、デフォルトで読み込めないパスにあるモジュールをimportする際、

1
2
3
4
5
import sys
# モジュール(もしくはそのフォルダ)へのパスを追加
sys.path.append('/path/to/module/')
# これで読み込み可能
import hoge

このようにして指定すると、importすることができます。

しかしvirtualenv等で自分の環境に入っており、毎回デフォルトで読み込みを行いたい場合、このコードを記述するのは非常に面倒です。

そこで今回はPythonのデフォルトの検索先にパスを追加する方法をメモ書きしておきます。

Pythonのデフォルト検索パスを確認する

まず、Pythonがデフォルトでどこを参照しているのか確認しましょう。

以下は、とある環境で実行した例です。

1
2
3
4
5
6
7
8
9
$ python 
Python 2.7.3 (default, Sep 26 2012, 21:51:14) 
[GCC 4.7.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.path # パスを確認する
['', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-linux2', '/usr/lib/python2.7/lib-tk', '/usr/lib/python2.7/lib-old', '/usr/lib/python2.7/lib-dynload', '/usr/local/lib/python2.7/dist-packages', '/usr/lib/python2.7/dist-packages', '/usr/lib/python2.7/dist-packages/PIL',  '/usr/lib/python2.7/dist-packages/gtk-2.0', '/usr/lib/pymodules/python2.7']
>>> exit() # 終了
$ 

Pythonのデフォルト検索パスに追加する

デフォルトの検索パスに追加するには、すでにパスが通っている場所(上で確認した場所)のどこかに作成する必要があります。

ここでは、 /usr/lib/python2.7/dist-packagesに追加していきます。

$ vim /usr/lib/python2.7/dist-packages/custom.pth
# 以下に追加したいパスを書き込む
# 例
/sample/path/
# また、相対パスでの指定も大丈夫なようです (リファレンス参照)

以上で追加は完了です。お疲れ様でした。

先ほどの手順で、デフォルト検索パスの確認を再度行っておくと良いかもしれません。

[参考] 27.14. site — サイト固有の設定フック — Python 2.7ja1 documentation

このエントリーをはてなブックマークに追加
« NTPリフレクション攻撃に関して バインドされた要素のスタイルを調整する »