파이썬 패키지
파이썬 패키지(package) 설치하기
패키지는 모듈(일종의 기능들 묶음)을 모아 놓은 단위이고, 이런 패키지의 묶을을 라이브러리라고 한다.
1. 가상 환경(virtual environment)이란?
=> 같은 시스템에서 실행되는 다른 파이썬 응용 프로그램들의 동작에 영향을 주지 않기 위해, 파이썬 배포 패키지들을 설치하거나 업그레이드하는 것을 가능하게 하는 격리된 실행 환경
- 한 프로젝트에서 쓰는 패키지의 수는 다양하고, 서로 다른 프로젝트에서 요구하는 패키지의 목록이나 버전이 다를 수 있다.
- 이렇게 요구사항이 다른 두 프로젝트를 한 컴퓨터에서 진행해야하는 상황에서 각 프로젝트마다 가상환경을 만들고 그 안에 필요한 패키지를 설치해주면 필요한 버전이 다르거나 두 패키지가 충돌을 일으키는 등의 문제 없이 관리할 수 있다.
2. 가상 환경 설치 및 확인
=> 새 프로젝트에서 설치하는 패키지가 많다면 가상환경을 새로 잡아주는게 좋다.
프로젝트 루트 디렉토리에서 다음 명령을 실행하여 새 가상환경을 만든다.
python3 -m venv .venv
# python3 명령이 통하지 않는 경우 (MS Windows에서 이런 경우 있음)
py -3 -m venv .venv
Terminal에서 다음과 같이 가상환경을 활성화 시켜 본다.
# Shell 환경 (MacOS/Linux/Windows bash)
source .venv/bin/activate
# PowerShell (Windows 1x)
.venv\Scripts\activate
가상환경이 활성화되면 아래와 같이 프롬포트의 앞부분이 가상환경 directory의 이름이 된다.
Windows의 경우 보안 문제로 활성화가 실패할 수 있습니다. 이 경우 PowerShell 환경에서 다음 명령을 실행하여 서명된 외부 코드의 실행을 허용하여 문제를 해결할 수 있습니다.
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
3. pip(python install package) 사용 - requests 패키지 설치해보기
=> 앱을 설치할 때 앱스토어/플레이스토어를 가듯이, 새로운 프로젝트의 라이브러리를 가상환경(공구함)에 설치하려면 pip를 이용하게 된다.
- pip list 명령으로 현재 설치된 package들의 목록을 볼 수 있다.
- pip install <package_name> 명령으로 원하는 패키지를 설치 할 수 있다.
- 다음 명령을 실행하여 requests 패키지를 설치한다.
pip install requests
패키지 사용하기
- 자바스크립트에서 ajax를 써서 GET 요청을 보냈던 것처럼, 파이썬에서는 아래 코드처럼 requests 패키지를 이용하여 서울시 대기 OpenAPI에서 미세먼지 정보를 받아올 수 있다.
requests 사용해보기
# 서울시 대기 OpenAPI에서 미세먼지 정보
import requests # requests 라이브러리 설치 필요
r = requests.get('http://openapi.seoul.go.kr:8088/6d4d776b466c656533356a4b4b5872/json/RealtimeCityAir/1/99')
rjson = r.json()
# print(rjson)
print(rjson['RealtimeCityAir']['row'][0]['NO2']) # 중구의 NO2 값
# 모든 구의 IDEX_MVL 값 프린트하기
gus = rjson['RealtimeCityAir']['row']
for gu in gus:
print(gu['MSRSTE_NM'], gu['IDEX_MVL'])
# 0.014
# 중구 117.0
# 종로구 129.0
# 용산구 207.0
# 은평구 160.0
# 서대문구 104.0
# 마포구 157.0
# 광진구 89.0
# 성동구 114.0
# 중랑구 101.0
# 동대문구 -99.0
# 성북구 114.0
# 도봉구 107.0
# 강북구 114.0
# 노원구 202.0
# 강서구 240.0
# 구로구 192.0
# 영등포구 129.0
# 동작구 182.0
# 관악구 205.0
# 금천구 175.0
# 양천구 210.0
# 강남구 112.0
# 서초구 109.0
# 송파구 85.0
# 강동구 95.0
# IDEX_MVL 값이 60 미만인 구의 이름과 값 프린트하기
import requests # requests 라이브러리 설치 필요
r = requests.get('http://openapi.seoul.go.kr:8088/6d4d776b466c656533356a4b4b5872/json/RealtimeCityAir/1/99')
rjson = r.json()
gus = rjson['RealtimeCityAir']['row']
for gu in gus:
if gu['IDEX_MVL'] < 60:
print (gu['MSRSTE_NM'], gu['IDEX_MVL'])
'알아두면쓸데있는신기한잡학사전 > 고군분투흔적들' 카테고리의 다른 글
[Web] Python - 웹스크래핑 (0) | 2022.08.22 |
---|---|
[Web] Python - BeautifulSoup, find와 select를 사용한 웹 스크래핑 (0) | 2022.08.22 |
[Web] Python - 기초 문법 (0) | 2022.08.22 |
[Web] 서버 - 클라이언트 통신 (0) | 2022.08.22 |
[Web] FE - jQuery (0) | 2022.08.22 |