局部和毒物中的不同行为

2024-06-02 06:23:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个使用tox的项目。我在里面运行flake8。直到现在一切都很顺利,直到我决定在测试中运行flake8。你知道吗

当我调用flake8 ./tests时,我得到一些输出。那我就能修好了。现在我在tests文件夹中没有任何警告。但是当我在tox中运行它时,会发生一些奇怪的事情(我100%确定,像WPS或isort这样的包与我在本地使用的包有相同的版本)。基本上我得到isort警告。问题如下所示:

from freezegun import freeze_time

from foo.bar import baz

因此,我有一个第三方lib导入上面从我的lib导入。这里一切都很好,vscode安装了flake8或在终端中运行flake8都不会给出任何警告。问题是,我认为,foo在这里被当作第三方库来对待,例如,在本例中,flake希望我删除这两个库之间的换行符。你知道吗

我基本上什么都试过了(例如pytest-flake8,但不太好,因为它也运行测试,我在其他tox工作中也做过测试)。有没有办法解决这个问题,因为我的管道一直在下降。你知道吗

p.Snoqaing IXXX警告不是这里的解决方案,因为我需要它们,但不是以错误的方式,我在上面介绍了这种方式。你知道吗

我在我的setup.cfg[isort]部分有known_first_party=foo


Tags: 项目fromimport版本文件夹tox警告foo
1条回答
网友
1楼 · 发布于 2024-06-02 06:23:15

isort对安装在它旁边的库很敏感,这意味着您在使用它时通常需要安装所有依赖项

我做过一些变通方法:

  • ^{}(最初用于pre-commit)-这将known_third_party设置为一个适当的列表,这样isort在任何地方运行的任何依赖项集仍然可以正确解析
  • ^{}-一种不受isort限制的替代进口分拣机(驱动这台机器的机器也是驱动seed-isort-config中的进口分类的机器)

(免责声明:我是上述工具的作者,也是当前的flake8维护者)

相关问题 更多 >