Python

Poweshell 환경에서 poetry 와 pyenv로 가상환경 세팅하기

r잡초처럼 2023. 3. 15. 00:29

코딩을 하기 전 개발 환경을 세팅하는 것은 중요하다. 솔직히 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의 파이썬
pyenv의 파이썬

 

답답한 와중에 한줄기의 빛을 찾았다. (출처는 아래에 남겨놨다. 너무 감사하다...).  그렇기 때문에 가상환경 진입 명령을 다음과 같이 치면 해당 오류를 극복할 수 있었다.

poetry env use $(pyenv which python)

 

참고

pyenv 

1. https://github.com/pyenv-win/pyenv-win#manually-check-the-settings

 

GitHub - pyenv-win/pyenv-win: pyenv for Windows. pyenv is a simple python version management tool. It lets you easily switch bet

pyenv for Windows. pyenv is a simple python version management tool. It lets you easily switch between multiple versions of Python. It's simple, unobtrusive, and follows the UNIX tradition of s...

github.com

2. https://thekkom.tistory.com/69

 

python:: pyenv window + ubuntu 설치방법 - 파이썬 버전관리

파이썬을 처음 접하면 책에서 설명하는 "파이썬 홈페이지"에서 설치파일을 다운받아서 설치하게 된다. 그리고 라이브러리를 설치하기 위해 -pip-명령어를 사용하면서 지우고 설치하고를 반복하

thekkom.tistory.com

poetry

1. https://github.com/python-poetry/poetry/issues/5252 - pyenv의 파이썬 버전과 poetry 버전이 다르게 출력할 때 해결 방법