импорт файла одного уровня в модуль в python3 - PullRequest
0 голосов
/ 04 сентября 2018

мой проект на 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.py, а также python3 main.py Как мне этого добиться?

1 Ответ

0 голосов
/ 04 сентября 2018

Все, что вам нужно сделать, это небольшое изменение в вашем 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

PYTHONPATH для Python3 вызывает проблему

...