2010年9月14日火曜日

pythonのimportの罠

pythonのimportにはなんだか問題があると思った.

というのも後輩がmatplotlibというプロットライブラリでグラフをプロットしようとしていたとき,matplotlibをimportするだけでエラーが出る,と言ってきたのがきっかけ.
見てみると,matplotlibが標準モジュールであるrandomをimportしようとしてエラーが出ている.しかし別のディレクトリに移動してからテストするとimportは成功する.

エラーの原因は,スクリプトを実行しようとしていたディレクトリに別のrandom.pyというファイルがありmatplotlibがこちらをimportしようとしていたからだった.

例えばC言語なら

#include "random.h"
#include <random.h>

この2種類の意味は異なり,"random.h"の方はカレントディレクトリから探しに行くが,<random.h>の方はインクルードパスから探す.

つまりpythonのimportは#include "random.h"の意味を持っていて,この1種類しかない.ちょっと問題だと思った.

だってrandom.pyとか作りたい(作っちゃう)時もあるでしょ.python3では直ってたりしないのだろうか….

0 件のコメント:

コメントを投稿