2023. 4. 10. 00:00ㆍPython/FASTAPI
1. Visual Studio Code 설치 및 설정
https://code.visualstudio.com/download
링크에 다운로드로 가서 system installer 를 통해 설치 하자 (windows 기준)
Intellisense, Linting, Debugging 등을 지원하는 확장을 설치하자
2. Pyenv 설치 및 Python 설치
Pyenv 는 Python 을 여러 버전 설치하고 관리할 수 있도록 해주는 python version 관리 시스템이다.
Python 은 pip 등을 이용해 많은 종속성 package 들을 설치하고 관리해야 하기 때문에
Python 의 버전은 이러한 종속성에 영향을 준다.
그래서 여러 버전의 Python 을 설치하고 사용해야 할 수 있다.
Pyenv 는 이러한 버전 관리를 좀더 간편하게 할 수 있도록 하는 version 관리 시스템이다
PowerShell 을 열고 다음을 입력한다.
Invoke-WebRequest -UseBasicParsing -Uri "https://raw.githubusercontent.com/pyenv-win/pyenv-win/master/pyenv-win/install-pyenv-win.ps1" -OutFile "./install-pyenv-win.ps1"; &"./install-pyenv-win.ps1"
UnauthorizedAccess 관련 오류가 나오면 아래를 실행 한다.
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope LocalMachine
다음을 실행해서 install 가능한 Python version 을 확인하자
Pyenv install –l
그러면 설치 가능한 Python 의 version 들이 나타난다.
만약 version 이 별로 존재 하지 않으면 다음 명령을 실행해본다.
Pyenv update
이제 python 을 설치 해보자
Pyenv install 3.11.2
위 명령은 Python 3.11.2 version 을 설치하게 된다.
이제 설치가 잘 되었는지 확인해 보자
Pyenv versions
이제 다른 version 의 Python 을 설치해보자
Pyenv install 3.10.10
이제 설치가 잘 되었는지 다시 확인해 보자
Pyenv versions
이제 Python version 을 check 해 보자
Python --version
이제 이 버전을 위에 설치한 다른 버전인 3.10.10 으로 실행되도록 변경해 보자
다음 명령을 실행 한다.
Pyenv global 3.10.10
이후에 다시 python 의 version 을 해보자
Python --version
Pyenv 에 의해 현재 활성화 되어 있는 Python version 을 알고 싶다면 다음 명령을 실행하자
Pyenv versions
3.10.10 과 3.11.2 version 이 설치되어 있고
현재 3.10.10 이 활성화 되어 있는 것을 확인 할 수 있다.
만약 pyenv 에 의해 설치된 python 을 삭제 하고 싶다면 다음 명령을 실행하자
Pyenv uninstall 3.10.10
이후 pyenv versions 를 다시 실행해보면 해당 versioin 이 삭제 된 것을 알 수 있다.
별표가 없어서 현재 global 로 python 을 설정되어 있지 않으므로
다음을 실행하여 python 특정 version 을 활성화 하자
Pyenv global 3.11.2
3. Poetry 설치
poetry 는 package 설치 관리자이다. (종속성관리)
물론 python 에는 pip 라는 package 설치 관리자가 존재 한다.
하지만 이것이 많은 단점이 있다.
충돌이 일어나기도 하고 문제가 발생하는 경우가 많다.
이러한 문제를 해결하려고 poetry 라는 package 설치 관리자를 이용할 것이다.
이것은 nodejs 에 npm 과 같은 수준에 version 관리를 하게 된다.
Powershell 에서 아래 명령을 실행 하여 설치 하도록 하자
(Invoke-WebRequest -Uri https://install.python-poetry.org -UseBasicParsing).Content | python -
만약 이미 설치 되어 있어서 삭제 후 다시 설치 하려면 먼저 삭제하자
(Invoke-WebRequest -Uri https://install.python-poetry.org -UseBasicParsing).Content | python - --uninstall
Path 에 경로를 추가 하자
아래 명령을 실행해보면 설치 위치가 나온다
echo %APPDATA%\Python\Scripts
또는 아래 위치를 경로에 추가해도 된다.
(여긴 바로가기 파일이 있고 이파일이 참조하고 있는 path 는 위에 경로이다)
C:\Users\본인ID\AppData\Roaming\Python\Scripts
이제 정상적으로 실행되는지 확인해 보자
Poetry –version
4. 가상환경 설정
Python 3.6 이상부터는 자체적으로 포함되어 있는 venv 를 이용하여 가상 환경을 설정하는 것을 추천하고 있다. 아래와 같은 명령을 실행해보자
현재 python version 을 기준으로 가상 환경이 만들어 지기 때문에
Pyenv 를 통해 원하는 pyton version 을 선택하고 실행하면 된다.
기억할 것은 현재 활성화된 python version 을 기준으로 아래 환경이 만들어 진다는 것이다.
지금 예제에서는 3.11.2 버전이 pyenv 에 의해서 활성화 되어 있으므로
이름도 3_11_2 와 같이 지정하였다. 참고 바란다.
python -m venv C:\Programming\venv\python3_11_2
이제 해당 venv 환경을 활성화 하기 위해 다음 명령을 실행하자
C:\Programming\venv\python3_11_2\Scripts\activate.bat
그러면 다음과 같이 가상 환경을 통해 python 을 사용할 수 있게 된다.
이제 pyenv 를 이용해서 다른 버전을 설치하고 venv 를 격리해보자
Pyenv install 3.10.10
Pyenv global 3.10.10
python -m venv C:\Programming\venv\python3_10_10
C:\Programming\venv\python3_10_10\Scripts\activate
위와 같이 설정하면 두개의 격리된 가상 환경을 통해 여러 버전의 python 을 사용 및 배포 가능하다.
위에서 각 가상 환경 에서 나오려면 <path>\deactivate.bat 을 실행하면 된다
5. FASTAPI 설치
일단 가상 환경을 실행시켜서 프로젝트를 격리 시켜보자
위에서 이미 만들었던 가상 환경이 있으므로 그것을 이용해보자
C:\Programming\venv\python3_11_2\Scripts\activate.bat
이제 project folder 를 아무거나 하나 만들자
해당 folder 로 이동한 후 pip install fastapi[all] 을 사용하여 fastapi 와 관련된 종속성을 설치하자
이렇게 되면 개발을 위한 기본 단계는 된 것이다.
물론 가상 환경에 만들었으므로 언제든지 다른 python 버전으로 변경 가능하다.
가상 환경을 나갈 때는 아래 명령을 실행하자
C:\Programming\venv\python3_11_2\Scripts\deactivate.bat
6. Pyenv 와 Poetry 를 이용한 프로젝트 생성 및 가상 환경 설정
Python 개발은 종속성 문제가 항상 발목을 잡는다.
내부적인 pip 종속성 version 관리 시스템은 뭔가 부족하다.
그래서 이러한 부분들을 처리 하기 위해서 Poetry 라는 것을 이용한다.
Poetry 로 project 를 일단 생성하자
Poetry new demo
Poetry 가 이 pyenv 와 같이 사용하려면 다음과 같은 설정이 필요하다.
Poetry env use <python 실행 파일 위치>
Python 설치 위치 는 다음과 같이 pyenv 에서 python version 을 관리하는 위치로 이동하자
즉 pyenv 는 아래와 같은 위치에서 python.bat 를 이용해 version 을 변경하고 있다.
C:\Users\User\.pyenv\pyenv-win\shims\python3.bat
그러므로 우리는 Poetry env use Python3.bat 를 이용하면 현재 version 을 기준으로 가상환경이 만들어 진다. 이것을 이용하여 자연스럽게 가상환경 격리를 사용 할 수 있다.
만약 현재 python version 을 바꾸고 싶다면
Pyenv global <python version>
을 입력하고
다시 Poetry env use Python3.bat 을 실행하면 된다.
가상 환경에 들어가려면 Poetry shell 을 실행하고 나오려면 exit 하면 된다.
Poetry shell 이후에 Poetry add fastapi[all] 하면 위에서 했던 fastapi 도 설치가 된다.
관련영상