Как импортировать файл из другого вложенного одноуровневого каталога в python - PullRequest
0 голосов
/ 04 июня 2019

Я пытаюсь импортировать файл, который находится в другой папке, но не может это сделать.Моя структура папок

Animals/Bird/Birds.py

Animals/Bird/__init__.py

Animals/Mammals/Mammals.py

Animals/Mammals/Testing.py

Animals/Mammals/__init__.py

Я не могу получить доступ к файлу Birds.py из файла Testing.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 *

Я хотел получить доступ к файлу Birds.py из файла Testing.py, который является другим каталогом, который вызывает у меня ошибку "ModuleNotFoundError: No module named 'Bird'"

Ответы [ 2 ]

0 голосов
/ 04 июня 2019

Попробуйте:

from ..Bird.Birds import *

или если вы также хотите Bird __init__.py:

from ..Bird import *

, так как вам сначала нужно перейти в родительский каталог, где moduleнаходится.

Если вы находитесь в каталоге Mammals, а не в Testing.py, вам понадобится один . перед Bird:

from .Bird.Birds import *
0 голосов
/ 04 июня 2019

после некоторого исследования я думаю, что вы не можете напрямую импортировать его, поэтому вы можете попытаться расширить область действия python до нужного вам каталога на

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