Первое, что нужно сделать, это убедиться, что в подкаталоге есть файл с именем
__init__.py
в нем. Этот файл может быть пустым, но вы не сможете выполнить импорт без него. Затем вы должны знать, что если вы импортируете из подкаталога, вам нужно будет включить что-то вроде
module = __import__("subdirectory.jack2")
То есть вам нужно будет указывать имя подкаталога, в котором хранится модуль, при импорте модуля.
Если вы хотите импортировать из каталога, который не является подкаталогом того каталога, в котором вы работаете, вам нужно убедиться, что он включен в путь к Python. Вы можете изменить путь, установив sys.path
, просто импортировав модуль sys
и добавив новый путь к месту хранения ваших модулей:
import sys
sys.path.append("full/path/to/directory/to/import/from")
Редактировать в ответ на комментарии:
При использовании встроенной функции __import__
важно понимать, что она возвращает модуль верхнего уровня, а не тот, который вы хотите импортировать. Итак, если вы хотите получить доступ к только что импортированному модулю, вам нужно сделать что-то вроде этого:
module = __import__("mymodule")
result = module.mymodule.myfunction()