Импортировать библиотеки из каталога ROOT в python - PullRequest
0 голосов
/ 26 мая 2020

У меня следующая структура моей программы:

MainDir
├── __init__.py
├── main.py
├── Routine.py
└── Folder1
    ├── __init__.py
    └──function.py

Я знаю, что могу импортировать функцию из folder 1 в мою main.py программу, написав этот оператор:

from Folder1.function import foo

Но я ищу способ сделать это в другом направлении. Как мне импортировать функцию, определенную в Routine.py, в function.py?

1 Ответ

0 голосов
/ 26 мая 2020

Это зависит от того, как вы вызываете свою программу.

Вызов в качестве модуля

Вы делаете что-то вроде

python -m MainDir.main

и какой бы код в вашем MainDir.main вызывает MainDir/Folder1/function.py?

В этом случае вы можете просто добавить следующий импорт в MainDir/Folder1/function.py:

from ..Routine import RoutineFunction

Вызов в качестве сценария

Если вместо этого вы вызываете MainDir/Folder1/function.py как сценарий, используя:

python MainDir/Folder1/function.py

, вы не сможете использовать относительный импорт, как предложено выше. Вам по-прежнему доступно множество вариантов, как описано здесь: Как импортировать другие Python файлы?

Предлагаемое чтение

Python импорт может быть очень запутанным . Вот отличный пост по топи c, который может вам пригодиться: { ссылка }

...