【发布时间】:2021-03-27 11:31:21
【问题描述】:
在过去的几个小时里,我试图弄清楚从父目录和子目录导入模块的 Pythonic 方式是什么。我做了一个项目只是为了测试目的并将它托管在github,所以你可以看看它以更好地理解我的问题。 在项目中,我们有以下文件结构:
├── __init__.py
├── main.py
└── project
├── a.py
├── __init__.py
└── subdirectory
├── b.py
└── __init__.py
我试图弄清楚如何从子目录和父目录导入模块。
如果我尝试将模块 ./project/subdirectories/b.py 和 ./project/a.py 导入到 main.py 模块中而不在导入语句中指定根目录的名称,那么 pylint 开始抱怨它无法找到模块,但程序运行良好:
如果我在 import 语句中指定了根目录,那么 pylint 将停止抱怨,但程序不再运行:
请有人可以通过在import 语句,然后程序停止工作?
【问题讨论】:
-
对我来说听起来像是 Pylint 中的一个错误。您可以在 GitHub 上打开一个错误,同时使用 pylint 在模块的顶行写下此消息来禁用此消息:# pylint: disable=import-error
-
我在
reddit.com/r/learnpython上问了同样的问题,并被告知要从根目录中删除__init__.py文件。我删除了它,pylint 开始正常工作。我可能会留下这个问题,直到有人给出关于为什么__init__.py在根目录中是多余的全面答案。
标签: python module python-import pylint