python-3.6 - 预提交:使用 python 3.6.8 运行 flake8
问题描述
我在我的系统上安装了 Pyton 3.6.8。
python3 --version //-> Python 3.6.8
python3.6 --version //-> Python 3.6.8
我的 pre-commit-config.yaml 是:
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v2.4.0
- repo: https://gitlab.com/pycqa/flake8
rev: 3.7.9
hooks:
- id: flake8
language_version: python3.6
我为我的项目安装了预提交挂钩。每次我想对 git 提交一些更改时,预提交都会运行 flake8 错误:
TYP005 NamedTuple does not support defaults in 3.6.0
这适用于 Python 3.6.0,因为 Python 3.6.1+ 引入并允许此功能。 https://docs.python.org/3.6/library/typing.html#typing.NamedTuple
如何将 flake8 配置为与 Python 3.6.8 一起运行?
编辑 当我运行 flake8 file.rb 时,我没有收到错误消息 TYP005。
python3 -m pip install flake
flake --version //-> 3.7.9 (the same version as in the pre-commit script file)
解决方案
免责声明:我是两个有问题的工具(pre-commit、flake8-typing-imports)的作者和另一个(flake8)的维护者
TYP005 代码来自flake8-typing-imports
有两个选项可以指示您的最低支持版本flake8-typing-imports
,第一个是命令行参数 / flake8 设置:
--min-python-version 3.6.1
或在您的 flake8 配置中
[flake8]
min_python_version = 3.6.1
python_requires
如果你正在分发一个库,你可以使用元数据来指明支持的最低版本——这在setup.cfg
[options]
python_requires >= 3.6.1
顺便说一句,我相信您的问题中缺少一些信息,如果没有additional_dependencies
在您的预提交配置中,flake8
将单独安装并且无法访问插件,例如flake8-typing-imports
- 我猜您实际上有一个类似于:
- repo: https://gitlab.com/pycqa/flake8
rev: 3.7.9
hooks:
- id: flake8
additional_dependencies: [flake8-typing-imports==1.9.0]
当谈到上面的命令行参数时,您可以在此处指定它们args
(尽管我个人更喜欢配置文件方法)
- id: flake8
args: [--min-python-version, '3.6.1']
additional_dependencies: [flake8-typing-imports==1.9.0]
推荐阅读
- oracle - 在 oracle 中一次捕获多个异常
- swiftui-navigationlink - SwiftUI NavigationView,如果 NavigationLink 在 NavigationBarItem 内,则返回
- vb.net-2010 - BunifuMaterialTextbox isPassword 不起作用
- export-to-csv - 如何在使用 CsvHelper 写入 csv 字符串/文件的过程中替换字符/符号?
- javascript - 如何使用 contenteditable 防止删除内部跨度?
- swiftui - WatchOS,SwiftUI:如何以“视图”为正文发送本地通知
- python-3.x - 使用 Matplotlib 绘制二进制 Numpy 数组的边界
- c# - 该值不是“System.Int32”类型,不能在此通用集合中使用
- loops - 如何在 ansible 和导出变量的循环内创建循环?
- ubuntu - 不同进程的几个分段错误