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に直接パスを指定したリンクを作成することも可能です)