Ich versuche, ein Modul über die Konsole auszuführen. Die Struktur meines Verzeichnisses ist folgende:
Ich versuche, das Modul p_03_using_bisection_search.py
aus dem problem_set_02
Verzeichnis auszuführen , indem ich Folgendes verwende:
$ python3 p_03_using_bisection_search.py
Der Code darin p_03_using_bisection_search.py
ist:
__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()
Ich importiere eine Funktion, in p_02_paying_debt_off_in_a_year.py
der sich Code befindet:
__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()
Ich erhalte die folgende Fehlermeldung:
ModuleNotFoundError: No module named '__main__.p_02_paying_debt_off_in_a_year'; '__main__' is not a package
Ich habe keine Ahnung, wie ich dieses Problem lösen soll. Ich habe versucht, eine __init__.py
Datei hinzuzufügen , aber es funktioniert immer noch nicht.
eval(input(...
Bit von 2to3 vorgeschlagen wurde. Ich habe es mir heute antun lassen. Ich bin froh, dass ich den Vorschlägen nicht folge. Blindling
eval(input...
wahrscheinlich keine großartige Idee. Ich würde es nur analysieren, anstatt die Möglichkeit für die Ausführung von willkürlichem Code zu eröffnen.