51. 파이썬 – 모듈을 불러오는 다른 방법

51. 파이썬 – 모듈을 불러오는 다른 방법

지난 포스팅에서 모듈에는 함수뿐만 아니라 클래스나 변수 등을 포함한 모듈도 있다는 것과
다른 파일에서 모듈을 불러오는 방법에 대해 알아봤습니다
이번 포스팅에서는 모듈을 불러오는 다른 방법에 대해 공부해 보도록 하겠습니다.

파이썬 모듈

모듈을 불러오는 다른 방법

여태까지 진행한 파이썬 모듈에서는 모듈이 있는 폴더에 이동 후에 해당 모듈을 사용을 할 수 있었습니다.
이제 모듈이 저장되어있는 폴더로 이동하지 않고 해당 모듈을 불러서 사용하는 방법도 공부해 보도록 하겠습니다.

먼저 이전 포스팅에서 만들었던 module2.py 파일을 기존 폴더에서 module 이라는 폴더를 하나 더 만들고 해당 폴더로 이동시켜 보겠습니다.

Python
(py_study_3110) D:\Dropbox.My_Job.Study.Python
(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개 파일을 이동했습니다.
.study_python_3.11.0.TEST>mkdir module
(py_study_3110) D:\Dropbox.My_Job.Study.Python
(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개 파일을 이동했습니다.
.study_python_3.11.0.TEST>move module2.py module
1개 파일을 이동했습니다.

sys.path.append 사용하기

모듈을 불러오는 다른 방법 첫번째는 sys.path.append 를 사용하는 방법입니다.
일단 파이썬 쉘을 실행한 뒤 sys 모듈을 불러오겠습니다.

Python
(py_study_3110) D:\Dropbox.My_Job.Study.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 sys
>>>
.study_python_3.11.0.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 모듈을 사용을 하게 되면 파이썬 라이브러리가 설치되어 있는 폴더를 확인할 수 있습니다.

Python
>>> 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 는 리스트 형식으로 저장되어 있는걸 알 수 있고
리스트는 수정이 가능합니다.

Python
>>> 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 이렇게 경로가 추가됨을 알 수 있습니다.

이제 정말 모듈을 불러와서 사용할 수 있는지 확인 해 보겠습니다.

Python
>>> import module2
>>> print(module2.add(3, 4))
7
>>>

위처럼 정상적으로 모듈을 불러와서 사용할 수 있는게 확인이 되었습니다.

PYTHONPATH 환경 변수 사용하기

모듈을 다른 방법으로 불러오는 또 하나의 방법은 PYTHONPATH 환경 변수를 사용하는 방법이 있습니다.

Python
(py_study_3110) D:\Dropbox.My_Job.Study.Python
(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
>>>
.study_python_3.11.0.TEST>set PYTHONPATH=D:\Dropbox.My_Job.Study.Python
(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
>>>
.study_python_3.11.0.TEST\module
(py_study_3110) D:\Dropbox.My_Job.Study.Python
(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
>>>
.study_python_3.11.0.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 명령을 사용해야 합니다.

  • 이 포스팅은 ‘위키독스’ 의 ‘점프 투 파이썬‘ 전자책을 구매하여 독학하기 위한 자료로 작성했습니다.
모듈을 불러오는 다른 방법

50. 파이썬 – 클래스나 변수 등을 포함한 모듈

50. 파이썬 – 클래스나 변수 등을 포함한 모듈

지난 포스팅에서는 파이썬 모듈 에서 name 변수 (if __name__ == “__main__”:) 에 대해 공부해 보았습니다.
이번 포스팅에서는 파이썬 모듈 에서 클래스나 변수 등을 포함한 모듈에 대해 공부해 보겠습니다.

파이썬 모듈

클래스나 변수 등을 포함한 모듈

지난 시간 까지 알아봤던 파이썬 모듈에서는 함수만 포함을 했었지만
클래스나 변수 등을 포함한 모듈도 있습니다.

Python
# module2.py
pi = 3.141592

class Math:
    def solv(self, r):
        return pi * (r **2)

def add(a, b):
    return a + b

위의 코드는 원의 넓이를 계산해 주는 Math 클래스와 두개의 수를 더해주는 add 함수, 원주율 값에 해당하는 pi 변수 처럼 클래스, 함수, 변수 를 모두 포함하고 있습니다.
주석에 표시된 것처럼 module2.py로 저장을 한뒤
가상환경 프롬프트를 실행해서 대화형 인터프리터를 열어서 아래처럼 연습해 보겠습니다.

Python
(py_study_3110) D:\>cd D:\Dropbox.My_Job.Study.Python
(py_study_3110) D:\>cd D:\Dropbox\02.My_Job\80.Study\01.Python\00.study_python_3.11.0\01.TEST

(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.pi)
3.141592
>>>
.study_python_3.11.0.TEST
(py_study_3110) D:\Dropbox.My_Job.Study.Python
(py_study_3110) D:\>cd D:\Dropbox\02.My_Job\80.Study\01.Python\00.study_python_3.11.0\01.TEST

(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.pi)
3.141592
>>>
.study_python_3.11.0.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.pi) 3.141592 >>>

위에서 작성한 것 처럼 module2.pi 라고 입력을 해서 module2.py 파일에 생성되어 있는 pi 변수 값을 사용을 할 수가 있습니다.

Python
>>> a = module2.Math()
>>> print(a.solv(2))
12.566368
>>>

위 작성한 코드는 module2.py 에 생성되어 있는 Math 클래스를 사용하는 방법을 보여주는 코드입니다.
위처럼 모듈 안에 있는 클래스를 사용하고자 한다면 “.”(도트 연산자)로 클래스 이름 앞에 모듈 이름을 우선 입력해 주어야 합니다.

Python
>>> print(module2.add(module2.pi, 4.4))
7.5415920000000005
>>>

위 코드처럼 module2.py 에 생성되어 있는 add 함수도 사용할 수 있음을 알 수 있습니다.

다른 파일에서 모듈 불러오기

지금까지 직접 만든 모듈 파일을 불러오기 위해서 대화형 인터프리터를 사용했었습니다.
이제 다른 파이썬 파일에서 기존에 만들어 놨던 모듈을 불러서 사용하는 방법에 대해 공부해 보겠습니다.
좀전에 만들어 봤던 module2.py 파일을 다른 파이썬 파일에서 불러와 사용을 해보도록 하겠습니다.

module_test.py 라는 파일을 생성을 해보겠습니다.

Python
# module_test.py
import module2

result = module2.add(3, 4)
print(result)

Python
7

이처럼 다른 파이썬 파일에서 import 문을 통해 module2.py 파일을 module2 모듈로 불러와서 사용을 할 수가 있습니다.
주의해야 할 점은 두 개의 파일. module2.py 와 module_test.py 는 같은 폴더에 존재해야 한다는 것입니다.

  • 이 포스팅은 ‘위키독스’ 의 ‘점프 투 파이썬‘ 전자책을 구매하여 독학하기 위한 자료로 작성했습니다.
50. 파이썬 - 클래스나 변수 등을 포함한 모듈

49. 파이썬 모듈 – name 변수 (if __name__ == “__main__”:)

49. 파이썬 모듈 – name 변수 (if __name__ == “__main__”:)

지난 포스팅부터 파이썬 모듈에 대해 공부를 시작했습니다.
모듈의 개념과 만드는 방법과 불러오는 방법에 대해 공부했었는데요
이번 포스팅에서는 __name__ 변수 와 if __name__ == “__main__”: 가 어떤 의미인지 알아보도록 하겠습니다.

파이썬 모듈

if __name__ == “__main__”: 이 뭘까?

지난 포스팅에서 만들어 봤던 module1.py 파일을 아래처럼 변경해 보았습니다.

Python
# module1.py
def add(x, y):
    return x + y

def subtrack(x, y):
    return x - y

print(add(1, 4))
print(subtrack(4, 2))

add(1, 4) 와 subtrack(4, 2) 의 결과를 print 문을 통해 출력하는 문장을 추가했습니다.
이제 아래처럼 module1.py 파일을 실행해 보겠습니다.

BAT
(py_study_31010) D:\Dropbox.My_Job.Study.Python
(py_study_31010) D:\Dropbox\02.My_Job\80.Study\01.Python\00.study_python_3.11.0\01.TEST>python module1.py
5
2
.study_python_3.11.0.TEST
>python module1.py
5 2

당연히 예상한 대로 print 문을 통한 add 와 subtrack 함수의 결과값이 잘 출력이 되었습니다.
그럼 이전 포스팅에서 처럼 파이썬 대화형 인터프리터에서 module1.py 파일을 실행을 해보겠습니다.

Python
(py_study_31010) D:\Dropbox.My_Job.Study.Python
(py_study_31010) D:\Dropbox\02.My_Job\80.Study\01.Python\00.study_python_3.11.0\01.TEST>python
Python 3.10.10 | packaged by Anaconda, Inc. | (main, Mar 21 2023, 18:39:17) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import module1
5
2
>>>
.study_python_3.11.0.TEST>python
Python 3.10.10 | packaged by Anaconda, Inc. | (main, Mar 21 2023, 18:39:17) [MSC v.1916 64 bit (AMD64)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> import module1 5 2 >>>

이상하죠?
import module1 을 실행하는 순간 module1.py 파일이 실행되어 결과값을 출력을 하게 됩니다.
원래 목적은 module1.py 파일의 add 함수와 subtrack 함수를 사용하려고 하는 목적인데 말이죠
이런 문제를 방지하기 위해 module1.py 파일을 아래 코드처럼 변경해야 합니다.

Python
# module1.py
def add(x, y):
    return x + y

def subtrack(x, y):
    return x - y

if __name__ == "__main__":
    print(add(1, 4))
    print(subtrack(4, 2))

if __name__ == “__main__”: 이라는 문장을 사용하게 되면
이전에 명령 프롬프트에서 python module1.py 라고 실행했을 때와 마찬가지로 __name__ == “__main__” 이 문장이 참이 되어 if 문 다음 문장이 수행이 됩니다.
반대로 대화형 인터프리터나 다른 파일에서 이 모듈을 불러서 사용을 하게 될 때에는 __name__ == “__main__” 이 거짓이 되어 if 문 다음에 있는 문장들이 수행이 되지 않게 됩니다.

위 코드처럼 module1.py 를 수정을 했으면 대화형 인터프리터를 열고 실행을 해보겠습니다.

Python
>>> import module1
>>>

이제 아무런 결과값도 출력하지 않습니다.

name 변수? __name__ 변수란?

파이썬에서 사용하는 __name__ 변수는 파이썬이 내부적으로 사용하는 특별한 변수 이름입니다.
만일 명령프롬프트에서 python module1.py 라고 직접 module1.py 파일을 실행하는 경우에 module1.py 의 __name__ 변수에는 __main__ 이라는 값이 저장이 됩니다.
그러나 파이썬 쉘이나 다른 파이썬 모듈에서 module1 을 import 하는 경우에는 module1.py 의 __name__ 변수에는 module1.py 의 모듈 이름값인 module1 이 저장이 되게 됩니다.

Python
>>> import module1
>>> module1.__name__
'module1'
>>>

  • 이 포스팅은 ‘위키독스’ 의 ‘점프 투 파이썬‘ 전자책을 구매하여 독학하기 위한 자료로 작성했습니다.
49. 파이썬 모듈 - __name__ 변수(if __name__ == __main__) name 변수

48. 파이썬 – 모듈의 정의 그리고 모듈 만들기와 모듈 불러오기

48. 파이썬 – 모듈의 정의 그리고 모듈 만들기와 모듈 불러오기

지난 포스팅에서는 파이썬 클래스 에 대해 마무리를 했고
이번 포스팅부터는 파이썬 모듈에 대해 공부해 보려 합니다.
그중에서 모듈이 어떤건지 모듈의 정의와 모듈 만들기와 모듈 불러오기에 대해 공부해 보겠습니다.

파이썬 모듈

모듈의 정의

모듈이라는 것은 이전에 공부했던 함수나 변수, 또는 클래스를 모아 놓은 파이썬 파일이라고 보시면 됩니다.
다르게 해석하자면 모듈은 다른 파이썬 프로그램에서 불러와서 사용할 수 있게끔 만들어진 파이썬 파일이라고 보시면 됩니다.

파이썬 프로그래밍을 진행을 하다 보면 굉장히 많은 수의 모듈을 사용을 하게 됩니다.
이렇게 사용되는 모듈은 기존에 다른 개발자들이 이미 만들어 놓은 모듈일 수도 있고
우리가 프로그래밍을 하면서 직접 만들어 사용하는 모듈일 수도 있습니다.

모듈 만들기

일단 간단하게 모듈 만들기를 해보겠습니다

Python
# module1.py
def add(x, y):
    return x + y

def subtrack(x, y):
    return x - y

위 코드는 add 와 subtrack 함수만 존재하는 module1.py 파일입니다.
위처럼 파이썬 파일을 만들었는데 이 파일이 모듈입니다.
에디터로 파이썬 파일을 만들었었다면 다른 것이 없습니다.
즉 파이썬 확장자인 ~.py 로 만든 파이썬 파일은 모두 모듈이라고 보시면 됩니다.

모듈 불러오기

방금 위에서 만든 module1.py 파일, 즉 모듈을 파이썬에서 어떻게 불러와야 할까요?
우선 명령프롬프트 창을 열고 모듈을 만든 폴더로 이동을 해서 대화형 인터프리터를 실행해 보겠습니다.

저희는 아나콘다를 통해 비주얼스튜디오코드를 사용하기 때문에 아나콘다 프롬프트를 사용해 보겠습니다.
아나콘다를 통한 비주얼스튜디오코드 에 관한 지난 포스팅이 있으니 참고 해보시기 바라며 다음으로 넘어가겠습니다.

아래 처럼 아나콘다 프롬프트를 실행하고 가상환경을 불러와 줍니다.

conda activate py_study_31010

그리고 모듈을 생성한 폴더로 이동합니다.

d:
cd D:\Dropbox.My_Job.Study.Python
d:
cd D:\Dropbox\02.My_Job\80.Study\01.Python\00.study_python_3.11.0\01.TEST\
.study_python_3.11.0.TEST\

이동한 폴더에 내용을 확인을 해보고 module1.py 가 있나 확인 해 봅니다.

dir

이제 파일이 있는것을 확인했으니 이제 여기서 파이썬 대화형 인터프리터를 실행해 줍니다.

python
BAT
(base) C:\Users\donnr>conda activate py_study_31010

(py_study_31010) C:\Users\donnr>d:

(py_study_31010) D:\>cd D:\Dropbox.My_Job.Study.Python
(base) C:\Users\donnr>conda activate py_study_31010

(py_study_31010) C:\Users\donnr>d:

(py_study_31010) D:\>cd D:\Dropbox\02.My_Job\80.Study\01.Python\00.study_python_3.11.0\01.TEST\

(py_study_31010) D:\Dropbox\02.My_Job\80.Study\01.Python\00.study_python_3.11.0\01.TEST>dir
 D 드라이브의 볼륨에는 이름이 없습니다.
 볼륨 일련 번호: 32C2-7736

 D:\Dropbox\02.My_Job\80.Study\01.Python\00.study_python_3.11.0\01.TEST 디렉터리

2023-04-26  오후 09:45    <DIR>          .
2023-04-26  오후 09:18    <DIR>          ..
2023-04-18  오후 09:45                30 ex_test.txt
2023-04-26  오후 09:45                87 module1.py
2023-04-25  오전 08:20             4,441 test.py
2023-04-18  오후 10:09                30 test.txt
2023-04-18  오후 07:42               102 test_02.py
2023-04-18  오후 10:01                49 write_text.txt
2023-04-17  오후 03:25                 0 신규파일.txt
               7개 파일               4,739 바이트
               2개 디렉터리  326,446,088,192 바이트 남음

(py_study_31010) D:\Dropbox\02.My_Job\80.Study\01.Python\00.study_python_3.11.0\01.TEST>python
Python 3.10.10 | packaged by Anaconda, Inc. | (main, Mar 21 2023, 18:39:17) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>
.study_python_3.11.0.TEST\
(py_study_31010) D:\Dropbox.My_Job.Study.Python
(base) C:\Users\donnr>conda activate py_study_31010

(py_study_31010) C:\Users\donnr>d:

(py_study_31010) D:\>cd D:\Dropbox\02.My_Job\80.Study\01.Python\00.study_python_3.11.0\01.TEST\

(py_study_31010) D:\Dropbox\02.My_Job\80.Study\01.Python\00.study_python_3.11.0\01.TEST>dir
 D 드라이브의 볼륨에는 이름이 없습니다.
 볼륨 일련 번호: 32C2-7736

 D:\Dropbox\02.My_Job\80.Study\01.Python\00.study_python_3.11.0\01.TEST 디렉터리

2023-04-26  오후 09:45    <DIR>          .
2023-04-26  오후 09:18    <DIR>          ..
2023-04-18  오후 09:45                30 ex_test.txt
2023-04-26  오후 09:45                87 module1.py
2023-04-25  오전 08:20             4,441 test.py
2023-04-18  오후 10:09                30 test.txt
2023-04-18  오후 07:42               102 test_02.py
2023-04-18  오후 10:01                49 write_text.txt
2023-04-17  오후 03:25                 0 신규파일.txt
               7개 파일               4,739 바이트
               2개 디렉터리  326,446,088,192 바이트 남음

(py_study_31010) D:\Dropbox\02.My_Job\80.Study\01.Python\00.study_python_3.11.0\01.TEST>python
Python 3.10.10 | packaged by Anaconda, Inc. | (main, Mar 21 2023, 18:39:17) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>
.study_python_3.11.0.TEST
>dir
D 드라이브의 볼륨에는 이름이 없습니다. 볼륨 일련 번호: 32C2-7736 D:\Dropbox.My_Job.Study.Python
(base) C:\Users\donnr>conda activate py_study_31010

(py_study_31010) C:\Users\donnr>d:

(py_study_31010) D:\>cd D:\Dropbox\02.My_Job\80.Study\01.Python\00.study_python_3.11.0\01.TEST\

(py_study_31010) D:\Dropbox\02.My_Job\80.Study\01.Python\00.study_python_3.11.0\01.TEST>dir
 D 드라이브의 볼륨에는 이름이 없습니다.
 볼륨 일련 번호: 32C2-7736

 D:\Dropbox\02.My_Job\80.Study\01.Python\00.study_python_3.11.0\01.TEST 디렉터리

2023-04-26  오후 09:45    <DIR>          .
2023-04-26  오후 09:18    <DIR>          ..
2023-04-18  오후 09:45                30 ex_test.txt
2023-04-26  오후 09:45                87 module1.py
2023-04-25  오전 08:20             4,441 test.py
2023-04-18  오후 10:09                30 test.txt
2023-04-18  오후 07:42               102 test_02.py
2023-04-18  오후 10:01                49 write_text.txt
2023-04-17  오후 03:25                 0 신규파일.txt
               7개 파일               4,739 바이트
               2개 디렉터리  326,446,088,192 바이트 남음

(py_study_31010) D:\Dropbox\02.My_Job\80.Study\01.Python\00.study_python_3.11.0\01.TEST>python
Python 3.10.10 | packaged by Anaconda, Inc. | (main, Mar 21 2023, 18:39:17) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>
.study_python_3.11.0.TEST 디렉터리
2023-04-26 오후 09:45 <DIR> . 2023-04-26 오후 09:18 <DIR> .. 2023-04-18 오후 09:45 30 ex_test.txt 2023-04-26 오후 09:45 87 module1.py 2023-04-25 오전 08:20 4,441 test.py 2023-04-18 오후 10:09 30 test.txt 2023-04-18 오후 07:42 102 test_02.py 2023-04-18 오후 10:01 49 write_text.txt 2023-04-17 오후 03:25 0 신규파일.txt 7개 파일 4,739 바이트 2개 디렉터리 326,446,088,192 바이트 남음 (py_study_31010) D:\Dropbox.My_Job.Study.Python
(base) C:\Users\donnr>conda activate py_study_31010

(py_study_31010) C:\Users\donnr>d:

(py_study_31010) D:\>cd D:\Dropbox\02.My_Job\80.Study\01.Python\00.study_python_3.11.0\01.TEST\

(py_study_31010) D:\Dropbox\02.My_Job\80.Study\01.Python\00.study_python_3.11.0\01.TEST>dir
 D 드라이브의 볼륨에는 이름이 없습니다.
 볼륨 일련 번호: 32C2-7736

 D:\Dropbox\02.My_Job\80.Study\01.Python\00.study_python_3.11.0\01.TEST 디렉터리

2023-04-26  오후 09:45    <DIR>          .
2023-04-26  오후 09:18    <DIR>          ..
2023-04-18  오후 09:45                30 ex_test.txt
2023-04-26  오후 09:45                87 module1.py
2023-04-25  오전 08:20             4,441 test.py
2023-04-18  오후 10:09                30 test.txt
2023-04-18  오후 07:42               102 test_02.py
2023-04-18  오후 10:01                49 write_text.txt
2023-04-17  오후 03:25                 0 신규파일.txt
               7개 파일               4,739 바이트
               2개 디렉터리  326,446,088,192 바이트 남음

(py_study_31010) D:\Dropbox\02.My_Job\80.Study\01.Python\00.study_python_3.11.0\01.TEST>python
Python 3.10.10 | packaged by Anaconda, Inc. | (main, Mar 21 2023, 18:39:17) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>
.study_python_3.11.0.TEST
>python
Python 3.10.10 | packaged by Anaconda, Inc. | (main, Mar 21 2023, 18:39:17) [MSC v.1916 64 bit (AMD64)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>>

이처럼 파이썬의 대화형 인터프리터에서는 파이썬 파일을 저장한 폴더로 이동을 해야 모듈을 읽어올 수 있습니다.

Python
>>> import module1
>>> print(module1.add(3, 4))
7
>>> print(module1.subtrack(4, 2))
2
>>>

위 코드처럼 module1.py 로 생성한 모듈을 불러오기 위해 import module1 이라고 했습니다.
실수로라도 .py 를 붙이면 안됨을 명심해 주세요
import 는 만들어져 있는 파이썬 모듈을 사용할 수 있게 해주는 명령입니다.
module1.py 파일에 있는 add 함수와 subtrack 함수를 사용하기 위해 위 코드 처럼 module1.add, module1.subtrack 같이 모듈 이름 뒤에 “.”(도트 연산자) 를 붙이고 함수 이름을 쓰시면 됩니다.

import 는 현재 디렉토리에 있는 파일이나 파이썬 라이브러리가 저장된 디렉토리에 있는 모듈만 불러올 수 있습니다.
파이썬 라이브러리는 파이썬을 설치 할 때 자동으로 설치되는 파이썬의 모듈들을 얘기합니다.

import 사용법

import 의 사용법은 간단합니다.

Python
import 모듈 이름

앞에서 보았듯이 여기에서 모듈 이름은 파일이름 module1.py 에서 .py 확장자를 제거한 module1 만을 말합니다.

모듈 이름 없이 함수 이름 사용

매번 모든 경우에 module1.add, module1.subtrack 처럼 쓰는 것은 아닙니다.
그냥 add, subtrack 처럼 모듈 없이 함수 이름만 쓰고 싶은 경우도 있습니다.
이럴 때 아래 처럼 사용하시면 됩니다.

Python
from 모듈 이름 import 모듈 함수

아래의 코드를 보면 이해가 되실 겁니다.

Python
>>> from module1 import add
>>> add(3, 4)
7
>>>

그러면 add 와 subtrack 함수를 둘 다 사용하려면 어떻게 할까요?

Python
from module1 import add, subtrack
from module1 import *

위 예처럼 두가지 방법이 있습니다.
첫번째 처럼 콤마로 모듈 함수를 불러오는것이 있고
두번째 처럼 “*” 문자를 사용할 수도 있습니다.

* 문자는 모든 것을 의미합니다.
파이썬에서도 마찬가지로 사용됩니다.

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

48. 파이썬 - 모듈의 정의 그리고 모듈 만들기와 모듈 불러오기