我有结构:
|- file run_app.py
|- folder 'tasks'
|-- file app.py
run_app.py中有一个字符串:
import tasks.app
pylint 会发出警报
run_app.py:8:0: E0611: No name 'app' in module 'tasks' (no-name-in-module)
当我将 tasks
重命名为 taskss
时,错误消失了。这是什么?如果我想将文件夹准确命名为“任务”,如何解决这种奇怪的行为?
最佳答案
只是添加到 @makis 答案:
在 python 3.2 之前,需要 __init__.py
才能使文件夹成为包:
package_name/
__init__.py <- makes package_name a package
foo.py
但是如果您在 Python 3.3+ 中使用 __init__.py
这样可能会生成 pylint
“模块中没有名称”错误:
package_name/
__init__.py
foo.py
subpackage/
other.py
from package_name.subpackage import other
将生成上述错误。
如果您删除该 __init__.py
,pylint 将停止向您发出警告。
我的来源: http://python-notes.curiousefficiency.org/en/latest/python_concepts/import_traps.html
关于python - pylint 无法导入自定义模块和函数(模块中无名称),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53109066/