如何使用本地flake8插件与python虚拟环境?



我正试图整合一个项目与flake8我编写了一个本地插件(例如,不是PyPI包),如下所述。该项目在本地和github工作流中都使用了虚拟环境。因为flake8是从虚拟环境中调用的,所以它找不到插件,插件位于项目根目录下的文件夹中。当我手动将插件代码添加到虚拟env文件夹时,它集成得很好,flake8能够找到执行它。

解决方案闻起来像某种github预提交配置/钩子,但我在文档中找不到任何关于这个用例的参考。目前flake8在pre-commit-config中是这样配置的:

repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.2.0
hooks:
- id: debug-statements
- repo: https://github.com/PyCQA/flake8
rev: 4.0.1
hooks:
- id: flake8
additional_dependencies: ['dlint']

是否有一种方法可以使用我的非包装的flake8插件与本地/在github工作流中的虚拟环境?

您需要配置paths以确保flake8sys.path上放置适当的目录以发现您的插件

这在你链接的文档中有提到,就在后面一点:

但是,如果您正在处理一个没有设置为可安装包的项目,或者Flake8没有从您的代码运行的相同虚拟环境中运行,您可能需要告诉Flake8从哪里导入本地插件。你可以通过配置文件的local-plugins部分中的paths选项来实现:

[flake8:local-plugins]
extension =
MC1 = myflake8plugin:MyChecker1
paths =
./path/to

注意,如果你的本地插件有它需要的依赖项,这些也需要在你的预提交配置的additional_dependencies中列出


免责声明:我是当前的flake8维护者,我创建了预提交

原来paths属性配置错误,应该是

paths =
. flake8_plugins/

不是

paths =
.flake8_plugins/

相关内容

  • 没有找到相关文章