导入__init__.py中的文件

Ven*_*chu 7 python django import

我将我的test.py文件拆分成多个文件,比如

app
app\models.py
app\views.py
app\tests
app\tests__init__.py
app\tests\test_bananas.py
app\tests\test_apples.py
Run Code Online (Sandbox Code Playgroud)

和导入如下__init__.py:

from test_bananas import BananasTest
from test_apples import ApplesTest
Run Code Online (Sandbox Code Playgroud)

pyflakes给我错误

modules/app/tests/__init__.py:5: [E] PYFLAKES:'BananasTest' imported but unused
modules/app/tests/__init__.py:5: [E] PYFLAKES:'ApplesTest' imported but unused
Run Code Online (Sandbox Code Playgroud)

试过这个也

from test_bananas import *
from test_apples import *
Run Code Online (Sandbox Code Playgroud)

再次pyflakes给我错误

PYFLAKES:'from test_bananas import *' used; unable to detect undefined names
PYFLAKES:'from test_apples import *' used; unable to detect undefined names
Run Code Online (Sandbox Code Playgroud)

Mag*_*ero 44

要忽略“__init__.py”文件中的所有错误 F401(“已导入但未使用”),自Flake8版本 3.7.0(更好的 Pyflakes)以来可用的选项“per-file-ignores”非常方便。它可以在命令行上使用:

flake8 --per-file-ignores="__init__.py:F401" .
Run Code Online (Sandbox Code Playgroud)

或在配置文件(“.flake8”、“setup.cfg”或“tox.ini”)中:

[flake8]
per-file-ignores = __init__.py:F401
Run Code Online (Sandbox Code Playgroud)

  • 该解决方案值得一些人喜爱,因为它的范围非常完美:一种文件类型中的一个问题。将以下代码片段添加到“.flake8rc”中,它的工作效果就像冠军一样。``` [flake8] 每个文件忽略 = __init__.py:F401 ``` (7认同)
  • 在 VSCode 的 Flake Args 中工作得很好,只需将 `--per-file-ignores="__init__.py:F401"` 粘贴到那里即可。 (3认同)
  • 在第一次投票赞成这个回复多年后,我希望我能再次投票。 (2认同)

dus*_*ris 8

在我的PyFlakes (0.7.3)版本中,使用__all__作品。

此外,要跳过一行,您应该添加# noqa.

  • 如果您不确定 `__all__` 的含义,请参阅此线程:/sf/ask/2175533321/ (4认同)

Sin*_*dan 7

添加# noqa: F401到行尾(F401是此错误的代码)

例子: from django.utils import http # noqa: F401


hor*_*bor 6

有时您必须跳过一行。根据当前版本 docs (flake8 2.4.1) 包含的文件

# flake8: noqa
Run Code Online (Sandbox Code Playgroud)

被跳过。这有效,# noga,# pyflakes.ignore 无效。


ILY*_*tov -7

# pyflakes.ignore在您想要忽略的每一行添加注释(在您的情况下是导入语句)。

  • 不知道为什么这被标记为正确答案,语句 `# pyflakes.ignore` 不起作用。 (14认同)
  • @DrTysa - 这些消息很烦人,并且分散了编写良好代码的注意力。它们还使得从 pyflakes 中看到实际有用的消息变得更加困难。 (13认同)