Pythonでモジュールインポート時の注意


クローラーを作るのにPythonが使いやすかったので利用したのですが、
そのときにimportでひっかかってしまったのでメモ。

importの書き方


importには2通りの書き方があります。

1つ目は、importにパッケージ名.モジュール名と書く方法。

import urllib.request

こちらの場合はモジュールを使うのにフルパスを書かなければいけないです。

html = urllib.request.urlopen(x)


2つ目は、from パッケージ名 import モジュール名と書く方法。

from bs4 import BeautifulSoup

こちらはモジュール名だけ書くだけで使用できるので、こちらの方がすっきりします。

datas2 = BeautifulSoup(datas).findAll("td", attrs={"class": "tdSearchResultListKanji"})


import時の注意点


モジュールを利用するには、その上階層にある全てのパッケージ、サブパッケージ名を指定しなければいけないということ。

#エラー
import urllib

#正しい
import urllib.request


Cに慣れていたので、この書き方にひっかかってしまいました。

どうやら、サブパッケージを設けることでお互いがお互いの使用モジュールについて気にしなくてもよいからこの書き方をしているとのことです。
http://docs.python.jp/2.5/tut/node8.html


このエントリーをはてなブックマークに追加