自动导入不遵循PEP8

ale*_*cxe 16 python import pep8 static-code-analysis pycharm

请考虑以下代码:

from bs4 import BeautifulSoup


data = "<test>test text</test>"
soup = BeautifulSoup(data)
print(soup.find(text=re.compile(r'test$')))
Run Code Online (Sandbox Code Playgroud)

它缺少一条import re线,NameError没有它就会失败.

现在,我尝试使用PyCharm自动导入功能:重点re和打击Alt+Enter,这将打开如下弹出:

在此输入图像描述

现在,如果我选择Import 're'选项,Pycharm会在脚本顶部插入新的导入行:

import re
from bs4 import BeautifulSoup


data = "<test>test text</test>"
soup = BeautifulSoup(data)
print(soup.find(text=re.compile(r'test$')))
Run Code Online (Sandbox Code Playgroud)

看起来几乎不错,但它没有遵循PEP8导入指南:

应按以下顺序对导入进行分组:

  • 标准库导入

  • 相关的第三方进口

  • 本地应用程序/库特定导入

您应该在每组导入之间添加一个空行.

换句话说,两个导入之间缺少空白行:

import re

from bs4 import BeautifulSoup
Run Code Online (Sandbox Code Playgroud)

问题是:是否可以告诉Pycharm遵循PEP8指南并在自动导入的不同导入类型的行之间插入换行符?


作为一种解决方法,我在正确组织导入之后调用Optimize Imports.

Ant*_*ham 9

你不能.原因是PyCharm没有告诉您,如果您这样做或任何进口声明,您违反了任何PEP8指南.一,你的PyCharm已经过时(最新版本是4.0.2/4.2)或者第二,你的PyCharm似乎有一个bug,因此有理由提交错误报告.如果您可以尝试再次安全地下载PyCharm 以尝试修复该错误.如果这不起作用,请提交错误报告或养成在语句之间留空的习惯.希望这能回答你的问题!哦,无论你是使用from,import还是两种语句都没关系.