Pyenv는 무엇일까?
시간이 흐르며 여러 버전의 파이썬이 진화해왔다. 하지만, 그 버전들 중에서 내게 맞는 버전, 버전마다 다른 패키지, 그리고 프레임워크의 지원 여부 등이 산재해있다. 그렇다면 여기서 이러한 생각을 하게 될것이다.
"아니, 그러면 여러 파이썬을 쓰고 싶단 말이다!"
그렇다, 결국은 파이썬을 번갈아가며 여러 파이썬을 쓰고 싶은 욕구가 분출되게 된다. 그렇다면 이것을 어떻게 해결할 수 있을까? 그것이 바로 pyenv이다. pyenv 깃허브에서 소개하다 시피 "Simple Python Version Management"라고 한다. 여러 파이썬 버전을 쓸 수 있게 도와준다는 뜻이다.
물론 바닐라 파이썬 버전, 최신 버전을 그냥 설치하는 법도 있다. 시스템 상의 파이썬을 쓰는 방법도 있다. 하지만 package설치부터 굉장히 큰 난관에 부닥친다. 하나의 파이썬에 여러 패키지를 설치하다 보면 의존성 문제에 빠져 여러 패키지들이 굉장히 스노우볼 처럼 굴러가 결국 프로젝트를 망치게 할 수도 있다.
즉, 패키지 관리 차원에서, 환경을 분리하여 미래에 좀 더 생산성을 높이는 데에 큰 장점이 있다고 본다.
그렇다면 본격적으로 pyenv를 설치해 보겠다.
Let's Install Pyenv!
보통의 경우라면 pyenv를 맥에서는 brew로 설치하겠지만, 나같은 경우 다양한 pyenv의 최신 버전 업그레이드 등을 활용하고 싶어서 pyenv-installer를 사용하려고 한다. 먼저 pyenv를 설치하기 전에 필수 라이브러리를 설치해줘야 한다.
sudo apt-get install -y make build-essential libssl-dev zlib1g-dev libbz2-dev \
libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev \
xz-utils tk-dev
위의 명령어를 통해 설치를 했다면 이제부터 pyenv-installer를 설치하면 된다.
curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash
위의 명령어를 입력해주고 기다려주면 자동으로 설치된다.
exec $SHELL
그리고 위의 명령어로 쉘을 업데이트해주면 완료이다. 그다음 pyenv --version을 입력해서 버전을 체크해주면 된다.
위의 명령어를 입력하면 자연스럽게 버전이 나온다. 그 외에도 pyenv update를 해주면 아래의 사진과 같이 자동으로 업데이트를 해준다.
pyenv를 통해 설치하기 전, 어떤 파이썬 버전이 있는지 확인하기 위해서는 다음과 같은 명령어를 통해 확인할 수있다.
pyenv install --list
굉장히 많은 버전의 파이썬이 있는 것을 확인할 수 있고 아래의 버전들을 확인한 다음에 다음과 같은 명령어를 입력해 주면 된다. 아래의 명령어의 뜻은 python기본으로 3.10.7버전을 인스톨 한다는 뜻이다. 사실 이렇게 보면 정말 많은지라 다음 코드를 입력해서 3.6, 3.7, 3.8, 3.9 version의 파이썬을 찾아 보도록 하자.
pyenv install --list | grep "3\.[6789]"
pyenv install python 3.10.7
그다음 설치된 파이썬의 버전들을 확인하고 싶으면 다음과 같은 명령어를 입력하면 된다.
pyenv versions
그러면 위의 사진처럼 지금 설치된 파이썬 버전들을 확인할 수 있게 된다. 그 외에도 여러 명령어가 있는데, 만약 특정 파이썬 버전을 전역으로 사용하고 싶다면 다음과 같은 명령어를 입력하면 된다.
pyenv global 3.10.7
만약 특정 파이썬 버전을 로컬 디렉토리에서 사용하고 싶다면 다음과 같은 명령어를 입력하면 된다.
pyenv local 3.10.7
이렇게 파이썬 설치가 끝났다! 이제 본격적으로 FastAPI를 설치해보도록 하겠다.
Let's install FastAPI!
pip install fastapi
pip install "uvicorn[standard]"
위의 커맨드를 실행해주면 바로 끝난다. 그렇다면 간단하게 코드를 실행해보고 돌아가는지만 확인한 다음에 오늘 글을 끝마치겠다. 다음 코드를 main.py에 넣은뒤 저장해준다.
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
async def main():
return {"message": "Hello World"}
그다음 다음 코드를 실행해준다.
uvicorn main:app --reload
그러면 http://127.0.0.1:8000/ 으로 들어가면
{"message": "Hello World"}
이것이 전부다. 정말 심플한 프레임 워크다! 다음 글에서는 본격적으로 insomnia rest를 이용한 서버와 통신하기 및 간단한 코드를 작성해서 올려보려고 한다!
'Python > FastAPI' 카테고리의 다른 글
Events that tiangolo(Sebastián Ramírez) who is creator of FastAPI went through, and My Opinion (0) | 2023.01.15 |
---|---|
FastAPI 알아보기 - 의존성 주입, Dependencies, Dependency Injection (1) | 2023.01.06 |
FastAPI 알아보기 - Schema 다루기 혹은 DTO, Entity, DAO 등 (2) | 2023.01.05 |
FastAPI 알아보기 - Pydantic과 직렬화 (0) | 2022.12.24 |
FastAPI 준비 - FastAPI실행, Query Parameter, Request Body (2) | 2022.12.23 |