17

我们正在尝试修复 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)

如何解决这些违规行为?

4

1 回答 1

19

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 “我知道我在做什么,走开。”

于 2018-01-29T12:13:09.180 回答