如何解决E402的问题?

时间:2018-01-29 09:34:56

标签: python pep8 flake8 pycodestyle

我们正在努力解决PEP8 E402的问题。

我们的代码主要是打破了:

import os
os.environ['LIB_CAN_THROW_ERROR_ON_IMPORT'] = 2
import lib
os.environ['LIB_CAN_THROW_ERROR_ON_IMPORT'] = 0 # back

-

if sys.version_info[0] > 2:
    import python3lib
else:
    import python2lib

-

try:
    import lib
except:
    print('lib is required')
    sys.exit(1)

如何解决这些违规行为?

1 个答案:

答案 0 :(得分:2)

PEP8中指定的准则就是 - 指南。当它们有意义时,它们是一套遵循的规则。

E402指的是仅位于文件顶部的导入。这是为了阻止以下情况:

import pygame

# 800 lines of pygame stuff
...

import math
# 10 lines of math stuff
...

# Another 800 pygame lines

在上面的示例中,很难知道math已导入。如果你需要在文件末尾再次使用math,而没有E402告诉你,你可能会再次import math,这是无害的,但是很草率。

在你的情况下,你并不是马虎。您在导入另一个库之前专门设置了一些内容,或者向用户提供了更好的错误消息。只需告诉您的linter忽略评论中建议的那些行上的警告,行末尾为# noqa: E402。当你告诉linter“我知道我在做什么,离开。”时,你可以想到这一点。