지난 포스팅에서 모듈에는 함수뿐만 아니라 클래스나 변수 등을 포함한 모듈도 있다는 것과
다른 파일에서 모듈을 불러오는 방법에 대해 알아봤습니다
이번 포스팅에서는 모듈을 불러오는 다른 방법에 대해 공부해 보도록 하겠습니다.
- 50. 파이썬 – 클래스나 변수 등을 포함한 모듈
- 49. 파이썬 모듈 – name 변수 (if __name__ == “__main__”:)
- 48. 파이썬 – 모듈의 정의 그리고 모듈 만들기와 모듈 불러오기
파이썬 모듈
모듈을 불러오는 다른 방법
여태까지 진행한 파이썬 모듈에서는 모듈이 있는 폴더에 이동 후에 해당 모듈을 사용을 할 수 있었습니다.
이제 모듈이 저장되어있는 폴더로 이동하지 않고 해당 모듈을 불러서 사용하는 방법도 공부해 보도록 하겠습니다.
먼저 이전 포스팅에서 만들었던 module2.py 파일을 기존 폴더에서 module 이라는 폴더를 하나 더 만들고 해당 폴더로 이동시켜 보겠습니다.
(py_study_3110) D:\Dropbox\02.My_Job\80.Study\01.Python\00.study_python_3.11.0\01.TEST>mkdir module
(py_study_3110) D:\Dropbox\02.My_Job\80.Study\01.Python\00.study_python_3.11.0\01.TEST>move module2.py module
1개 파일을 이동했습니다.
sys.path.append 사용하기
모듈을 불러오는 다른 방법 첫번째는 sys.path.append 를 사용하는 방법입니다.
일단 파이썬 쉘을 실행한 뒤 sys 모듈을 불러오겠습니다.
(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 sys
>>>
위에서 import 한 sys 모듈은 파이썬이 최초 설치될 때 함께 설치되는 라이브러리 모듈입니다.
sys 모듈을 사용을 하게 되면 파이썬 라이브러리가 설치되어 있는 폴더를 확인할 수 있습니다.
>>> sys.path
['', 'C:\\Users\\BSH-MSI\\anaconda3\\envs\\py_study_3110\\python311.zip', 'C:\\Users\\BSH-MSI\\anaconda3\\envs\\py_study_3110\\Lib', 'C:\\Users\\BSH-MSI\\anaconda3\\envs\\py_study_3110\\DLLs', 'C:\\Users\\BSH-MSI\\anaconda3\\envs\\py_study_3110', 'C:\\Users\\BSH-MSI\\anaconda3\\envs\\py_study_3110\\Lib\\site-packages']
>>>
sys.path 를 실행시키게 되면 파이썬 라이브러리가 설치 되어 있는 폴더들을 출력 해 줍니다.
만약에 파이썬 모듈이 위에 출력된 폴더에 있다면 모듈이 저장된 폴더로 이동을 하지 않고도 바로 해당 모듈을 불러서 사용을 할 수가 있을 것입니다.
그럼 sys.path 에 이전에 mkdir 로 생성했던 D:\Dropbox\02.My_Job\80.Study\01.Python\00.study_python_3.11.0\01.TEST\module 라는 폴더를 추가해 주게 된다면 어느 폴더에서든지 해당 모듈을 불러와서 사용할 수 있지 않을까요?
위에서 보여지는 것처럼 sys.path 는 리스트 형식으로 저장되어 있는걸 알 수 있고
리스트는 수정이 가능합니다.
>>> sys.path.append("D:/Dropbox/02.My_Job/80.Study/01.Python/00.study_python_3.11.0/01.TEST/module")
>>> sys.path
['', 'C:\\Users\\BSH-MSI\\anaconda3\\envs\\py_study_3110\\python311.zip', 'C:\\Users\\BSH-MSI\\anaconda3\\envs\\py_study_3110\\Lib', 'C:\\Users\\BSH-MSI\\anaconda3\\envs\\py_study_3110\\DLLs', 'C:\\Users\\BSH-MSI\\anaconda3\\envs\\py_study_3110', 'C:\\Users\\BSH-MSI\\anaconda3\\envs\\py_study_3110\\Lib\\site-packages', 'D:/Dropbox/02.My_Job/80.Study/01.Python/00.study_python_3.11.0/01.TEST/module']
>>>
sys.path.append 라고 명령을 해서 D:\Dropbox\02.My_Job\80.Study\01.Python\00.study_python_3.11.0\01.TEST\module 라는 폴더를 path 에 추가를 해주었습니다.
sys.path 라고 실행해 보면 방금 추가한 폴더가 추가되었음을 확인 할 수 있습니다.
여기서 주의할 점은 그냥 경로를 붙여넣기 해버리면 \\ 로 들어가는데 / 로 변경해서 append 를 해주시면 위처럼 D:/Dropbox/02.My_Job/80.Study/01.Python/00.study_python_3.11.0/01.TEST/module 이렇게 경로가 추가됨을 알 수 있습니다.
이제 정말 모듈을 불러와서 사용할 수 있는지 확인 해 보겠습니다.
>>> import module2
>>> print(module2.add(3, 4))
7
>>>
위처럼 정상적으로 모듈을 불러와서 사용할 수 있는게 확인이 되었습니다.
PYTHONPATH 환경 변수 사용하기
모듈을 다른 방법으로 불러오는 또 하나의 방법은 PYTHONPATH 환경 변수를 사용하는 방법이 있습니다.
(py_study_3110) D:\Dropbox\02.My_Job\80.Study\01.Python\00.study_python_3.11.0\01.TEST>set PYTHONPATH=D:\Dropbox\02.My_Job\80.Study\01.Python\00.study_python_3.11.0\01.TEST\module
(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 module2
>>> print(module2.add(3, 4))
7
>>>
위에서 처럼 set 명령어를 사용해서 PYTHONPATH 환경 변수에 module2.py 파일이 존재하는 D:\Dropbox\02.My_Job\80.Study\01.Python\00.study_python_3.11.0\01.TEST\module 폴더를 설정해 주었습니다.
이렇게 해주면 폴더 이동이나 다른 모듈 추가 작업이 없이도 module2 모듈을 불러와서 사용할 수 있게 됩니다.
맥이나 유닉스 환경에서는 set 명령 대신 export 명령을 사용해야 합니다.
- 이 포스팅은 ‘위키독스’ 의 ‘점프 투 파이썬‘ 전자책을 구매하여 독학하기 위한 자료로 작성했습니다.
