콘솔에서 모듈을 실행하려고합니다. 내 디렉토리의 구조는 다음과 같습니다.
다음을 사용 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
코드가 있는 함수를 가져오고 있습니다 .
__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
파일 추가를 시도했지만 여전히 작동하지 않습니다.
eval(input(...
비트가 2to3에 의해 제안 되었다는 것을 내기했다 . 나는 오늘 나에게 그렇게했다. 내가 눈을 멀게하는 제안을 따르지 않아서 다행
eval(input...
아마 좋은 아이디어는 아닙니다. 임의의 코드 실행 기회를 열지 않고 그냥 구문 분석합니다.