코딩을 하기 전 개발 환경을 세팅하는 것은 중요하다. 솔직히 1인 개발이면 상관없겠지만, 팀 단위로 개발 환경을 공유해야 하는 경우 환경을 맞춰야 한다. 따라서 이러한 가상환경을 세팅하기 위해 pyenv와 poetry를 활용해 파이썬 버전 관리와 패키지 버전을 관리해 보자. 그리고 난 window 환경이라 더 애먹었기 때문에 정보 공유차원에서 기록을 남긴다.
Powershell에서 pyenv 설치하기
pyenv를 설치하는 과정도 험난했다. 참고한 사이트는 아래에 참조를 걸어놨다.(고마운 분들...)
우선 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"
만약 해당 명령을 입력했을 때 스크립트를 실행할 수 없다는 오류를 마주한다면 아래와 같이 명령을 입력하자. (해당 정책에 대한 자세한 사항은 여길 참조)
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope LocalMachine
pyenv를 설치 했다면 python 버전을 설치해 보자 (3.8 버전 설치하기)
pyenv install -l # python 버전을 나열한다.
pyenv install -l | findstr 3.8 # 찾고자 하는 버전을 검색한다.
pyenv install 3.8.10 # 3.8.10 버전 설치
설치를 하고 python 버전을 전역으로 설정하고 싶다면 pyenv global 3.8.10 명령을 내리면 된다.
pyenv로 파이썬 버전 설정하고 poetry 가상환경 적용하기
poetry 설치 방법은 여길 참고하자.
poetry를 설치했다면, pyenv로 파이썬 버전을 적용하고 실행해 보자. 이때 다음과 같은 오류를 마주했다.
The specified Python version (3.9) is not supported by the project (^3.8.10).
분명 python --version을 검색하면 3.8.10이라 뜨는데 poetry에서 3.8.10으로 명시적으로 가상환경을 설치했음에도 불구하고 계속 3.9로 python 버전이 출력됐다. 추측컨대 poetry가 바라보고 있는 python 실행 버전과 pyenv의 python 버전이 달라서 생긴 이슈 같다. 실제로 poetry debug info 명령을 쳐서 뜨는 python path와 pyenv의 path가 달랐다.
답답한 와중에 한줄기의 빛을 찾았다. (출처는 아래에 남겨놨다. 너무 감사하다...). 그렇기 때문에 가상환경 진입 명령을 다음과 같이 치면 해당 오류를 극복할 수 있었다.
poetry env use $(pyenv which python)
참고
pyenv
1. https://github.com/pyenv-win/pyenv-win#manually-check-the-settings
2. https://thekkom.tistory.com/69
poetry
1. https://github.com/python-poetry/poetry/issues/5252 - pyenv의 파이썬 버전과 poetry 버전이 다르게 출력할 때 해결 방법
'Python' 카테고리의 다른 글
상속 안티 패턴 (0) | 2023.09.05 |
---|---|
가상파일시스템 pyfakefs 를 통해 테스트 코드 작성하기 (0) | 2023.04.24 |
스택프레임, 빅오 (0) | 2023.03.01 |
결합과 추상화 - 3 (0) | 2023.02.21 |
결합과 추상화 - 2 (0) | 2023.02.13 |