ModuleNotFoundError:没有名为“ <目录名称>”的模块

时间:2020-10-10 16:14:59

标签: python python-3.x

当我致电python __main__.py

我收到错误消息:

从facebook.fb_api导入FacebookApi ModuleNotFoundError:没有名为“ facebook”的模块

  # __main__.py

from facebook.fb_api import FacebookApi   

if __name__ == "__main__":
    api = FacebookApi()
    api.start()

项目结构

facebook/
├── cache.py
├── configs.py
├── fb_api.py
├── __init__.py
├── __main__.py
├── parser
│   ├── cfg.py
│   ├── example.json
│   ├── __init__.py
│   ├── models.py
│   ├── run_parser.py
│   └── utils.py
├── __pycache__
│   └── fb_api.cpython-36.pyc
├── request_handler.py
└── services
    ├── case_service.py
    └── __init__.py

4 个答案:

答案 0 :(得分:2)

您的fb_api.py__main__.py位于同一目录中,因此您的应用程序不存在facebook文件夹。从您的导入中删除它,它应该可以工作

答案 1 :(得分:0)

因为__main__.py在同一目录中。因此,只需导入fb_api。要使用Facebook.fb_api,然后将 main .py移至Facebook目录。

答案 2 :(得分:0)

您需要从目录结构的更高级别运行代码。与其从facebook文件夹中运行,不如使用python -m facebook从其父文件夹中运行。 -m标志通过其Python名称(在本例中为facebook包)告诉Python您正在运行模块。以这种方式运行的软件包会将其__main__.py文件作为主脚本运行,这正是您想要的。

答案 3 :(得分:0)

尝试本地导入

  # __main__.py

from .fb_api import FacebookApi   

if __name__ == "__main__":
    api = FacebookApi()
    api.start()