티스토리 뷰
Stack Overflow에 자주 검색, 등록되는 문제들과 제가 개발 중 찾아 본 문제들 중에서 나중에도 찾아 볼 것 같은 문제들을 정리하고 있습니다.
Stack Overflow에서 가장 먼저 확인하게 되는 가장 높은 점수를 받은 Solution과 현 시점에 도움이 될 수 있는 가장 최근에 업데이트(최소 점수 확보)된 Solution을 각각 정리하였습니다.
아래 word cloud를 통해 이번 포스팅의 주요 키워드를 미리 확인하세요.
ModuleNotFoundError: What does it mean __main__ is not a package?
모듈을 찾을 수 없음 오류: __main_이 패키지가 아니라는 것은 무엇을 의미합니까?
문제 내용
I am trying to run a module from the console. The structure of my directory is this:
콘솔에서 모듈을 실행하려고 합니다. 내 디렉터리의 구조는 다음과 같다:
I am trying to run the module p_03_using_bisection_search.py
, from the problem_set_02
directory using:
다음을 사용하여 problem_set_02 디렉토리에서 p_03_using_bisection_search.py 모듈을 실행하려고 합니다.
$ python3 p_03_using_bisection_search.py
The code inside p_03_using_bisection_search.py
is:
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()
I am importing a function that is in p_02_paying_debt_off_in_a_year.py
which code is:
나는 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()
I am getting the following error:
다음 오류가 발생합니다.
ModuleNotFoundError: No module named '__main__.p_02_paying_debt_off_in_a_year'; '__main__' is not a package
I have no idea how to solve this issue. I have tried adding a __init__.py
file, but it is still not working.
나는 이 문제를 어떻게 해결해야 할지 모르겠다. __init_.py 파일을 추가하려고 했지만 여전히 작동하지 않습니다.
높은 점수를 받은 Solution
Simply remove the dot for the relative import and do:
상대 가져오기에 대한 점을 제거하고 다음 작업을 수행합니다.
from p_02_paying_debt_off_in_a_year import compute_balance_after
가장 최근 달린 Solution
Just use the name of the main folder which the .py file is in.
.py 파일이 있는 메인 폴더의 이름을 사용하십시오.
from problem_set_02.p_02_paying_debt_off_in_a_year import compute_balance_after
출처 : https://stackoverflow.com/questions/41816973/modulenotfounderror-what-does-it-mean-main-is-not-a-package
'개발 > 파이썬' 카테고리의 다른 글
python 멀티프로세싱 시도하는 중 Windows에서 런타임 오류 (0) | 2022.11.27 |
---|---|
pytest는 모듈을 가져올 수 없지만 python은 가져올 수 있음 (0) | 2022.11.27 |
모듈을 가져올 때 파이썬에서 모듈을 실행하는 이유는 무엇이며, 어떻게 중지합니까? (0) | 2022.11.27 |
파이썬을 사용하여 cURL 명령을 실행하는 방법은? (0) | 2022.11.27 |
OSX 10.6에서 파이썬 및 장고와 함께 MySQLdb를 사용하는 방법은? (0) | 2022.11.27 |