我正在尝试从控制台运行一个模块。我的目录结构是这样的:
我正在尝试使用以下目录p_03_using_bisection_search.py从problem_set_02目录运行模块:
p_03_using_bisection_search.py
problem_set_02
$ python3 p_03_using_bisection_search.py
里面的代码p_03_using_bisection_search.py是:
__author__ = 'm' from .p_02_paying_debt_off_in_a_year import compute_balance_after def compute_bounds(balance: float, annual_interest_rate: float) -> (float, float): # there is code here, but I have omitted it to save space pass def compute_lowest_payment(balance: float, annual_interest_rate: float) -> float: # there is code here, but I have omitted it to save space pass def main(): balance = eval(input('Enter the initial balance: ')) annual_interest_rate = eval(input('Enter the annual interest rate: ')) lowest_payment = compute_lowest_payment(balance, annual_interest_rate) print('Lowest Payment: ' + str(lowest_payment)) if __name__ == '__main__': main()
我正在导入一个函数,p_02_paying_debt_off_in_a_year.py其中代码是:
p_02_paying_debt_off_in_a_year.py
__author__ = 'm' def compute_balance(balance: float, fixed_payment: float, annual_interest_rate: float) -> float: # this is code that has been omitted pass def compute_balance_after(balance: float, fixed_payment: float, annual_interest_rate: float, months: int=12) -> float: # Omitted code pass def compute_fixed_monthly_payment(balance: float, annual_interest_rate: float) -> float: # omitted code pass def main(): balance = eval(input('Enter the initial balance: ')) annual_interest_rate = eval( input('Enter the annual interest rate as a decimal: ')) lowest_payment = compute_fixed_monthly_payment(balance, annual_interest_rate) print('Lowest Payment: ' + str(lowest_payment)) if __name__ == '__main__': main()
我收到以下错误:
ModuleNotFoundError: No module named '__main__.p_02_paying_debt_off_in_a_year'; '__main__' is not a package
我不知道如何解决这个问题。我已经尝试添加一个__init__.py文件,但它仍然无法正常工作。
__init__.py
只需删除相对导入的点并执行以下操作:
from p_02_paying_debt_off_in_a_year import compute_balance_after