Pylint在按正确的顺序导入时会抱怨

时间:2018-05-31 18:42:34

标签: python pylint

我认为Python中正确的导入顺序是问题的第一个答案所描述的顺序:What's the correct way to sort Python `import x` and `from x import y` statements?

因此,此代码应该是正确的:

import os
import time
import yaml

from collections import OrderedDict
from xtesting.core import testcase

但是,当我运行pylint时,我得到:

C:  5, 0: standard import "from collections import OrderedDict" should be placed before "import yaml" (wrong-import-order)

所以我猜" yaml"不是标准库。那么正确的方法应该是这个(即使它更丑陋且不太可读)?

import os
import time
from collections import OrderedDict
import yaml

from xtesting.core import testcase

1 个答案:

答案 0 :(得分:1)

PyYAML不是标准python库的一部分,从标准库导入,无论是泛型(import os)还是特定(from collections import OrderedDict)应该是第一个。

你应该,IMO,按字典顺序对部分中的模块名称进行排序,并用空行分隔部分:

from collections import OrderedDict
import os
import time

from xtesting.core import testcase
import yaml

有些人希望在每个部分中首先使用通用的:

import os
import time
from collections import OrderedDict

import yaml
from xtesting.core import testcase

这看起来更好,但在更长的通用列表之后更容易忽略特定的导入。它还将通用和特定导入与同一个模块分开,IMO很糟糕:

import yaml
from xtesting.core import testcase
from yaml import safe_load