У меня странный импорт Python, и я не могу заставить его работать с любыми предложениями из других обсуждений.
В настоящее время я добавляю небольшой скрипт в чужой модуль, поэтому я не могу изменитьфайловая структура или любой существующий код, который усложняет задачу.
Вот пример скрипта python, который содержит несколько классов:
/path/to/root/directory/aaa/bbb/ccc/utils.py
Текущий разработчик импортирует этоследующим образом:
from aaa.bbb.ccc import utils
utils.SomeClass.someMethod()
Все каталоги в дереве имеют файл __init__.py
Теперь я хочу вызвать модуль извне следующим образом:
import sys
sys.path.append('/path/to/root/directory')
from aaa.bbb.ccc import utils
utils.SomeClass.someMethod()
ThisНЕ работает, и выдает следующую ошибку:
from aaa.bbb.ccc import utils
ImportError: No module named ccc
Однако, небольшое изменение импорта работает:
import sys
sys.path.append('/path/to/root/directory')
from aaa.bbb.ccc.utils import *
SomeClass.someMethod()
Я не понимаю, почему работает 2-й ине 1й.Опять же, я не могу изменить существующий код, поэтому следующие 2 оператора должны работать с моим sys.path.append и import:
from aaa.bbb.ccc import utils
utils.SomeClass.someMethod()
Я не могу удалить utils
из utils.SomeClass
Кто-нибудь знает, как мне этого добиться?