У меня есть несколько скриптов, которые использовали общий код в другом каталоге (который является подкаталогом).В Python 3 можно ли импортировать файл из подкаталога?
По различным причинам я не хочу упаковать общий код в пакет Python и не хочу, чтобы все файлы были удалены в один каталог, и я не хочу добавить подкаталог в путь.
Есть ли способ сделать относительный импорт & вытащить файлы в подкаталоге в Python 3?
В IPython3
import subdir.my_shared_library
работает отлично.
Однако это не удается в Python3, а также каждая попытка, которую я сделал, добавить файлы __init__.py
и сделать относительный импорт явно как import .subdir.my_shared_library
.
Есть ли способ обойти это?
Если подкаталог содержит '__init__.py', даже если этот файл пуст, python рассмотрит каталог как пакет. Если этот каталог является подкаталогом рабочего каталога для скрипта, тогда 'import subdirpackage.modulename' должен работать нормально, где modulename - это имя одного из файлов, которые вы хотите импортировать. Если вы используете сценарии с другим рабочим каталогом, вам нужно будет добавить подкаталог в путь python. – zstewart