从python包导入模块

时间:2018-10-13 09:24:02

标签: python package

我的包裹具有以下结构

Main_file 
     __init__.py
     main.py
     sub_folder
          __init.py
          a.py
          b.py

b.py包含

def print_value():
    print("hello")

a.py包含

import b
b.print_value()

在main.py

from sub_folder import a

当我运行main.py时出现以下错误

No module named 'b'

2 个答案:

答案 0 :(得分:1)

由于sub_folder不在您的PYTHONPATH中,因此您需要使用a.py中的relative import

from . import b
b.print_value()

答案 1 :(得分:0)

您还可以通过以下方式将sub_folder包含到系统路径中

import sys
sys.path.append(<path to sub_folder>)

注意:如下面的注释所示,由于双重载荷,这可能会产生问题。这适用于脚本,不是编写包时使用的正确方法。