尽管有 init 文件,但为什么会发生“找不到模块”错误?
Why is a Module Not found error happening despite having the init file?
我在 Anaconda 中使用带有 Python 3.8 的 Spyder。我在同一目录中有文件 p、c、s、d 和 init。我正在发布相关行。
文件 p:
from s import C
文件:
class S():
from d import D
文件 c:
from .s import S
class C(S):
文件 d:
class D()
初始化文件:
from .s import S
from .c import C
from .d import D
文件p是这里的主要文件。当我 运行 它时,我得到一个模块未找到错误。追溯是
from s import C (file P)
from .s import S (init)
class S() (file s)
from d import D (file s)
ModuleNotFoundError:没有名为 d 的模块。
为什么会这样?我正在使用 Mac.
如果您有一个包“mypackage”,
mypackage/
__init__.py
a.py
b.py
并且mypackage/__init__.py
是
from .a import A
from .b import B
(但这并不重要)
然后 mypackage/b.py
可以通过相对导入
导入 A
from .a import A
或绝对导入
from mypackage.a import A
但不是
from a import A
我在 Anaconda 中使用带有 Python 3.8 的 Spyder。我在同一目录中有文件 p、c、s、d 和 init。我正在发布相关行。
文件 p:
from s import C
文件:
class S():
from d import D
文件 c:
from .s import S
class C(S):
文件 d:
class D()
初始化文件:
from .s import S
from .c import C
from .d import D
文件p是这里的主要文件。当我 运行 它时,我得到一个模块未找到错误。追溯是
from s import C (file P)
from .s import S (init)
class S() (file s)
from d import D (file s)
ModuleNotFoundError:没有名为 d 的模块。 为什么会这样?我正在使用 Mac.
如果您有一个包“mypackage”,
mypackage/
__init__.py
a.py
b.py
并且mypackage/__init__.py
是
from .a import A
from .b import B
(但这并不重要)
然后 mypackage/b.py
可以通过相对导入
A
from .a import A
或绝对导入
from mypackage.a import A
但不是
from a import A