自动导入不遵循PEP8

时间:2014-12-08 23:51:10

标签: python import pycharm pep8 static-code-analysis

请考虑以下代码:

from bs4 import BeautifulSoup


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

缺少import re行,如果没有NameError则会失败。

现在,我尝试使用PyCharm Auto-Import feature:关注re并点击Alt+Enter,这会打开以下弹出窗口:

enter image description here

现在,如果我选择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$')))

看起来几乎不错,只是它没有跟PEP8 import guidelines

  

进口应按以下顺序分组:

     
      
  • 标准库导入

  •   
  • 相关的第三方导入

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

  •   
     

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

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

import re

from bs4 import BeautifulSoup

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


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

1 个答案:

答案 0 :(得分:9)

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