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

时间:2019-11-21 12:58:01

标签: python pycharm

我有一个项目,正在从Repository文件导入多个文件,因为它们都使用相同的模块/包,并且我希望保持统一性,并且更容易在一个地方更改值或包。

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 * 中使用,因此PyCharm无法看到它们已在其他模块中使用,并将它们标记为“未使用的导入语句”。

我不想取消整个项目的检查,因为它在其他地方非常有用。是否有任何方法可以强制PyCharm检查导入是否在项目的其他地方使用,或者仅使对该文件的检查静音?

2 个答案:

答案 0 :(得分:1)

两个选项:

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

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

答案 1 :(得分:1)

最终自己解决了这个问题,因此在此留下步骤供其他人查找:

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

我目前不接受自己的回答,因为我仍然希望有一种更简单的方法来实现这一目标