53. 파이썬 – 패키지 안의 함수 실행해 보기

  • 네이버 블로그 공유하기
  • 카카오톡 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 트위터 공유하기

지난번 포스팅에 이어서 파이썬 패키지에 대해 공부를 해 볼 텐데요
지난 시간에는 패키지의 정의와 패키지 만드는 방법에 대해 알아보았고
이번 시간에는 패키지 안의 함수 실행해 보기에 대해 알아보겠습니다.

파이썬 패키지

패키지 안의 함수 실행

일단 이번 패키지 안의 함수 실행에 있어서 주의 해야 할 사항은 명령프롬프트에서 파이썬 인터프리터를 실행해서 진행해야 합니다.
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 는 어떤 용도로 쓰이는지에 대해 공부해 보도록 하겠습니다

이 포스팅은 ‘위키독스’ 의 ‘점프 투 파이썬‘ 전자책을 구매하여 독학하기 위한 자료로 작성했습니다.

53. 파이썬 – 패키지 안의 함수 실행해 보기

Leave a Comment