이전 글에서 가상환경과 그중에서도 pyenv에 대해 살펴보았다.
2022.05.13 - [coding 📟/python 💻] - [Python] 파이썬 가상환경이란?
2022.05.13 - [coding 📟/python 💻] - [Python] 가상환경 pyenv
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 에서 사용시 분명 매력적으로 다가올 수 있으니..
언젠가 사용할 날을 기다리며..
'coding 📟 > python 💻' 카테고리의 다른 글
[Python] 딕셔너리 컴프리헨션 + 집합, 제너레이터 컴프리헨션 (0) | 2022.05.20 |
---|---|
[Python] 리스트 컴프리헨션 List Comprension (if else) (0) | 2022.05.20 |
[Python] 가상환경 pyenv (1) | 2022.05.13 |
[Python] 파이썬 가상환경이란? (1) | 2022.05.13 |
[Python] 리스트 원소 랜덤 추출 (0) | 2022.03.08 |
댓글