Windows与Linux环境下Pylint扫描文件数量不一致问题求助
跨平台执行
pylint **/*.py结果差异的原因分析 核心原因是Windows和Linux的Shell对**通配符的展开逻辑不同:
- Linux下的Bash默认未启用
globstar选项,此时**/*.py只会匹配当前目录直接子文件夹中的.py文件,不会递归遍历更深层级的子目录,因此只检测到6个文件。 - Windows的PowerShell(或新版CMD)默认支持
**的递归展开,会遍历当前目录下所有层级的子文件夹,能匹配到全部23个.py文件。
验证与解决方法
- 验证Linux的globstar状态:执行
shopt globstar,若输出globstar off则说明未启用该选项。 - 临时启用globstar:执行
shopt -s globstar后,再重新运行pylint --verbose **/*.py,即可匹配到所有.py文件。 - 跨平台通用方案:避免依赖Shell的通配符行为,直接使用Pylint自身的递归扫描能力,执行
pylint --verbose .,该命令会自动递归扫描当前目录下所有.py文件,在Windows和Linux下行为一致。
内容的提问来源于stack exchange,提问作者nrofis
相关产品推荐
相关产品推荐

