gpt4 book ai didi

python - 从子文件夹导入模块

转载 作者:IT老高 更新时间:2023-10-28 21:11:23 27 4
gpt4 key购买 nike

我想将子文件夹作为模块导入。因此每个子文件夹都包含一个 __init__.py。我的文件夹结构是这样的:

src\
main.py
dirFoo\
__init__.py
foofactory.py
dirFoo1\
__init__.py
foo1.py
dirFoo2\
__init__.py
foo2.py

在我的主脚本中我导入

from dirFoo.foofactory import FooFactory

在这个工厂文件中,我包含了子模块:

from dirFoo1.foo1 import Foo1
from dirFoo2.foo2 import Foo2

如果我调用我的 foofactory,我会收到错误消息,即 python 无法导入子模块 foo1 和 foo2:

Traceback (most recent call last):
File "/Users/tmp/src/main.py", line 1, in <module>
from dirFoo.foofactory import FooFactory
File "/Users/tmp/src/dirFoo/foofactory.py", line 1, in <module>
from dirFoo1.foo1 import Foo1
ImportError: No module named dirFoo1.foo1

最佳答案

这里没有必要弄乱你的 PYTHONPATHsys.path

要在包中正确使用绝对导入,您还应该包含“根”包名,例如:

from dirFoo.dirFoo1.foo1 import Foo1
from dirFoo.dirFoo2.foo2 import Foo2

或者您可以使用 relative imports :

from .dirfoo1.foo1 import Foo1
from .dirfoo2.foo2 import Foo2

关于python - 从子文件夹导入模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8953844/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com