본문 바로가기
coding 📟/python 💻

[Python] 가상환경 pyenv windows 윈도우 설치 사용법

by 고돌한 데이터 사이언스 2022. 5. 13.
반응형

이전 글에서 가상환경과 그중에서도 pyenv에 대해 살펴보았다.

2022.05.13 - [coding 📟/python 💻] - [Python] 파이썬 가상환경이란?

 

[Python] 파이썬 가상환경이란?

들어가기전에.. 파이썬을 설치하면 기본적으로 pip 패키지 매니저가 존재하고, 이를 이용해 프로젝트에 필요한 패키지를 설치할 수 있다. 이때 pip로 설치한 패키지는 전역으로 설

kodorricoding.tistory.com

2022.05.13 - [coding 📟/python 💻] - [Python] 가상환경 pyenv

 

[Python] 가상환경 pyenv

이전에 파이썬 가상환경에 대해 알아보았다. 2022.05.13 - [coding 📟/python 💻] - [Python] 파이썬 가상환경이란? [Python] 파이썬 가상환경이란? 들어가기전에.. 파이썬을 설치하면 기본적으로 pip 

kodorricoding.tistory.com

pyenv같은 경우 원래 windows 지원을 안하였지만 22년도 이후 추가되었다.

그럼 pyenv 윈도우windows 설치를 진행해보자.

 

pyenv windows 설치


1. cmd 창에서 pyenv-win 설치

pip install pyenv-win --target %USERPROFILE%\.pyenv

2. 해당 path를 환경변수에 추가

win -> 설정 -> 고급시스템 설정 -> 환경 변수

 

시스템 변수

새로만들기를 클릭 후 두가지를 추가해준다.

 

변수 이름 : PYENV

변수 값 : C:\Users\사용자id\.pyenv\pyenv-win\bin

 

변수 이름 : PYENV_HOME

변수 값 : C:\Users\사용자id\.pyenv\pyenv-win\

 

3. 설치 후 cmd 에서 pyenv 입력 확인

위 사진과 같이 뜨면 정상적으로 설치 완료

 

이 시스템에서 스크립트를 실행할 수 없으므로 C:\Users\User\Documents\WindowsPowerShell\profile.ps1 파일을 로드할 수 없습니다. 자세한 내용은 about_Execution_Policies(https://go.microsoft.com/fwlink/?LinkID=135170)를 참조하십시오.

 

이와 같은 에러가 뜨면

1. powershell을 관리자 모드로 열어준다.

2. 위 명령어를 입력 후 Y를 입력하면 해결할 수 있다.

+ 추가

pyenv 설치는 완료되었지만, pyenv global x.x.x 명령어를 수행시,

파이썬 버전이 스위치가 되지 않는 문제점이 발생하였다.

 

pyenv version 입력시

FATAL: Found  from PATH for pyenv to work properly.

해당 오류를 뱉는 상황이 발생했다.

 

자료를 찾던 법 중 2가지 방법을 찾았고,

필자의 경우 2가지 방법 다 시행해 문제를 해결하였다.

 

정확히 2가지 중 어떤 방법이 효과적이였는지 파악하기 힘들지만,

필자와 같은 상황이라면 2가지 방법 다 시행해보길 추천한다.

 

해결1

기존 windows local에 설치 되어있는 파이썬을 제거하였다.

필자의 경우 python3.10 버전을 설치했었고, 이로 인해 충돌로 생각하여 삭제하였다.

 

삭제 방법은 제어판 -> 프로그램 추가제거 -> python.exe 삭제

 

하지만 이후 cmd 창에서 python을 입력시 python이 제거되어 실행이 안되는 문제가 발생했고,

아래 해결2를 진행하였다.

 

해결2

windows powersell을 실행후 아래 코드를 입력해 환경변수를 다시 설정해주었다.

[System.Environment]::SetEnvironmentVariable('PYENV',$env:USERPROFILE + "\.pyenv\pyenv-win\","User")
[System.Environment]::SetEnvironmentVariable('PYENV_ROOT',$env:USERPROFILE + "\.pyenv\pyenv-win\","User")
[System.Environment]::SetEnvironmentVariable('PYENV_HOME',$env:USERPROFILE + "\.pyenv\pyenv-win\","User")

[System.Environment]::SetEnvironmentVariable('path', $env:USERPROFILE + "\.pyenv\pyenv-win\bin;" + $env:USERPROFILE + "\.pyenv\pyenv-win\shims;" + [System.Environment]::GetEnvironmentVariable('path', "User"),"User")

 

pyenv 파이썬 버전 스위칭이 정상적으로 실행되었다.

python --version
>>> Python 3.7.8
pyenv versions
>>>
  3.7.0
  3.7.6
* 3.7.8 (set by C:\Users\[]\.pyenv\pyenv-win\version)
  3.9.6
 pyenv global 3.9.6
 python --version
 >>> Python 3.9.6
pyenv versions
>>>
  3.7.0
  3.7.6
  3.7.8
* 3.9.6 (set by C:\Users\KSH\.pyenv\pyenv-win\version)

pyenv 사용법


# pyenv의 버전확인
pyenv version
 
# pyenv의 업데이트
pip install --upgrade pyenv-win
 
# 설치가능한 버전 목록 확인
pyenv install -l
 
# python 3.9.6 버전으로 설치
pyenv install 3.9.6
 
# 설치한 모든 python version 확인
pyenv versions
 
# python 2개 버전(2.4.3 + 3.9.6) 동시설치
pyenv install 2.4.3 3.9.6
 
# 기본 적용할 python 버전 지정
pyenv global 3.9.6
 
# 해당폴더에 사용할 python 버전 지정
pyenv local 3.9.6
 
#설치된 특정버전의 python 제거
pyenv uninstall 3.9.6

정리하며...


필자는 기본적으로 conda 가상환경을 사용하지만, 개념이해를 위해 pyenv를 진행해보았다.

pyenv 도 분명 실용적인 가상환경 툴로 생각되지만, windows 환경에서는 굳이 사용할 필요가 있을까.. 라는 생각이든다.

그 이유는 pyenv의 경우 python 버전을 그때그때 바꿀때는 매력적이지만 패키지 버전관리 측면에서는 무리가 있다.

이를 해결할 방법이 pyenv-virtualenv인데 아쉽지만 windows 버전에서는 아직 적용이 안되는 듯 하다.

 

하지만 나중 리눅스 환경이나 mac 에서 사용시 분명 매력적으로 다가올 수 있으니..

언젠가 사용할 날을 기다리며..

반응형

댓글