【PyCharm】ファイルを消したはずなのに参照出来てしまう問題を解決する
# pycharm
起きたこと
以前からたまーに発生していたのですが、本来import出来ないはずのモジュール等がimport出来るように見えてしまう状態が発生しました。
- 存在しないファイルがPycharm上ではimport出来ると判定される
- 実際に実行するともちろんエラーになる
- PyCharmの警告と実情が一致しないので開発効率が非常に悪い
といったような状態です。
原因
どうやら本来参照すべきではないソースまで参照してしまっていることがあります。
Interpreterに外部のもの(Docker系やWSLを含む)を使っている際に起こる可能性が高そうです。 特に、実際に動かすときのためにDockerfile内でファイルを移動したりPYTHONPATHを更新しているような場合は要注意です。
私の場合はPYTHONPATHに「/var/www/src」を追加した結果、見事にPyCharmもお節介で読み込んでくれました。
アプリケーションのコードなので、ローカルのものとDocker上のファイルを2重に読み込んでしまっていることが原因となり、ローカルで削除してもDocker上のファイルを参照してしまっていることが原因です。
解決策
ということで、この「/var/www/src」を読み込まなくしてやれば解決です。
PyCharmはよくできたIDEなのでこの辺りも対応してくれています。
「File | Settings | Project: MyProject| Python Interpreter」から該当のものを選択し、一番右側のフォルダツリーっぽいアイコンを押すと以下の画面が表示されます。 そうしたら不要なものを選択して「ー」を押します。
skeltonsの更新が走るので暫く待てば無事に解決しているはずです!
PyCharmは非常に便利なのですが、たまーにこういうことがありますよね。 きちんと色々な設定を読み込んでくれているのでまずは自分の設定を疑う心が必要だと感じました。
こういう細かいけど回答がない悩みについてどんどんかいていきたいものです。