Django项目中isort忽略应用级.isort.cfg的skip参数问题
解决isort应用级配置skip参数不生效的问题
核心问题分析
在项目根目录执行isort时,子目录(应用级)的skip参数未生效,本质是isort配置的继承/覆盖规则导致:skip会直接替换父级配置的跳过列表,而非追加;同时部分旧版本isort对子目录相对路径的解析存在兼容问题。
具体解决步骤
1. 替换skip为extend_skip
将应用级.isort.cfg中的skip=migrations改为extend_skip=migrations,这样会在继承父级跳过规则的基础上,额外追加当前目录下的migrations目录,避免覆盖父级配置的同时生效子目录的跳过规则。
修改后的应用级配置:
[settings] known_django=django sections=FUTURE,STDLIB,DJANGO,THIRDPARTY,FIRSTPARTY,LOCALFOLDER extend_skip=migrations
2. 明确相对路径(可选)
如果上述方法无效,尝试将跳过路径改为配置文件的相对路径,明确指向当前目录下的migrations:
extend_skip=./migrations
3. 排查根目录配置冲突
检查项目根目录的.isort.cfg(若存在),确保其中的skip参数不会覆盖子目录的规则。如果根目录需要保留自己的跳过列表,子目录必须用extend_skip而非skip。
4. 升级isort版本
isort 5.11.4存在子目录配置解析的已知兼容问题,升级到5.12.0及以上稳定版本可修复:
pip install --upgrade isort>=5.12.0
5. 验证生效状态
重新执行命令并查看verbose日志,确认是否出现Excluding directory: migrations的条目:
isort . --resolve-all-configs --verbose
若日志中显示该条目,说明migrations目录已被正确跳过。
内容的提问来源于stack exchange,提问作者apet
相关产品推荐
相关产品推荐

