Edited at

python スクリプトを import する

More than 3 years have passed since last update.


問題

普通だと import できないファイル名の python スクリプト、

例えば zz-myscript-01.py

みたいなやつの内部で実装されている関数をインポートしたい。

しかし、

import zz-myscript-01

みたいな書き方はできない (Syntax Error)

名前を変えずにロードしたい。


解決方法

imp を使う。例えば、上記スクリプトを、 mymodule という名前でロードするには

以下のようにすれば OK。

def customImport():

import imp
global mymodule
fp, name, desc = imp.find_module("zz-myscript-01")
mymodule = imp.load_module("mymodule", fp, name, desc)

customImport()


なぜうまく行くのか

imp は、 Python の import 文の実装へのインタフェースなので、

それを使って独自に import をしているから。


参考

http://docs.python.jp/2/library/imp.html#examples-imp