SlideShare a Scribd company logo
1 of 18
Download to read offline
널널한 교수의 기초 파이썬
18_1. 파이썬 패키지
창원대학교 정보통신공학과 박동규
동영상 강의자료와 코드
• 동영상 강의(널널한 교수의 기초 파이썬)
• https://www.youtube.com/watch?
v=TK6RLGaM3Ao&list=PL2P1Vm9k53HOEn-QYXAfblQWkR0OW9mKX
• 소스코드( GitHub )
• https://github.com/dongupak/Basic-Python-Programming
모듈 정리
util.py 파일
machine_learning.py 파일
my_work.py
import util
import machine_learning
필요한 코드
모듈내의 함수, 클래스, 

변수등을 가져올 수 있다

-> 생산성 증대됨
파이썬 모듈
https://docs.python.org/3/py-modindex.html
파이썬에서 자주 사용하는 기능 : 표준 모듈로 정의
파이썬 패키지
• 큰 프로젝트를 수행하기 위해서는 이미 잘 만들어진 코드를 활용해
야 한다.

• 잘 만들어진 코드를 활용하는 방법이 모듈을 사용하는 것이다

• 그러나 모듈의 수가 많아지면 폴더(디렉토리) 아래에 계층적으로 두
는 것이 더욱 편리하다

• 한 폴더에 유사한 성격의 여러 모듈을 두고 이 폴더를 가져오는 방
식으로 개발을 하는데 이 폴더를 패키지라고 한다
패키지 경로
• 파이썬에서 모듈은 .py 파일이다. 패키지는 모듈의 컬렉션(모듬)이
다

• 폴더(디렉토리) 안에 __init__.py 파일이 있으면 해당 폴더는 패키
지로 인식되는데 파이썬 3.3 버전 부터는 이 파일이 없어도 패키지
로 인식된다

• 예제: pkgTutorial 이라는 폴더 아래에 math_pkg, str_pkg 라는
폴더를 만들고 이 폴더 아래에 필요한 모듈을 만들어 보자
math_op.py str_op.py
수학 연산에 관련된 모듈 = 단일 파일임 문자열 연산에 관련된 모듈
pkgTutorial
math_pkg str_pkg
작업 디렉토리

(폴더)
패키지 디렉토리

(폴더)
pkgTutorial 이라는 작업 디렉토리 아래에 하위폴더와 모듈 파일을 둔다
math_op.py 라는 파일(모듈)내에 add(), sub() 라는 함수가 있음
str_op.py 라는 파일(모듈)내에 upper(), lower() 라는 함수가 있음
math_op.py
str_op.py
홈 디렉토리
/Users/dongupak
pkgTutorial
math_pkg str_pkg
작업 폴더
패키지 

폴더
macOS의 사용자 홈 디렉토리 경로는 /Users/dongupak(사용자 id) 임

윈도 운영체제의 경우 C:Usersdongupak 과 같은 형식으로 차이가 있음
파일경로
• 파일은 계층적인 구조의 폴더 혹은 디렉토리 아래에 저장된다

• Windows 운영체제의 파일 시스템에서 파일은 C:Usersdongupak 과 같이
C:, D:와 같은 드라이브 이름과 Usersdongupak 과 같은 폴더명 아래에 저장
되며

• macOS나 Linux 운영체제는 /Users/dongupak 과 같은 이름의 폴더명 아래
에 저장된다. 여기서 dongupak은 사용자 아이디. 

• 사용자의 파일이 저장되는 곳을 홈 디렉토리라고 하는데 /Users/dongupak
이 디폴트 홈 디렉토리임

• 본 예제에서는 사용자의 홈 디렉토리 아래에 작업 폴더를 만들것이다
package_test.py
수행 결과
작업 디렉토리(폴더)
패키지 모듈
import sys
sys.path.append("/Users/dongupak/pkgTutorial")
sys 모듈 : 파이썬을 설치할때 함께 설치되는 라이브러리 모듈
sys.path : 파이썬 모듈을 찾기위한 탐색경로들의 목록이 문자열로 나타난다
sys.path.append() 함수 : 파이썬 모듈을 찾기위한 탐색경로에 append()
함수가 지정해둔 폴더를 추가한다
import math_pkg.math_op
math_op.py
print('100 + 200 =‘, math_pkg.math_op.add(100,200))
math_pkg : 패키지 이름
math_op : 모듈
add() : 모듈내의 함수이름
Lab
from … import … 문
• 함수를 호출할 때 패키지이름.모듈이름을 이용하여 전체 경로를 다 적어주
는 것은 매우 번거롭다

• from … import … 문을 이용하여 간략화할 수 있다
import math_pkg.math_op
print('100 + 200 =‘,math_pkg.math_op.add(100,200))
from math_pkg import math_op
print('100 + 200 =‘,math_op.add(100,200))
from … import …
from math_pkg import math_op
print('100 + 200 =‘,math_op.add(100,200))
from 패키지_이름 import 모듈_이름
사용할 때에는 모듈이름.모듈내의 함수이름을 불러서 사용함
Lab
감사합니다

More Related Content

Similar to 18 1 파이썬패키지

Python(basic)
Python(basic)Python(basic)
Python(basic)POSTECH
 
Cmake tutorial
Cmake tutorialCmake tutorial
Cmake tutorial상문 이
 
Python packaging
Python packagingPython packaging
Python packagingJi Hun Kim
 
18 2 파이썬표준라이브러리
18 2 파이썬표준라이브러리18 2 파이썬표준라이브러리
18 2 파이썬표준라이브러리Changwon National University
 
맨땅에서 AI학습플랫폼을 만들기까지
맨땅에서 AI학습플랫폼을 만들기까지맨땅에서 AI학습플랫폼을 만들기까지
맨땅에서 AI학습플랫폼을 만들기까지Sunwoo Park
 
Python study 1강 (오픈소스컨설팅 내부 강의)
Python study 1강 (오픈소스컨설팅 내부 강의)Python study 1강 (오픈소스컨설팅 내부 강의)
Python study 1강 (오픈소스컨설팅 내부 강의)정명훈 Jerry Jeong
 
Github 으로 학교 팀 프로젝트 하기
Github 으로 학교 팀 프로젝트 하기Github 으로 학교 팀 프로젝트 하기
Github 으로 학교 팀 프로젝트 하기nexusz99
 
경희대 해커 기술 세미나 - Git hub으로 학교 팀프로젝트 하기(조성수)
경희대 해커 기술 세미나 - Git hub으로 학교 팀프로젝트 하기(조성수)경희대 해커 기술 세미나 - Git hub으로 학교 팀프로젝트 하기(조성수)
경희대 해커 기술 세미나 - Git hub으로 학교 팀프로젝트 하기(조성수)NAVER D2
 
오픈세미나 플러그인만들기(한번더)
오픈세미나 플러그인만들기(한번더)오픈세미나 플러그인만들기(한번더)
오픈세미나 플러그인만들기(한번더)승훈 오
 
파이콘 2017 그만퇴근합시다_이지호
파이콘 2017 그만퇴근합시다_이지호파이콘 2017 그만퇴근합시다_이지호
파이콘 2017 그만퇴근합시다_이지호Jiho Lee
 
대학과 오픈소스
대학과 오픈소스대학과 오픈소스
대학과 오픈소스Jihoon Son
 
2022.08 멘토링 자료.pptx
2022.08 멘토링 자료.pptx2022.08 멘토링 자료.pptx
2022.08 멘토링 자료.pptxssuserf875e6
 
Debian packaging - basic process
Debian packaging - basic processDebian packaging - basic process
Debian packaging - basic process경섭 심
 
200720 바이오협회 생물정보학 파이썬 강의
200720 바이오협회 생물정보학 파이썬 강의 200720 바이오협회 생물정보학 파이썬 강의
200720 바이오협회 생물정보학 파이썬 강의 Joohyun Han
 
제로부터시작하는 Git 두번째 이야기
제로부터시작하는 Git 두번째 이야기제로부터시작하는 Git 두번째 이야기
제로부터시작하는 Git 두번째 이야기Mario Cho
 

Similar to 18 1 파이썬패키지 (20)

04 1 함수
04 1 함수04 1 함수
04 1 함수
 
Python(basic)
Python(basic)Python(basic)
Python(basic)
 
Cmake tutorial
Cmake tutorialCmake tutorial
Cmake tutorial
 
Python packaging
Python packagingPython packaging
Python packaging
 
18 2 파이썬표준라이브러리
18 2 파이썬표준라이브러리18 2 파이썬표준라이브러리
18 2 파이썬표준라이브러리
 
맨땅에서 AI학습플랫폼을 만들기까지
맨땅에서 AI학습플랫폼을 만들기까지맨땅에서 AI학습플랫폼을 만들기까지
맨땅에서 AI학습플랫폼을 만들기까지
 
Python study 1강 (오픈소스컨설팅 내부 강의)
Python study 1강 (오픈소스컨설팅 내부 강의)Python study 1강 (오픈소스컨설팅 내부 강의)
Python study 1강 (오픈소스컨설팅 내부 강의)
 
Django
DjangoDjango
Django
 
Maven
MavenMaven
Maven
 
Github 으로 학교 팀 프로젝트 하기
Github 으로 학교 팀 프로젝트 하기Github 으로 학교 팀 프로젝트 하기
Github 으로 학교 팀 프로젝트 하기
 
경희대 해커 기술 세미나 - Git hub으로 학교 팀프로젝트 하기(조성수)
경희대 해커 기술 세미나 - Git hub으로 학교 팀프로젝트 하기(조성수)경희대 해커 기술 세미나 - Git hub으로 학교 팀프로젝트 하기(조성수)
경희대 해커 기술 세미나 - Git hub으로 학교 팀프로젝트 하기(조성수)
 
01_2_파이썬설치
01_2_파이썬설치 01_2_파이썬설치
01_2_파이썬설치
 
오픈세미나 플러그인만들기(한번더)
오픈세미나 플러그인만들기(한번더)오픈세미나 플러그인만들기(한번더)
오픈세미나 플러그인만들기(한번더)
 
파이콘 2017 그만퇴근합시다_이지호
파이콘 2017 그만퇴근합시다_이지호파이콘 2017 그만퇴근합시다_이지호
파이콘 2017 그만퇴근합시다_이지호
 
대학과 오픈소스
대학과 오픈소스대학과 오픈소스
대학과 오픈소스
 
2022.08 멘토링 자료.pptx
2022.08 멘토링 자료.pptx2022.08 멘토링 자료.pptx
2022.08 멘토링 자료.pptx
 
Debian packaging - basic process
Debian packaging - basic processDebian packaging - basic process
Debian packaging - basic process
 
200720 바이오협회 생물정보학 파이썬 강의
200720 바이오협회 생물정보학 파이썬 강의 200720 바이오협회 생물정보학 파이썬 강의
200720 바이오협회 생물정보학 파이썬 강의
 
(스프링프레임워크 강좌)스프링부트개요 및 HelloWorld 따라하기
(스프링프레임워크 강좌)스프링부트개요 및 HelloWorld 따라하기(스프링프레임워크 강좌)스프링부트개요 및 HelloWorld 따라하기
(스프링프레임워크 강좌)스프링부트개요 및 HelloWorld 따라하기
 
제로부터시작하는 Git 두번째 이야기
제로부터시작하는 Git 두번째 이야기제로부터시작하는 Git 두번째 이야기
제로부터시작하는 Git 두번째 이야기
 

More from Changwon National University

생성인공지능둘러보기.pdf
생성인공지능둘러보기.pdf생성인공지능둘러보기.pdf
생성인공지능둘러보기.pdfChangwon National University
 
알아두면 편리한 macOS 에디터 단축키와 기능
알아두면 편리한 macOS 에디터  단축키와 기능알아두면 편리한 macOS 에디터  단축키와 기능
알아두면 편리한 macOS 에디터 단축키와 기능Changwon National University
 
키보드 기호의 이름 알아보기(한국어, 영어)
키보드 기호의 이름 알아보기(한국어, 영어)키보드 기호의 이름 알아보기(한국어, 영어)
키보드 기호의 이름 알아보기(한국어, 영어)Changwon National University
 
AI 로봇 아티스트의 비밀(창원대학교 정보통신공학과 특강)
AI 로봇 아티스트의 비밀(창원대학교 정보통신공학과 특강)AI 로봇 아티스트의 비밀(창원대학교 정보통신공학과 특강)
AI 로봇 아티스트의 비밀(창원대학교 정보통신공학과 특강)Changwon National University
 
15 2 클래스정의와self
15 2 클래스정의와self15 2 클래스정의와self
15 2 클래스정의와selfChangwon National University
 

More from Changwon National University (20)

생성인공지능둘러보기.pdf
생성인공지능둘러보기.pdf생성인공지능둘러보기.pdf
생성인공지능둘러보기.pdf
 
2011 app center Changwon National Univ.
2011 app center Changwon National Univ.2011 app center Changwon National Univ.
2011 app center Changwon National Univ.
 
인공지능의 파도가 온다
인공지능의 파도가 온다인공지능의 파도가 온다
인공지능의 파도가 온다
 
Mobile Healthcare Application
Mobile Healthcare ApplicationMobile Healthcare Application
Mobile Healthcare Application
 
바다 즐기기
바다 즐기기바다 즐기기
바다 즐기기
 
알아두면 편리한 macOS 에디터 단축키와 기능
알아두면 편리한 macOS 에디터  단축키와 기능알아두면 편리한 macOS 에디터  단축키와 기능
알아두면 편리한 macOS 에디터 단축키와 기능
 
키보드 기호의 이름 알아보기(한국어, 영어)
키보드 기호의 이름 알아보기(한국어, 영어)키보드 기호의 이름 알아보기(한국어, 영어)
키보드 기호의 이름 알아보기(한국어, 영어)
 
AI 로봇 아티스트의 비밀(창원대학교 정보통신공학과 특강)
AI 로봇 아티스트의 비밀(창원대학교 정보통신공학과 특강)AI 로봇 아티스트의 비밀(창원대학교 정보통신공학과 특강)
AI 로봇 아티스트의 비밀(창원대학교 정보통신공학과 특강)
 
20 2 강의를 마치며
20 2 강의를 마치며20 2 강의를 마치며
20 2 강의를 마치며
 
20 1 코딩스타일
20 1 코딩스타일20 1 코딩스타일
20 1 코딩스타일
 
17 2 필터함수와 맵함수
17 2 필터함수와 맵함수17 2 필터함수와 맵함수
17 2 필터함수와 맵함수
 
17 1 람다함수
17 1 람다함수17 1 람다함수
17 1 람다함수
 
16 1 상속과super()
16 1 상속과super()16 1 상속과super()
16 1 상속과super()
 
15 2 클래스정의와self
15 2 클래스정의와self15 2 클래스정의와self
15 2 클래스정의와self
 
14 4 슬라이싱
14 4 슬라이싱14 4 슬라이싱
14 4 슬라이싱
 
14 2 iterator
14 2 iterator14 2 iterator
14 2 iterator
 
14 3 리스트함수
14 3 리스트함수14 3 리스트함수
14 3 리스트함수
 
14 1 리스트의 메소드
14 1 리스트의 메소드14 1 리스트의 메소드
14 1 리스트의 메소드
 
12 3 raise문
12 3 raise문12 3 raise문
12 3 raise문
 
12 1 예외처리(try-except)
12 1 예외처리(try-except)12 1 예외처리(try-except)
12 1 예외처리(try-except)
 

18 1 파이썬패키지

  • 1. 널널한 교수의 기초 파이썬 18_1. 파이썬 패키지 창원대학교 정보통신공학과 박동규
  • 2. 동영상 강의자료와 코드 • 동영상 강의(널널한 교수의 기초 파이썬) • https://www.youtube.com/watch? v=TK6RLGaM3Ao&list=PL2P1Vm9k53HOEn-QYXAfblQWkR0OW9mKX • 소스코드( GitHub ) • https://github.com/dongupak/Basic-Python-Programming
  • 3. 모듈 정리 util.py 파일 machine_learning.py 파일 my_work.py import util import machine_learning 필요한 코드 모듈내의 함수, 클래스, 변수등을 가져올 수 있다 -> 생산성 증대됨
  • 5. 파이썬 패키지 • 큰 프로젝트를 수행하기 위해서는 이미 잘 만들어진 코드를 활용해 야 한다. • 잘 만들어진 코드를 활용하는 방법이 모듈을 사용하는 것이다 • 그러나 모듈의 수가 많아지면 폴더(디렉토리) 아래에 계층적으로 두 는 것이 더욱 편리하다 • 한 폴더에 유사한 성격의 여러 모듈을 두고 이 폴더를 가져오는 방 식으로 개발을 하는데 이 폴더를 패키지라고 한다
  • 6. 패키지 경로 • 파이썬에서 모듈은 .py 파일이다. 패키지는 모듈의 컬렉션(모듬)이 다 • 폴더(디렉토리) 안에 __init__.py 파일이 있으면 해당 폴더는 패키 지로 인식되는데 파이썬 3.3 버전 부터는 이 파일이 없어도 패키지 로 인식된다 • 예제: pkgTutorial 이라는 폴더 아래에 math_pkg, str_pkg 라는 폴더를 만들고 이 폴더 아래에 필요한 모듈을 만들어 보자
  • 7. math_op.py str_op.py 수학 연산에 관련된 모듈 = 단일 파일임 문자열 연산에 관련된 모듈 pkgTutorial math_pkg str_pkg 작업 디렉토리 (폴더) 패키지 디렉토리 (폴더) pkgTutorial 이라는 작업 디렉토리 아래에 하위폴더와 모듈 파일을 둔다
  • 8. math_op.py 라는 파일(모듈)내에 add(), sub() 라는 함수가 있음 str_op.py 라는 파일(모듈)내에 upper(), lower() 라는 함수가 있음 math_op.py str_op.py
  • 9. 홈 디렉토리 /Users/dongupak pkgTutorial math_pkg str_pkg 작업 폴더 패키지 폴더 macOS의 사용자 홈 디렉토리 경로는 /Users/dongupak(사용자 id) 임 윈도 운영체제의 경우 C:Usersdongupak 과 같은 형식으로 차이가 있음
  • 10. 파일경로 • 파일은 계층적인 구조의 폴더 혹은 디렉토리 아래에 저장된다 • Windows 운영체제의 파일 시스템에서 파일은 C:Usersdongupak 과 같이 C:, D:와 같은 드라이브 이름과 Usersdongupak 과 같은 폴더명 아래에 저장 되며 • macOS나 Linux 운영체제는 /Users/dongupak 과 같은 이름의 폴더명 아래 에 저장된다. 여기서 dongupak은 사용자 아이디. • 사용자의 파일이 저장되는 곳을 홈 디렉토리라고 하는데 /Users/dongupak 이 디폴트 홈 디렉토리임 • 본 예제에서는 사용자의 홈 디렉토리 아래에 작업 폴더를 만들것이다
  • 12. import sys sys.path.append("/Users/dongupak/pkgTutorial") sys 모듈 : 파이썬을 설치할때 함께 설치되는 라이브러리 모듈 sys.path : 파이썬 모듈을 찾기위한 탐색경로들의 목록이 문자열로 나타난다 sys.path.append() 함수 : 파이썬 모듈을 찾기위한 탐색경로에 append() 함수가 지정해둔 폴더를 추가한다
  • 13. import math_pkg.math_op math_op.py print('100 + 200 =‘, math_pkg.math_op.add(100,200)) math_pkg : 패키지 이름 math_op : 모듈 add() : 모듈내의 함수이름
  • 14. Lab
  • 15. from … import … 문 • 함수를 호출할 때 패키지이름.모듈이름을 이용하여 전체 경로를 다 적어주 는 것은 매우 번거롭다 • from … import … 문을 이용하여 간략화할 수 있다 import math_pkg.math_op print('100 + 200 =‘,math_pkg.math_op.add(100,200)) from math_pkg import math_op print('100 + 200 =‘,math_op.add(100,200))
  • 16. from … import … from math_pkg import math_op print('100 + 200 =‘,math_op.add(100,200)) from 패키지_이름 import 모듈_이름 사용할 때에는 모듈이름.모듈내의 함수이름을 불러서 사용함
  • 17. Lab