【发布时间】:2014-12-08 23:51:10
【问题描述】:
考虑以下代码:
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,这会打开以下弹出窗口:
现在,如果我选择 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。
【问题讨论】:
-
PyCharm claims to follow PEP8 with auto-imports,所以你应该提交一个错误报告。
-
由于标准、相关和本地进口之间的区别模糊不清,这进一步复杂化了。当然,PyCharm 可能更智能,但一般情况下,您无法权威地说明给定
import foo属于哪个组。 -
@qarma 说得好。不过,在这种情况下,pycharm 在通过
Optimize imports组织导入方面做得很好。这是关于自动导入的内容。谢谢。
标签: python import pycharm pep8 static-code-analysis