Я использую Python 3.4модуль импорт в Python3
У меня есть структура каталогов, которая выглядит следующим образом:
A
B
c.py
d.py
__init__.py
C
e.py
f.py
__init__.py
g.py
__init__.py
От g.py я могу импортировать вещи как из B и модулей C.
мне нужно, в e.py, импортировать что-то из c.py
Я пробовал:
import B
и
from B.c import stuff_I_need
Для обоих я получаю ошибка:
"No module named B".
Я также пытался что-то вроде:
from A.B.c import stuff_I_need
Я дополнительно смущает тот факт, с одинаковой структурой каталогов, я могу сделать импорт мне нужно с Python 2.7.
Помогите мне выяснить, что происходит?
Решение:
PACKAGE_PARENT = '..'
SCRIPT_DIR = os.path.dirname(os.path.realpath(os.path.join(os.getcwd(), os.path.expanduser(__file__))))
sys.path.append(os.path.normpath(os.path.join(SCRIPT_DIR, PACKAGE_PARENT)))
Взятые из here.
В качестве альтернативы пакет может быть установлен на сайт-пакеты в зависимости от целей 'A'. Но @ Стивен-Саммерс прав, это должно быть на вашем пути к питону. –
Спасибо за ответ. Я сделал что-то подобное: PACKAGE_PARENT = '..' SCRIPT_DIR = os.path.dirname (os.path.realpath (os.path.join (os.getcwd(), os.path.expanduser (__ file__)))) sys.path.append (os.path.normpath (os.path.join (SCRIPT_DIR, PACKAGE_PARENT))) – RandomGuyqwert