지난번 포스팅에 이어서 파이썬 패키지에 대해 공부를 해 볼 텐데요
지난 시간에는 패키지의 정의와 패키지 만드는 방법에 대해 알아보았고
이번 시간에는 패키지 안의 함수 실행해 보기에 대해 알아보겠습니다.
👇 파이썬 패키지 상세 내용 확인하기 👇
파이썬 패키지
패키지 안의 함수 실행
일단 이번 패키지 안의 함수 실행에 있어서 주의 해야 할 사항은 명령프롬프트에서 파이썬 인터프리터를 실행해서 진행해야 합니다.
IDLE 이나 비주얼스튜디어코드 에서 실행을 하게되면 아래에 진행 할 예제들에서 오류가 발생 할 수 있습니다
첫 번째 echo 모듈
echo 모듈은 echo.py 입니다.
Python
>>> import game.sound.echo
>>> game.sound.echo.echo_test()
echo
>>>두 번째 echo 모듈이 있는 디렉터리까지 from…import 실행
Python
>>> from game.sound import echo
>>> echo.echo_test()
echo
>>>세 번째 echo 모듈의 echo_test 함수를 직접 import 하여 실행
Python
>>> from game.sound.echo import echo_test
>>> echo_test()
echo
>>>echo_test 함수가 안되는 경우 #1
아래와 같은 코드는 반드시 파이썬 인터프리터를 종료하고 다시 실행해야 합니다
Python
(py_study_3110) D:\Dropbox\02.My_Job\80.Study\01.Python\00.study_python_3.11.0\01.TEST>python
Python 3.11.0 | packaged by Anaconda, Inc. | (main, Mar 1 2023, 18:18:21) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import game
>>> game.sound.echo.echo_test()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: module 'game' has no attribute 'sound'
>>>위 코드처럼 파이썬 인터프리터를 새로 시작한 상태에서 import game 을 실행하게 되면 game 디렉터리의 __init__.py 에 정의 되어 있는 것만 참조할 수 있습니다.
echo_test 함수가 안되는 경우 #2
Python
>>> import game.sound.echo.echo_test
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'game.sound.echo.echo_test'; 'game.sound.echo' is not a package
>>>도트 연산자(.)를 사용해서 import a.b.c 처럼 import 할 때 가장 마지막에 항목인 c 는 반드시 모듈 또는 패키지이어야만 합니다.
오늘은 이렇게 패키지 안의 함수 실행하는 방법에 대해 알아보았습니다.
echo 모듈을 import 하여 실행하는 방법부터 echo_test 함수가 안되는 경우 두 가지에 대해서 공부 해봤습니다.
다음 포스팅에서는 __init__.py 는 어떤 용도로 쓰이는지에 대해 공부해 보도록 하겠습니다
이 포스팅은 ‘위키독스’ 의 ‘점프 투 파이썬‘ 전자책을 구매하여 독학하기 위한 자료로 작성했습니다.






