4 ответов:
просто удалите точку для относительного импорта и сделайте:
from p_02_paying_debt_off_in_a_year import compute_balance_after
у меня та же проблема, что и у вас. Я думаю, проблема в том, что вы использовали относительный импорт в
in-package import. Нет никакого__init__.pyв свой каталог. Так что просто импортируйте, как ответил Моисей выше.основная проблема, я думаю, когда вы импортируете с точкой, например:
from .p_02_paying_debt_off_in_a_year import compute_balance_after.это эквивалентно :
from __main__.p_02_paying_debt_off_in_a_year import compute_balance_after.мы все это знаем
__main__относится к текущему модулюp_03_using_bisection_search.py.здесь приходит вопрос:
когда переводчик войдет
p_03.pyсценарий равен :
from p_03_using_bisection_search.p_02_paying_debt_off_in_a_year import compute_balance_afterвидимо,
p_03_using_bisection_searchне содержит никаких модулей или экземпляров с именемp_02_paying_debt_off_in_a_year.вкратце, интерпретатор не знает вашу архитектуру каталогов.
поэтому я придумал более чистое решение без изменения ценностей среды python (посмотрев вверх, как запросы сделать в относительный импорт):
основная архитектура каталога:
main.py
setup.py- - -
problem_set_02/------
__init__.py------
p01.py------
p02.py------
p03.pyзапись
__init__.py:from .p_02_paying_debt_off_in_a_year import compute_balance_afterздесь
__main__и__init__, это точно относится к модулюproblem_set_02.затем перейдите к
main.py:
import problem_set_02вы также можете написать
setup.pyдля добавления конкретного модуля в среду.
привет пожалуйста, следуйте ниже шаг, вы решите эту проблему. Если вы создали каталог и подкаталог, выполните следующие действия и, пожалуйста, имейте в виду, что все каталоги должны иметь "init.py", чтобы он был распознан как каталог.
" импорт sys "и запустить" sys.путь", вы сможете увидеть весь путь, который находится в поиске по python.Вы должны иметь возможность видеть свой текущий рабочий каталог.
теперь импорт подкаталог и соответствующий модуль, который вы хотите использовать с помощью импорта выполните следующую команду:" import subdir.подкаталог.имя модуля как abc" и теперь вы можете использовать методы в этом модуле. ScreenShotforSameIssue
Как вы можете видеть на этом скриншоте, у меня есть один родительский каталог и два подкаталога, а во вторых подкаталогах у меня есть модуль==CommonFunction и вы видите правую сторону после выполнения sys.путь я вижу свою работу каталог

Comments