【问题标题】:Ignoring "Unused import statement" in just one file (PyCharm)仅在一个文件中忽略“未使用的导入语句”(PyCharm)
【发布时间】:2019-11-21 21:42:03
【问题描述】:

我有一个项目,其中多个文件从 common.py 文件导入,因为它们都使用相同的模块/包,我想要统一,并且在一个地方更改值或包更容易。

common.py 看起来像这样(只是更长):

import json
import os
import sys
from datetime import datetime
from pathlib import Path
from pprint import pprint
from time import sleep

import requests
from bs4 import BeautifulSoup
from fake_useragent import UserAgent
from pdir.api import PrettyDir

# AND MUCH MORE... with other common functions and classes

项目中的所有其他文件都以:

from common import *

一切正常。但是由于common.py 本身没有使用一些导入,PyCharm 无法看到它们在其他模块中使用,并将它们标记为“未使用的导入语句”。

我不想让整个项目的检查保持沉默,因为它在其他地方非常有用。有什么方法可以强制 PyCharm 检查导入是否在项目中的其他地方使用,或者只对这个文件进行静默检查?

【问题讨论】:

    标签: python pycharm


    【解决方案1】:

    两种选择:

    1. 通过在检查前加上注释# noinspection PyUnresolvedReferences 来抑制检查(这是作为操作对话框中的一个选项提供的)。不幸的是,这一次只适用于一行或一个块,而不是整个文件。因此,您要么必须注释每一行,要么将所有 import 语句放在某种块中(例如函数)。

    2. 在文件中添加__all__ = ('json', ...) 行以明确注释这些符号以进行导出;不幸的是,您必须为每个导入的项目执行此操作。

    【讨论】:

    • 由于有很多类似的行,这两种选择在我的情况下都不现实。不过谢谢!
    【解决方案2】:

    最后自己解决了,所以把步骤留在这里让其他人找到:

    1. 文件 |设置 |外观和行为 |范围 | +(添加一个新的)|本地
    2. 将此作用域命名为 # noinspection PyUnresolvedReferences,这样我就会永远记住它的用途
    3. 在文件夹视图中仅选择相关文件并点击“包含”并确认
    4. 文件 |设置 |编辑 |检查
    5. 在检查列表中,单击“Python”类别下的“未解决的引用”。右边有一个框,上面写着“在所有范围内”使用它——单击它并选择我们的新范围(在本例中,命名为# noinspection PyUnresolvedReferences)。
    6. 现在该框显示 2 行,第一行是我们需要取消选中的新范围(或者如果您愿意,可以更改严重性)。第二行是“Everywhere Else”,应该选中它,这样警告就会留在项目的其他地方。

    目前我不接受我自己的答案,因为我仍然希望有更简单的方法来完成此操作

    【讨论】:

      猜你喜欢
      • 2014-02-04
      • 2020-08-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-15
      • 2016-02-09
      相关资源
      最近更新 更多