仅在一个文件中忽略“未使用的导入语句”(PyCharm)

问题描述 投票:0回答:2

我有一个项目,其中多个文件都从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
2个回答
1
投票

两个选项:

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

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


0
投票

最终自己解决了,所以在此留下步骤供其他人查找:

  1. 文件|设置|外观和行为范围| +(添加一个新的)|本地
  2. 命名为此范围# noinspection PyUnresolvedReferences,所以我将永远记住它的用途
  3. 在文件夹视图中仅选择相关文件,然后单击“包含”并确认
  4. 文件|设置|编辑器检查
  5. 在检查列表中,单击“ Python”类别下的“未解决的引用”。在右侧,有一个框表示“在所有作用域中”都使用了它-单击它并选择我们的新作用域(在本例中为# noinspection PyUnresolvedReferences)。
  6. 现在该框显示两行,第一行是我们需要取消选中的新范围(否则,严重性可能会发生变化,如果您想这样做的话)。第二行是“ Everywhere Else”,应进行检查,以便警告将保留在项目的其他位置。

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

© www.soinside.com 2019 - 2024. All rights reserved.