7일차

Lim.S.H·2023년 12월 20일
0

1. 파이썬 가상환경 세팅

1) 프로젝트 폴더 생성

> mkdir class-flask-backend #폴더 생성 (Make Directory)
> cd class-flask-backend #폴더 이동 (Change Directory)

2) 가상환경

# poetry
> poetry init
> poetry add flask

# conda
> conda create -n test_env python=3.10

# venv
python3.10 -m venv .venv
source .venv/bin/activate
.venv\Scripts\activate
  • vene로 진행
    • python -m venv .venv
      파이썬 버전 -모듈 venv <가상환경이름>
  • VSC에서 python interpreter 선택 방법

    • Win: Control + Shift + P

      python interpreter 입력 후 → ./venv/bin/python 선택

  • requirements.txt
    requirements.txt는 파이썬 프로젝트에서 널리 사용되는 파일로, 해당 프로젝트를 실행하기 위해 필요한 외부 라이브러리와 패키지의 목록을 포함하고 있습니다. 이 파일은 특히 파이썬의 패키지 관리 시스템인 pip와 함께 사용될 때 유용합니다.
pip freeze > requirements.txt

requirements.txt의 주요 기능과 사용법

  1. 의존성 목록화: 프로젝트에 필요한 모든 파이썬 패키지를 나열합니다. 각 라인에 하나의 패키지 이름이 들어가며, 필요한 경우 특정 버전을 지정할 수도 있습니다.

    예를 들어:

    flask==1.1.2
    requests>=2.23.0
    numpy
  1. 쉬운 설치: requirements.txt 파일을 사용하면, 프로젝트에 필요한 모든 의존성을 한 번의 명령어로 설치할 수 있습니다. 다음 명령어를 사용합니다:

    pip install -r requirements.txt
  1. 환경 일관성 유지: 모든 개발자가 동일한 버전의 패키지를 사용함으로써 프로젝트의 일관성을 유지할 수 있습니다. 이는 특히 팀 환경이나 공동 작업에서 중요합니다.

  2. 배포 용이성: 프로젝트를 다른 환경으로 이동하거나 배포할 때, requirements.txt를 사용하여 필요한 모든 의존성을 쉽게 설치할 수 있습니다.

2. 모듈 사용

1) google TTS + playsound

from gtts import gTTS
import playsound

word = 'Hello Everybody'

tts = gTTS(word)
tts.save('./hello.mp3')

playsound.playsound('./hello.mp3')

2) google Translator


from gtts import gTTS

from googletrans import Translator

user_text = input("번역할 텍스트를 입력하세요 : ").encode('utf-8').decode('utf-8')

print(user_text)

translator = Translator()
trans = translator.translate(text=user_text, dest='en')

print(trans.text)

tts = gTTS(trans.text, lang='en')

tts.save("./hi.mp3")

3) 공공 API 이용

import requests # pip install requests
import json

API_KEY = 'your api key'

ENDPOINT_URL = 'http://apis.data.go.kr/B552584/ArpltnInforInqireSvc'
SERVICE_PATH = '/getMsrstnAcctoRltmMesureDnsty'

params = {
    'serviceKey': API_KEY,
    'returnType': 'json',
    'numOfRows': 1,
    'pageNo': 1,
    'stationName': '강남구',
    'dataTerm': 'DAILY',
    'ver': 1.0
}

final_url = f"{ENDPOINT_URL}{SERVICE_PATH}"
response = requests.get(url=final_url, params=params)


if response.status_code == 200:
    data = json.loads(response.text)
    items = data['response']['body']['items']
    
    for i in items:
        mise = int(i['pm25Value'])
        
        
else:
    print('api error')

0개의 댓글

관련 채용 정보