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. 파이썬 – 패키지 안의 함수 실행해 보기
파이썬 패키지 핵심 정보 바로가기