Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

Pythonではライブラリと同名ファイルを同一ディレクトリに置くと……クラッシュする

今回は実にショーもない話です。
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