在python3中的模块中导入同级文件

时间:2018-09-03 21:14:16

标签: python python-3.x python-import

我的python项目具有此目录结构

├── main.py
└── util
    ├── color.py
    ├── __init__.py
    └── student.py

main.py是:

from util.student import fun
fun("calling fun from main")

color.py是:

def color_fun(a):
    print(a)

student.py是:

from color import color_fun

def fun(var):
    color_fun(var)

if __name__ == "__main__":
    fun("calling fun from student")

__init__.py为空

当我尝试运行python3 student.py时,它会按预期运行。但是当我尝试运行python3 main.py时,它无法按预期运行,而在python2中却可以正常工作。

我想同时运行python3 student.pypython3 main.py怎么实现?

1 个答案:

答案 0 :(得分:0)

您需要做的只是在您的student.py

中进行此修改
def fun(var):
    color_fun(var)

if __name__ == "__main__":
    from color import color_fun
    fun("calling fun from student")
else:
    from util.color import color_fun

Python3的PYTHONPATH引起了问题