ImportError: cannot import name deepcopy のエラーはcopy.pyが原因

pytorchのモデルを書いていて、何度かテストしていたのだが、突然、ImportError: cannot import name deepcopy というエラーがでて戸惑う。「torch ImportError: cannot import name deepcopy」などと検索をかけて調べてもほとんどヒットせず、終始戸惑うばかりで時間だけが過ぎていく。

そんな中見つけたのが以下の記事だった。

https://stackoverflow.com/questions/4818325/can-not-import-the-module-deepcopy/4818685

このエラーに対する回答として、copy.pyというファイルを同一フォルダ上に配置していないかという指摘があり、ここで自分のミスに気が付く。

pytorchモデルの教師データを用意する際、copy.pyというプログラムを作成し、その直後に動かなくなってしまっていたのだ。どうやらcopy.pyというのは予約語になっていて、システムに優先的に読み込まれて、基本プログラムの一つだと誤認識されていたようだった。この後copy.pyを別のファイル名に命名しなおすと何事もなく動作した。

今日の教訓:

copy.pyというファイル名を付けるべからず

Pocket