Импорт скрипта из родительского каталога
как импортировать модуль (файл python), который находится в Родительском каталоге?
оба каталога имеют __init__.py
файл в них, но я все еще не могу импортировать файл из родительского каталога?
В этом макете папки скрипт B пытается импортировать скрипт A:
Folder A:
__init__.py
Script A:
Folder B:
__init__.py
Script B(attempting to import Script A)
следующий код в скрипте B не работает:
import ../scriptA.py # I get a compile error saying the "." is invalid
3 ответа:
вы не импортировать скрипты на языке Python можно импортировать модули. Некоторые модули python также являются сценариями, которые вы можете запускать напрямую (они выполняют некоторую полезную работу на уровне модуля).
в целом предпочтительнее использовать абсолютный импорт, а не относительный импорт.
toplevel_package/ ├── __init__.py ├── moduleA.py └── subpackage ├── __init__.py └── moduleB.py
на
moduleB
:from toplevel_package import moduleA
если вы хотите работать
moduleB.py
как скрипт, то убедитесь, что родительский каталог дляtoplevel_package
в своемsys.path
.
С docs:
from .. import scriptA
вы можете сделать это в пакетах, но не в скриптах, которые вы запускаете напрямую. По ссылке выше:
обратите внимание, что как явный, так и неявный относительный импорт основаны на имя текущего модуля. Так как имя основного модуля является всегда " _ _ main__", модули, предназначенные для использования в качестве основного модуля a Приложение Python всегда должно использовать абсолютный импорт.
Если вы создаете скрипт что импортирует A. B. B, вы не получите ValueError.