Как импортировать из одной и той же упаковки - PullRequest
0 голосов
/ 11 ноября 2018

Я использую Python 3 и Jupyter под Windows 10.

У меня есть 2 модуля: mod_main и mod_sub. Я хотел бы импортировать различные модули (в данном случае только os) от mod_sub до mod_main. Подход, который работает для меня, заключается в следующем:

mod_main.py

from pathlib import Path # works with / for any OS
import sys
sys.path.append(str(Path('C:/MyApps/Python_Base')))
from dummypackage.mod_sub import *
#from dummypackage import mod_sub
def print_path():
    print(os.path.realpath(__file__))

mod_sub.py

import os
print('mod_sub is imported')

Затем я запускаю следующее из Jupyter Notebook под C:\MyApps\Python_Base

from dummypackage import mod_main
import importlib
importlib.reload(mod_main)
mod_main.print_path()

Теперь у меня есть пара вопросов:

  1. использование подстановочных знаков не рекомендуется , но если я использую from dummypackage import mod_sub, я не получу доступ к другим импортированным моделям (os в этом случае). Итак, какова лучшая практика здесь?
  2. Есть ли лучшие способы импортировать модуль из того же пакета? То, что я сделал, чтобы добавить путь к родительской папке и импорт из package.module выглядит безобразно. Есть ли лучший способ сделать это?
...