如何解决 E402 的问题?

How to fix issues with E402?

我们正在努力解决 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)

如何解决这些违规行为?

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 "I know what I'm doing, go away."

时想到这一点