読者です 読者をやめる 読者になる 読者になる

Bye Bye Moore

猫マンション建築の野望を胸に零細事業主として資本主義の荒波に漕ぎ出したアラサー男の技術メモ

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