在Python3中,如何在模块中导入同级文件?

3
我的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
你所需要做的就是在你的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 导致了问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接