Я использую 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()
Теперь у меня есть пара вопросов:
- использование подстановочных знаков не рекомендуется , но если я использую
from dummypackage import mod_sub
, я не получу доступ к другим импортированным моделям (os
в этом случае). Итак, какова лучшая практика здесь?
- Есть ли лучшие способы импортировать модуль из того же пакета? То, что я сделал, чтобы добавить путь к родительской папке и импорт из package.module выглядит безобразно. Есть ли лучший способ сделать это?