技術と日常。

日々の気が付いたこと・気になったことを残しておきます。

[PyCharm]Optimize importsで必要なimportが消えてしまう時に読むページ

概要

PycharmやIntelliJなどのJetBrainsのIDEでは、2021.2から、保存時のアクションで、オートフォーマットができるようになりました

pleiades.io

それまでは別のプラグインが必要だったので、大変助かりますね

さて、その中のOptimize importsに関して
例えばJavaであれば使用されていないimportがなくなることは困らないのですが、Pythonの場合は、言語の特性上、importだけで使用・適用を行う場面が存在します。
すると、Optimize importsは、ソースコード内で使用されないimportを自動で消してしまいます。

この対策について、本記事を残しておきます。

Optimize importsから除外する対策

一つは、以下のように、対象のimportの前に# noinspection PyUnresolvedReferencesを付与します

# noinspection PyUnresolvedReferences
import os

これでOptimize importをかけても、そのimportは守られます。

Optimize importsを無効にする対策

そもそも設定から無効にするには、
冒頭で挙げたActions on Save派の方は、Tools > Actions on Saveよりチェックを外すことで
Ctrl+Alt+L(Mac: Command+Option+L)の手動フォーマット派の方は、Ctrl+Alt+Shift+L(Mac: Command+Option+Shift+L)から表示されるダイアログより、外すことができます

参考

python - Make IDE/linter ignore a seemingly unused import - Stack Overflow

コードの再フォーマットと再配置 | PyCharm ドキュメント