在 Linux 环境中,我在名为 的文件夹中有以下三个文件utils
:
一个空文件
__init__.py
mymain.py
具有以下内容的文件:from mytool import foo
mytool.py
具有以下内容的文件:from subprocess import check_output def foo(): print("Hello World")
现在我使用以下设置创建一个虚拟环境:
astroid==2.4.2
isort==5.7.0
lazy-object-proxy==1.4.3
packaging==20.9
pylint==2.6.0
pyparsing==2.4.7
six==1.15.0
toml==0.10.2
typed-ast==1.4.2
wrapt==1.12.1
然后我对该文件夹运行 pylint 检查
pylint utils
或者
pylint --disable=C,R,W utils # only the error is of interest
它应该返回 10 分。
当您现在将版本升级astroid
到 2.5.0 并再次运行检查时,您会收到错误消息:
************* Module utils.mymain
utils/mymain.py:2:0: E0401: Unable to import 'mytool' (import-error)
如HERE所指出的,是否由于不推荐使用的 importlib 方法而改变了行为?
趣味事实
如果您删除文件中未使用的导入语句,即使使用版本 2.4.2 mytool.py
,您也会收到相同的导入错误。astroid
为什么; 未使用的导入如何影响pylint
检查结果?
提示:我有两个问题。