在python中对导入语句进行分组



我最近开始学习python,并在我的python文件上运行了pylint。我收到了以下评论。

from os import listdir
from os.path import isfile, join

在上面两行中,Pylinter的评论是

C:  5, 0: Imports from package os are not grouped (ungrouped-imports)

我怎样才能做到这一点?

另一条评论在下方

import mimetypes, time, csv, platform, base64, django, sys, os, math, uuid, linecache, logging, requests
C:  5, 0: standard import "import mimetypes, time, csv, platform, base64, django, sys, os, math, uuid, linecache, logging, requests" should be placed before "import mimetypes, time, csv, platform, base64, django, sys, os, math, uuid, linecache, logging, requests" (wrong-import-order)

上面的线是什么意思,为什么需要它?

PEP8建议像这样订购和分组导入:

进口应按以下顺序分组:

  1. 标准库导入。

  2. 相关第三方进口。

  3. 本地应用程序/库特定导入。

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

在您的情况下,django和请求是第三方导入,因此您应该编写

import mimetypes, time, csv, platform, base64, sys, os, math, uuid, linecache, logging
import django, requests

当您有这么多导入时,按字母顺序排列导入(每组(可能会更有用。

此外,pylint似乎喜欢在PEP8之外进行分组。特别是,来自同一模块/包的导入应分组在一起。也就是说,在os导入和其他导入之间添加一个空间,甚至可能将空的os导入也放到那里。总之:

import os
from os import listdir
from os.path import isfile, join
import base64, csv, linecache, logging, math, mimetypes, platform, time, sys, uuid
import django, requests 

最新更新