如何从python中另一个嵌套的兄弟目录中导入文件

时间:2019-06-04 08:11:28

标签: python-3.x importerror python-packaging

我正在尝试导入另一个文件夹中的文件,但无法执行。 我的文件夹结构是

Animals/Bird/Birds.py

Animals/Bird/__init__.py

Animals/Mammals/Mammals.py

Animals/Mammals/Testing.py

Animals/Mammals/__init__.py

我无法从Testing.py文件访问Birds.py文件

Animals/Bird/__init__.py
----------------------
name = "Bird"


Animals/Mammals/__init__.py
----------------------
name = "Mammals"


Animals/Bird/Birds.py
----------------------
print("Hello")


Animals/Mammals/Mammals.py
----------------------
print("BYE")

我尝试使用 init .py文件进行导入,但找不到解决方法

# Import classes from your brand new package
from Mammals import *

from Bird.Birds import *

我想从Testing.py文件访问Birds.py文件,该文件是其他目录,导致我"ModuleNotFoundError: No module named 'Bird'"错误

2 个答案:

答案 0 :(得分:0)

经过一番研究,我认为您不能直接导入它,因此您可以尝试将python的作用域扩展到您想要的目录

import sys
sys.path.append('Animals/Bird') # directory you want to access that you might wanna put more accuratly
from Birds import *

答案 1 :(得分:0)

尝试:

from ..Bird.Birds import *

或者如果您还想要Bird __init__.py

from ..Bird import *

您需要先进入module所在的父目录。

如果您将位于Mammals目录中而不是Testing.py中,则只需在.前面加上一个Bird

from .Bird.Birds import *