我有这样的结构:
 |- file run_app.py
 |- folder 'tasks'
 |-- file app.py
Run Code Online (Sandbox Code Playgroud)
中有一个字符串run_app.py:
import tasks.app
Run Code Online (Sandbox Code Playgroud)
并且 pylint 警告说
run_app.py:8:0: E0611: No name 'app' in module 'tasks' (no-name-in-module)
Run Code Online (Sandbox Code Playgroud)
当我重命名tasks为 时taskss,错误消失。这是什么?如果我想将文件夹完全命名为“任务”,如何解决这种奇怪的行为?
小智 5
只是为了添加到@makis 答案:
__init__.py在 python 3.2 之前,需要将文件夹作为一个包:
package_name/
  __init__.py <- makes package_name a package
  foo.py
Run Code Online (Sandbox Code Playgroud)
但是如果你在 Python 3.3+ 中使用__init__.py这种方式可能会产生pylint  
“no name in module” 错误:
package_name/
  __init__.py
  foo.py
  subpackage/
    other.py
Run Code Online (Sandbox Code Playgroud)
from package_name.subpackage import other将产生上述错误。
 如果您删除它__init__.py,pylint 将停止警告您。
我的来源:http : //python-notes.curiousefficiency.org/en/latest/python_concepts/import_traps.html