湯LOG

主に自分用のメモ

Pythonで開発パッケージのパスを通す

Pythonでモジュールをインポートする際に、

>>> import hogehoge

としたときに

Traceback (most recent call last):
…
ImportError: No module named hogehoge

とならないようにするためのメモ。

sys.path

モジュールをimportするときに、どのフォルダ・ファイルを参照するかはsysモジュールのsys.pathにリストとして格納されているモジュールの検索パスに基づいて決められます。
デフォルトでは、カレントディレクトリ、環境変数PYTHONPATH、インストール依存のデフォルト値、がモジュールの検索パスとして設定されています。
検索パスを新たに追加したい場合は以下のようにsys.pathにパスを追加します。

import sys
sys.path.append('/path/to/hogehoge')
import hogehoge

setuptools

setuptoolsのライブラリを使うとより便利になります。
以下のようなsetup.pyを追加したいモジュールのカレントディレクトリに作成します。

# setup.py
from setuptools import setup
setup(name='hogehoge', version='0.1.1')

そして、次のコマンドを実行

python setup.py develop

すると、開発用としてPythonのsite-packagesのフォルダの中にこのパッケージへのパスを持つリンクが作成され、パスが通ります。
(もちろん、setuptoolsを使わなくてもsite-packageに直接パスを指定したリンクを作成することも可能です)