Ваша текущая структура каталогов кажется идеальной, если приложение запущено через main.py
.
Python всегда будет автоматически добавлять родительский каталог основного сценария в начало sys.path
(т. Е. folder
в вашем примере). Это означает, что импортная машина будет предоставлять этот приоритет каталога при поиске модулей и пакетов, которые не являются частью стандартного libarary.
Учитывая это, вы можете импортировать classes.py
модуль в function.py
, например, так:
from items import classes
(Обратите внимание, что я переименовал модуль, потому что class
является питон ключевое слово).
Если вы позже добавили еще один модуль stuff
, и хотел, чтобы импортировать его в functions.py
, вы могли бы сделать:
from stuff import another
и если суб-пакет был добавлен в items
, и вы хотели бы импортировать модуль от этого, вы могли бы сделать:
from items.subpackage import module
Импорт указанных в этом сверху вниз, как можно использовать из любого модуля внутри приложения, потому что они всегда Relat в родительский каталог основного сценария, который имеет приоритет.
Добавьте родительскую папку к вам PYTHONPATH ('sys.path.append (...)'), а затем просто выполните 'from stuff init function' в' class.py'. Это одно из решений ... – tamasgal
Возможный дубликат http://stackoverflow.com/questions/72852/how-to-do-relative-imports-in-python – kdopen
Определенный дубликат http://stackoverflow.com/questions/27215912/import -neighboring-module-in-python/27216343 # 27216343 – kdopen