今回は実にショーもない話です。
Pythonではライブラリと同名ファイルを同一ディレクトリに置くと……クラッシュします。
実際のところ
REPLでゴリゴリ作っていた内容をファイルとして作り変えた所、以下のようなエラーが。
$ python contextlib.py Traceback (most recent call last): File "contextlib.py", line 1, in <module> from contextlib import ContextDecorator File "/Users/shuzo_kino/python/contextlib.py", line 1, in <module> from contextlib import ContextDecorator ImportError: cannot import name 'ContextDecorator'
……REPLではバリバリ動いたcontextlibを読み込みません。
ここで、一旦冷静になってみます。
お試しファイルとして作ったcontextlib.py。
ライブラリと同じ名前ですね。
こうなると、正常に呼び出せないので上記のようなエラーを吐きます。
試しに名前を変えると……動きましたね(白目
$ mv contextlib.py test_contextlib.py $ python test_contextlib.py Entering: widget loader Some time consuming activity goes here Exiting: widget loader