#1. ๋ชจ๋๊ณผ ํจํค์ง์ ์ดํด
ํ์ด์ฌ์ ๋งค์ฐ ๊ฐ๊ฒฐํ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด
๊ทธ ๊ฐ์ฅ ํฐ ์ด์
- ๋ง์ ์ฌ๋๋ค์ด ์ด๋ฏธ ํ์ด์ฌ์ผ๋ก ํ๋ก๊ทธ๋จ์ ์์ฑํด๋์๊ธฐ ๋๋ฌธ!
๋ชจ๋(module) → ์ด๋ฏธ ์์ฑ๋ ํ๋ก๊ทธ๋จ
ํจํค์ง (packages)→ ์ด๋ฐ ํ๋ก๊ทธ๋จ์, ๋ชจ๋์ ๋ฌถ์
๋ชจ๋์ ๊ฐ๋
- ๋ง์ ์ ํ๋ค์ ์ฌ๋ฌ ๋ถํ์ผ๋ก ๊ตฌ์ฑ๋๋ฉฐ, ๋ชจ๋ํ๋์ด ํ๋งค๋๊ณ ์์
- ๋ํ์ ์ธ ์ ; ๋ ๊ณ ๋ธ๋ก
- ํ๋๋ง์ผ๋ก๋ ์ ํ but, ๋ค๋ฅธ ๋ธ๋ก๊ณผ ์ฐ๊ฒฐ ๋ฐ ํฐ ๋ฐํ์ ์กฐ๋ฆฝํจ์ผ๋ก์จ ๊ฑฐ๋ํ ์ํ๋ ๋ง๋ค ์ ์์
- ์ด๋ ๋ ๊ณ ๋ธ๋ก ํ๋ํ๋๊ฐ ๋ฐ๋ก ๋ชจ๋
- ์๋์ฐจ ๋ถํ, ๋ฒฝ๋ .. ๋ฑ
- ๋ํ์ ์ธ ์ ; ๋ ๊ณ ๋ธ๋ก
ํจํค์ง์ ๊ฐ๋
- ๋ชจ๋์ ๋ฌถ์
- ๋ชจ๋ ํธ์ถ
- ‘from’ ์ฌ์ฉ
- ๋ชจ๋ ํธ์ถํ๊ธฐ ์ํด ํจํค์ง๋ถํฐ ํธ์ถํ๋ ๋ช ๋ น์ด
#2. ๋ชจ๋ ๋ง๋ค๊ธฐ
๋ชจ๋ ๋ง๋ค๊ธฐ ์ค์ต
- in ํ์ด์ฌ → .py ํ์ผ ์์ฒด๊ฐ ๋ชจ๋์
- ๊ฐ์ฅ ์ฝ๊ฒ ํ์ด์ฌ ๋ชจ๋ ๋ง๋๋ ๋ฐฉ๋ฒ
- ๋๋ ํฐ๋ฆฌ์์ .pyํ์ผ ๋ง๋ค๊ณ
- ๊ทธ ํ์ผ์ ํ์ํ ํจ์ ์ ์ฅ
- ⇒ ๋ค๋ฅธ ํ์ผ์์ import๋ฌธ ์ฌ์ฉํ์ฌ ํด๋น ๋ชจ๋ ํจ์ ๋ถ๋ฌ๋ผ ์ ์์
- ๊ฐ๋จํ ๋ชจ๋ ๋ง๋ค์ด ๋ณด๊ธฐ(1)→ .py๋ก ์ ์ฅํด์ผ ํจ
#ํ์ผ ์ด๋ฆ : fah_converter.py
def convert_c_to_f(celcius_value):
return celcius_value * 9.0 / 5 + 32
→ .py๋ก ์ ์ฅํด์ผ ํจ
๋ชจ๋ ๋ถ๋ฌ์ ์ฌ์ฉํด๋ณด๊ธฐ
#ํ์ผ ์ด๋ฆ : module_ex.py
#1
import fah_converter
print("Enter a celsisus value:")
celsius = float(input())
fahrenheit = fah_converter.cover_c_to_f(celsius)
print("That's", fahrenheit, "degrees Fahrenheit.")
๋ค์์คํ์ด์ค(Namespace)
- ๋ชจ๋ ํธ์ถ์ ๋ฒ์ ์ง์ ํ๋ ๊ฒ
- ํ๋์ ๋ชจ๋ ์์ ํด๋์ค & ํจ์ & ๋ณ์ ์กด์ฌ → import ์ฌ์ฉํ์ฌ ํธ์ถ ๊ฐ๋ฅ
- but, ํด๋ผ์ด์ธํธ ํ๋ก๊ทธ๋จ ํจ์ ์ด๋ฆ๊ณผ ํธ์ถ๋ ๋ชจ๋ ํจ์ ์ด๋ฆ ๊ฐ์ ๊ฒฝ์ฐ ์์
- ์ค์ ๋๋ ๊ธฐ์กด ํด๋์ค ์์๋ฐ์ ์ฌ์ฉํ๋ค๊ฐ ๋ฐ์ํ ์๋ ์์
- ⇒ ํธ์ถ๋ ๋ชจ๋์ ์ฌ์ฉ ๋ฒ์ ๋ช ํํ ์ง์ ํด์ผ ํจ!
- ๋ค์์คํ์ด์ค ๋ง๋ค๊ธฐ
- ๋ชจ๋ ์ด๋ฆ์ ์๋ฆฌ์์ค(alias) ์์ฑ → ๋ชจ๋ ์์ผ๋ก ์ฝ๋ ํธ์ถํ๋ ๋ฐฉ๋ฒ
- ์๋ฆฌ์์ค → ์ผ์ข
์ ๋ณ์นญ, ๋ชจ๋์ ์ด๋ฆ ๋ฐ๊ฟ ๋ถ๋ฅผ ๋ ์ฌ์ฉ
- ๋ชจ๋์ ์ด๋ฆ์ด ๋๋ฌด ๊ธธ๊ฑฐ๋ ๋ค๋ฅธ ์ฝ๋์ ํท๊ฐ๋ฆฌ๋ ์ด๋ฆ์ผ ๋
- as ํค์๋ ์ฌ์ฉ → ๋ชจ๋ ์ด๋ฆ ๊ฐ๋จํ ๋ฐ๊ฟ ์ฌ์ฉ
- ์๋ฆฌ์์ค → ์ผ์ข
์ ๋ณ์นญ, ๋ชจ๋์ ์ด๋ฆ ๋ฐ๊ฟ ๋ถ๋ฅผ ๋ ์ฌ์ฉ
- ์์
import fah_converter as fah print(fah.covert_c_to_f(41.6)) #106.88000000000001
- ์ค๋ช
- fah_converter → fah๋ก ์ด๋ฆ ๋ณ๊ฒฝํ์ฌ ํธ์ถ
- ํด๋น ๋ชจ๋ ์ ํจ์ ํด๋์ค ๋ณ์ ํธ์ถํ์ฌ ์ฌ์ฉํ๊ธฐ
- [๋ชจ๋๋ช .ํจ์๋ช (๋๋ ํด๋์ค๋ช /๋ณ์๋ช )]
- from ๊ตฌ๋ฌธ ์ฌ์ฉ → ๋ชจ๋์์ ํน์ ํจ์ ๋ฐ ํด๋์ค๋ง ํธ์ถํ๋ ๋ฐฉ๋ฒ
- ์์
from fah_converter import covert_c_to_f print(covert_c_to_f(41.6)) #106.88000000000001
- ์ค๋ช
- ‘from ๋ชจ๋๋ช import ๋ชจ๋ ์์ ํจ์๋ช ’
- ์ด๊ฒฝ์ฐ, ๋ณ๋์ ๋ชจ๋๋ช ์ฐ์ง ์์๋ ๋จ๋ ์ฌ์ฉ ๊ฐ๋ฅ
- ์ฃผ์ํ ์
- from์ ๊ผญ ๋ชจ๋ ํธ์ถํ๊ธฐ ์ํ ํค์๋๊ฐ ์๋
- ํจํค์ง ํธ์ถ ๋ฐ ํด๋น ํจํค์ง ์ ๋ชจ๋ ํธ์ถํ ๋๋ ์ฌ์ฉํ๊ธฐ์
- ๋ณํ(*) ์ฌ์ฉ
- ํด๋น ๋ชจ๋ ์์ ์๋ ๋ชจ๋ ํจ์, ํด๋์ค. ๋ณ์ ๊ฐ์ ธ์ด
- ์ฌ์ฉ ๋ฐฉ๋ฒ
- ‘from ๋ชจ๋๋ช import *’
- ์์
from fah_converter import * print(convert_c_to_f(41.6)) #106.88000000000001
- ๋ชจ๋ ์ด๋ฆ์ ์๋ฆฌ์์ค(alias) ์์ฑ → ๋ชจ๋ ์์ผ๋ก ์ฝ๋ ํธ์ถํ๋ ๋ฐฉ๋ฒ
- ์ธ ๊ฐ์ง ์ค ๊ฐ์ฅ ์ ํธํ๋ ๋ฐฉ๋ฒ?
- ์ผ๋ฐ์ ์ผ๋ก ์๋ฆฌ์์ค ์์ฑํ์ฌ ํธ์ถ
- ๊ฐ๊ฐ์ ํจ์ ๋ฐ ํด๋์ค๊ฐ ์ด๋์ ๋์ค๋์ง ๋ช ํํ ํํํ๋ ๊ฒ์ด ์ข๊ธฐ ๋๋ฌธ!
- ⇒ ๊ฐ์ ํจ์๋ผ๋ convert_c_to_f๋ณด๋ค fah.convert_c_to_f๋ผ๊ณ ํ๊ธฐ
- ์ผ๋ฐ์ ์ผ๋ก ์๋ฆฌ์์ค ์์ฑํ์ฌ ํธ์ถ
๋ด์ฅ๋ชจ๋์ ์ฌ์ฉ
ํ์ด์ฌ → ํ๋ก๊ทธ๋๋ฐ ๊ฐ๋ฐ์ํด ๊ธฐ๋ณธ์ ์ฌ์ฉํด์ผ ํ๋ ๋ฌธ์ ์ฒ๋ฆฌ, ์น, ์ํ๊ณผ ๊ด๋ จ๋ ๋ค์ํ ๋ด์ฅ ๋ชจ๋ ์ ๊ณต/ ๋ณ๋ค๋ฅธ ์กฐ์น ์์ด import๋ฌธ ํ ์ค๋ก ์ฌ์ฉ ๊ฐ๋ฅ
- random ๋ชจ๋
- ๋์ ์์ฑ ๋ชจ๋
- ๋ชจ๋ ๊ตฌ์ฑ
- randint(); ์ ์ ๋ชจ๋ ์์ฑ
- random(); ์์ ๋์ ์์ฑ
- ์ฌ์ฉ ์์
import random #0~100์ฌ์ด ์ ์ ๋์ ์์ฑ print(random.randint(0,100)) #7 print(random.random()) #0.056550421789531846
- time ๋ชจ๋
- ์๊ฐ๊ณผ ๊ด๋ จ
- ์๊ฐ ๋ณ๊ฒฝ ๋ฐ ํ์ฌ ์๊ฐ ์๋ ค์ค
- ๋ํ์ ์ผ๋ก ํ๋ก๊ทธ๋จ ๋์ํ๋ ํ์ฌ ์๊ฐ ์ ์ ์์
- ์ฌ์ฉ ์์
#ํ์ฌ ์๊ฐ ์ถ๋ ฅ import time print (time.localtime()) #time.struct_time(tm_year=2018, tm_mon=8, tm_mday=19, tm_hour=22, tm_min=9, tm_sec=21, tm_wday=6, tm_yday=231, tm_isdst=0)
- urllib ๋ชจ๋
- ์น๊ณผ ๊ด๋ จ๋จ
- ๋ํ์ ์ผ๋ก request ๋ชจ๋์ ์ฌ์ฉํ๋ฉด ํน์ URL์ ์ ๋ณด ๋ถ๋ฌ์ฌ ์ ์์
- ์ฌ์ฉ ์์
import urllib.request response = urllib.request.urlopen("<http://theteamlab.io>") print(response.read())
- urllib.request.urlopen()
- ๊ดํธ ์์ ํน์ ์น ์ฃผ์ ์ ๋ ฅํ๋ฉด ํด๋น ์ฃผ์์ HTML ์ ๋ณด ๊ฐ์ ธ์ด
- ์ด์ธ์ ๋ค์ํ ํ์ด์ฌ ๋ชจ๋์?
- ๊ฐ์ฅ ์ข์ ๋ฐฉ๋ฒ์ ๊ตฌ๊ธ์ ์์น!
- ํนํ ์์ด๋ก..
- if ํ๋ก๊ทธ๋๋ฐ ์ํ์ ๊ฑธ๋ฆฐ ์๊ฐ ์์๋ด๋ ๋ชจ๋ ์ฐพ๊ณ ์ถ๋ค๋ฉด?
- ๋ค์๊ณผ ๊ฐ์ ๋ฐฉ์์ผ๋ก ๊ฒ์์ด ์
๋ ฅ
- python time module run time
- ๋ ๋ค๋ฅธ ๋ฐฉ๋ฒ?
- ํ์ด์ฌ ์ฝ๋ฆฌ์์ ๋ฌธ์
#3. ํจํค์ง ๋ง๋ค๊ธฐ
ํจํค์ง์ ๊ตฌ์ฑ
- ํ๋์ ๋ํ ํ๋ก์ ํธ๋ฅผ ์ํํ๊ธฐ ์ํ ๋ชจ๋์ ๋ฌถ์
- ๋ชจ๋์ ๊ตฌ์ฑ
- ํ๋์ ํ์ผ
- ํจํค์ง ๊ตฌ์ฑ
- ํ์ผ์ด ํฌํจ๋ ๋๋ ํฐ๋ฆฌ(ํด๋)๋ก ๊ตฌ์ฑ
- ์ฆ, ์ฌ๋ฌ ๊ฐ์ .py ํ์ผ → ํ๋์ ๋๋ ํฐ๋ฆฌ์ ๋ค์ด๊ฐ ์๋ ๊ฒ
- ๋ผ์ด๋ธ๋ฌ๋ฆฌ
- ๋ค๋ฅธ ์ฌ๋์ด ๋ง๋ ํ๋ก๊ทธ๋จ์ ๋ถ๋ฌ์ ์ฌ์ฉํ๋ ๊ฒ
- ํ์ด์ฌ → ํจํค์ง๊ฐ ํ๋์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์
- ํจํค์ง์ ์์ฝ์ด
ํจํค์ง ๋ง๋ค๊ธฐ ์ค์ต
- ์ธํฐ๋ท์์ ์ฃผ์ ์ ๋ณด ๊ฐ์ ธ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฅ + ํ์ํ ์ ๋ณด ๊ณ์ฐ ํ๋ก๊ทธ๋จ
1๋จ๊ณ: ๋๋ ํฐ๋ฆฌ ๊ตฌ์ฑ
- ํจํค์ง ์ด๋ฆ
- ‘roboadvisor’
- ๋๋ถ๋ถ ์๋ฌธ์ ์ฌ์ฉ
- ๊ธฐ๋ฅ
- crawling(ํฌ๋กค๋ง)
- ์ฃผ์ ๊ด๋ จ ๋ฐ์ดํฐ๋ฅผ ์ธํฐ๋ท์์ ๊ฐ์ ธ์ค๋ ๊ธฐ๋ฅ
- database(๋ฐ์ดํฐ๋ฒ ์ด์ค)
- ๊ฐ์ ธ์จ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฅํ๋ ๊ธฐ๋ฅ
- analysis(๋ถ์)
- ํด๋น ์ ๋ณด๋ฅผ ๋ถ์ํ์ฌ ์๋ฏธ ์๋ ๊ฐ์ ๋ฝ์๋ด๋ ๊ธฐ๋ฅ
- crawling(ํฌ๋กค๋ง)
- ๊ฐ ํจํค์ง ๋ด → ์ธ๋ถ ํจํค์ง์ ๋ง์ถฐ ๋๋ ํฐ๋ฆฌ ๊ตฌ์ฑํ๊ธฐ
- cmd ์ฐฝ์ ๋ค์ ๋ช ๋ น ์ ๋ ฅ → ๋๋ ํฐ๋ฆฌ ์์ฑ
mkdir roboadvisor cd roboadvisor mkdir crawling mkdir database mkdir analysis
- ๋๋ ํฐ๋ฆฌ ๊ตฌ์ฑ๋จ
- 2๋จ๊ณ: ๋๋ ํฐ๋ฆฌ๋ณ๋ก ํ์ํ ๋ชจ๋ ๋ง๋ค๊ธฐ
- ํ๋์ ํจํค์ง ์ค์ฒฉ๋ ๊ตฌ์กฐ๋ก ๋ง๋ค ์ ์์ผ๋ฏ๋ก ํจํค์ง ์์ ๋ ํ๋์ ํจํค์ง ๋ค์ด๊ฐ ์ ์์
- but, ๊ฐ ๋๋ ํฐ๋ฆฌ๋ฅด ํ๋์ ํจํค์ง๋ก ์ ์ธํ๊ธฐ ์ํด์๋ ์์ฝ๋ ํ์ผ ๋ง๋ค์ด์ผ ํจ
- ⇒ ‘init.py’
- ‘init.py’ ?
- ๊ฐ ๋๋ ํฐ๋ฆฌ๊ฐ ํจํค์ง์์ ๋ํ๋ด๋ ์์ฝ ํ์ผ
- ๊ธฐ๋ณธ .py ๋ชจ๋ ํ์ผ + ๊ฐ ๋๋ ํฐ๋ฆฌ์ ‘init.py’ ํ์ผ ์ถ๊ฐ → ํจํค์ง ๊ธฐ๋ณธ ๊ตฌ์กฐ ๋ง๋ค์ด์ง
- ๊ฐ ๋๋ ํฐ๋ฆฌ ์์ .pyํ์ผ ๋ง๋ค์ด ๊ตฌ์ฑ!
- ๊ฐ ํ์ ํจํค์ง ํฌํจ๋ ๋ชจ๋์ ํ์ํ ๊ธฐ๋ฅ์ ๊ตฌํ
- analysis ๋๋ ํฐ๋ฆฌ
def series_test(): print('series')
def statics_test(): print("statics")
- analysis ๋๋ ํฐ๋ฆฌ
- ์ค์ ์ฌ์ฉ → ํ์ด์ฌ ์ ธ์ ์ ๋ ฅ
→ roboadvisor์ ์์ ๋๋ ํฐ๋ฆฌ์์ ํ์ด์ฌ ์ ธ ์คํํด์ผ ์ ์์ ์ํfrom roboadvisor.analysis import series series.series_test() #series
- ์ค๋ช
- ‘**pycache**’ ์์ฑ
- ํด๋น ํ๋ก๊ทธ๋จ ์๋๋ ๋ ์ฌ์ฉํ๊ธฐ ์ํ ๋ชจ๋๋ค์ ์ปดํ์ผ ๊ฒฐ๊ณผ ์ ์ฅ
- ์ดํ ๊ทธ ์์ ์์ ํด๋น ๋ชจ๋์ ์ใ ์ ํด๋ ๊ฒฐ๊ณผ๊ฐ ๋ฐ์๋์ง X
- ์์ ํ ์ข ๋ฃ๋ ํ ์์ ํด์ผ ๊ฒฐ๊ณผ ๋ฐ์๋จ
- ‘**pycache**’ ์์ฑ
- 3๋จ๊ณ: ๋๋ ํฐ๋ฆฌ๋ณ๋ก ‘init.py’ ๊ตฌ์ฑํ๊ธฐ
- 4๋จ๊ณ: ‘main.py’ ํ์ผ ๋ง๋ค๊ธฐ
- ํจํค์ง๋ฅผ ํ ๋ฒ์ ์ฌ์ฉํ๊ธฐ ์ํด roboadvisor ๋๋ ํฐ๋ฆฌ์ main,py ํ ์ผ์ ๋ง๋ฆ
- ๋ง๋๋ ์ด๋ฅ
- ํจํค์ง ์์ฒด ์คํ ์ํด
- ํ์ผ ๊ตฌ์ฑ
- ๊ธฐ๋ณธ ํธ์ถํด์ผ ํ๋ ์ฌ๋ฌ ๋ชจ๋
- from & import๋ก ํธ์ถ → ‘if name == ‘ main ‘ ์๋์ ์ค์ ์คํ์ฝ๋ ์์ฑ
from analysis.series import series_test from crawling.parser import parser_test if name == ’ main series_test() parser_test()
- ๊ธฐ๋ณธ ํธ์ถํด์ผ ํ๋ ์ฌ๋ฌ ๋ชจ๋
- 5๋จ๊ณ: ์คํํ๊ธฐ (ํจํค์ง ์ด๋ฆ๋ง ํธ์ถ)
- ๋ชจ๋ ์ฝ๋ ์์ฑ ํ ํด๋น ํจํค์ง ์ต์์ ๋๋ ํฐ๋ฆฌ์์ ‘python ํจํค์ง๋ช ’ ์ ๋ ฅ
python roboadvisor series parser
ํจํค์ง ๋ค์์คํ์ด์ค
- ๋ชจ๋ ์๋ก ํธ์ถํ ๋ ์ฌ์ฉํ๋ ํจํค์ง ๋ค์์คํ์ด์ค์ ๋ํด ์์๋ณด์
- ๋ชจ๋๊ณผ ๋ฌ๋ฆฌ ํจ์ฌ ๋ ๋ง์ ์ค๊ฐ ๋จ๊ณ๋ฅผ ๊ฑฐ์ณ ๋ณต์กํจ
- ์ข
๋ฅ
- ์ ๋ ์ฐธ์กฐ
- ์ ์ฒด ํจํค์ง์ ๊ตฌ์กฐ ์๊ฐ → ๋ชจ๋์ ๊ฒฝ๋ก ๋ชจ๋ ํธ์ถ
- ์๋ ์ฐธ์กฐ
- ํธ์ถํ๋ ๋๋ ํฐ๋ฆฌ๋ฅผ ๊ธฐ์ค์ผ๋ก ํธ์ถ
- ์ ๋ ์ฐธ์กฐ
- ์ ๋ ์ฐธ์กฐ
- ์๋ ์ฐธ์กฐ
#4. ๊ฐ์ํ๊ฒฝ ์ฌ์ฉํ๊ธฐ
๊ฐ์ํ๊ฒฝ์ ๊ฐ๋
- ๋ค๋ฅธ ๊ฐ๋ฐ์๊ฐ ๋ง๋ ํจํค์ง๋ฅผ ์ง์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ
- ๊ฐ ํ๋ก์ ํธ์ ๋ง๋ ํ๋ก๊ทธ๋๋ฐ ํ๊ฒฝ์ ์ค์ ํ๋ ๊ฒ์ด ์ข์
- ex. ๋ฐ์ดํฐ ๋ค๋ฃจ๋ ํ๋ก์ ํธ / ์น ๋ค๋ฃจ๋ ํ๋ก์ ํธ → ์ฑ๊ฒฉ์ด ๋งค์ฐ ๋ค๋ฆ
- ํ์ด์ฌ → ์ด๋ฐ ๊ฒฝ์ฐ ์ง์ ์ํด ๊ฐ์ํ๊ฒฝ์ด๋ผ๋ ๊ฐ๋ ์ผ๋ก ํจํค์ง ๊ด๋ฆฌ ๋๊ตฌ ์ ๊ณต
- ์ผ๋ฐ์ ์ผ๋ก ํ๋ก์ ํธ ์ํํ ๋
- ์ฝ๋ ์ํํ ๊ธฐ๋ณธ ์ธํฐํ๋ฆฌํฐ
- ํ๋ก์ ํธ๋ณ๋ก ํ์ํ ์ถ๊ฐ ํจํค์ง๊น์ง ์ค์น
- ⇒ ์๋ก ๋ค๋ฅธ ํ๋ก์ ํธ ์ํฅ ์ฃผ์ง ์๋๋ก ๋ ๋ฆฝ์ ์ธ ํ๋ก์ ํธ ์ํ ํ๊ฒฝ์ ใ ๊ตฌ์ฑํ ์ ์๋๋ฐ ์ด๋ฅผ ๊ฐ์ํ๊ฒฝ์ด๋ผ๊ณ ํจ
- ๋ํ์ ์ธ ๊ฐ์ํฉ๊ฒฝ ๋๊ตฌ
- virtualenv
- ํ์ด์ฌ ๊ธฐ๋ณธ ์ ๊ณต ๊ฐ์ํ๊ฒฝ ๋๊ตฌ
- pip ์ด์ฉํ์ฌ ์๋ก์ด ํจํค์ง ์ค์น ๊ฐ๋ฅ
- conda
- miniconda์ ์ ์ฉ ํจํค์ง ๊ด๋ฆฌ ๋๊ตฌ
- ๊ฐ์ํ๊ฒฝ ๊ด๋ฆฌ + ํจํค์ง ์ค์น
- virtualenv
๊ฐ์ํ๊ฒฝ ์ค์ ํ๊ธฐ
- conda ์ฌ์ฉ → ๊ฐ์ํ๊ฒฝ ์ค์ ๋ฐฉ๋ฒ ์์๋ณด์
- ๊ฐ์ํ๊ฒฝ ๋ง๋ค๊ธฐ
- cmd ์ฐฝ์ ๋ค์๊ณผ ๊ฐ์ ๋ช ๋ น์ด ์ ๋ ฅ
conda create -n my_project python=3.4
- ์ค๋ช
- conda
- ์คํ ๋ช ๋ น์ด
- create
- ๊ฐ์ํ๊ฒฝ ๋ง๋๋ ์ธ์(argument)
- -n
- name ์ ์ค์๋ง
- my_project
- ๊ตฌ์ฑํ ๊ฐ์ํ๊ฒฝ ์ด๋ฆ
- python=3.4
- ์ค์น๋๋ ํ์ด์ฌ์ ๋ฒ์
⇒ ‘my_project๋ผ ๋ ์ด๋ฆ์ ๊ฐ์ํ๊ฒฝ์ python 3.4 ๋ฒ์ ์ผ๋ก ๋ง๋ค์ด๋ผ.’
- ๋ช
๋ น์ด ์
๋ ฅํ
- ‘Proceed ([y]/n)?’ → y ์ ๋ ฅ → ์ค์น ์์
- ๊ฐ์ํ๊ฒฝ ์คํํ๊ธฐ
- ๊ฐ์ํ๋ฉด ๋ง๋ค๋ฉด ๋ํ๋๋ ํ๋ฉด์์ ์ค๋ช ํด์ค
- ‘activate my_project’
- ํด๋น ๊ฐ์ํ๊ฒฝ์ ํ์ฑํํ๋ผ๋ ์๋ฏธ
- ํ์
- [activate ๊ฐ์ํ๋ฉด ์ด๋ฆ]
- ์ด์ ๋ถํฐ ํด๋น ๊ฐ์ํ๊ฒฝ์ ์ธํฐํ๋ฆฌํฐ๋ง ์คํ๋จ
- ‘where python’
- ํ์ฌ ์คํ๋๋ ํ์ด์ฌ์ ์์น ์ถ๋ ฅ
- ‘deactivate’
- ๊ฐ์ํ๊ฒฝ ์ข ๋ฃ
- ๊ฐ์ํ๊ฒฝ ํจํค์ง ์ค์นํ๊ธฐ
- ‘conda install matplotlib’
- ํ์
- [conda install ์ค์นํ ํจํค์ง ์ด๋ฆ]
- matplotlib
- ๊ทธ๋ํ ๊ด๋ฆฌ ํจํค์ง
- ํ์
- ‘conda install matplotlib’
- ๊ฐ์ํ๊ฒฝ ํจํค์ง ์ค์ตํ๊ธฐ
- matplotlib ์ค์ต
- ์ฝ๋
import matplotlib.pyplot as pit pit.plot([1, 2, 3, 4]) #[<matplotlib.lines.Line2D object at 0x000001E8CC52C080>] plt.ylabel('some numbers') #Text(0, 0.5,'some numbers') plt.show()
- matplotlib ์ค์ต
'๐ ์คํฐ๋ > ํ์ด์ฌ ์คํฐ๋ ๊ฐ์์๋ฃ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[2ํ/๊น์ธ์ฐ] 10์ฃผ์ฐจ ํ์ด์ฌ ์คํฐ๋ - ์์ธ์ฒ๋ฆฌ (0) | 2023.05.31 |
---|---|
[2ํ/๊น๊ฐ๋ฆผ, ์ต๋ค์] 9์ฐจ์ ๋ชจ๋๊ณผ ํจํค์ง (0) | 2023.05.26 |
[1ํ/ํ๊ท๋ฆผ] 9์ฃผ์ฐจ ํ์ด์ฌ ์คํฐ๋ - ๋ชจ๋๊ณผ ํจํค์ง (0) | 2023.05.25 |
[3ํ/๊น๊ฒฝ์] 9์ฃผ์ฐจ ํ์ด์ฌ ์คํฐ๋ - ๋ชจ๋๊ณผ ํจํค์ง (0) | 2023.05.24 |
[2ํ/๊น์ธ์ฐ] 9์ฐจ์ ํ์ด์ฌ ์คํฐ๋ - ๋ชจ๋๊ณผ ํจํค์ง (0) | 2023.05.24 |