如何从同一包导入

时间:2018-11-11 16:47:38

标签: python path jupyter-notebook python-import python-module

我在Python 3下使用JupyterWindows 10

我有2个模块:mod_mainmod_sub。我想从osmod_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. 通配符的使用是discouraged,但是如果我使用from dummypackage import mod_sub,那么我将无法访问其他导入的模块(在这种情况下为os)。那么,这里的最佳实践是什么?
  2. 有没有更好的方法可以从同一包中导入模块?我将路径添加到父文件夹和从package.module导入的操作看起来很丑。有更好的方法吗?

0 个答案:

没有答案