PyCharm 错误的未使用导入

PyCharm wrong unused import

考虑这段代码:

从 AutomaticHacker 导入常量

if constants.QT5:
    from PyQt5.QtCore import QAbstractTableModel, pyqtSignal, QModelIndex, Qt, QAbstractItemModel, QSize
    from PyQt5.QtGui import QColor, QFont
else:
    from PyQt4.QtCore import QAbstractTableModel, pyqtSignal, QModelIndex, Qt, QAbstractItemModel, QSize
    from PyQt4.QtGui import QColor, QFont

或查看此处:Screenshot

PyCharm 标记整行

from PyQt5.QtCore import QAbstractTableModel, pyqtSignal, QModelIndex, Qt, QAbstractItemModel, QSize

as unused import,虽然只有QSize没有用到。我知道,我可以简单地从导入列表中删除 QSize。但是,当自动优化导入时,它会破坏我的文件。

有什么方法可以解决这个问题?

我无法在 Pycharm 4.0.6 Pro 上重现,它正确地删除了未使用的导入,其余的保持原样。

假设是版本差异,我看到了 2 个选项:

  • 您可以将导入行重写为多个每行一个导入行

  • 您可以放弃自动优化导入并手动执行,使用 Code -> Inspect Code 和灰色显示 + 带下划线的编辑器突出显示未使用的导入 - 这是我的偏好,因为我对代码检查非常偏执。

反对导入优化器的另一点:它可能会根据您当前的设置条件确定 if 的一侧不会发生并愉快地擦除另一半 - 有效地使选择性导入的整个目的无效。始终仔细检查优化器操作!