python

(windows) pyenv 설치 - 2024-03-18 수정완료

베스트오버 2023. 6. 7.

https://github.com/pyenv-win/pyenv-win

 

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

https://pypi.org/project/pyenv-win/

 

pyenv-win

pyenv lets you easily switch between multiple versions of Python. It's simple, unobtrusive, and follows the UNIX tradition of single-purpose tools that do one thing well.

pypi.org

pyenv: Python 버전 관리자

여러 개의 Python 버전을 시스템에 설치하고 그 중 하나를 선택하여 사용할 수 있게 해주는 도구입니다. 이를 통해 프로젝트마다 다른 Python 버전을 사용하거나, 새로운 Python 버전을 시험해 볼 수 있습니다. 가장 중요한 기능 중 하나는 로컬 디렉토리별로 사용하는 Python 버전을 설정할 수 있다는 점입니다. 이렇게 하면 한 시스템에서 다른 프로젝트마다 다른 Python 버전을 사용할 수 있습니다.

 

windows 환경에서 pyenv 설치 시 순서와 오류 해결

 

일반적으로 pyenv는 windows에서 지원을 안하기 때문에 pyenv-win 을 사용하면 된다.

전제: git 설치

 

1. PowerShell을 관리자 권한으로 실행하여 아래 코드로 설치

git clone https://github.com/pyenv-win/pyenv-win.git "$env:USERPROFILE\.pyenv"

 

환경 변수 편집

2.1 (자동 추가) PowerShell을 관리자 권한으로 실행하여 아래 코드로 설치

+ 23.08.27 추가

# 환경 변수에 PYENV, PYENV_HOME 및 PYENV_ROOT 추가
[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")

# USER PATH 변수에 pyenv-win의 bin 및 shims 경로 추가
[System.Environment]::SetEnvironmentVariable('PATH', $env:USERPROFILE + "\.pyenv\pyenv-win\bin;" + $env:USERPROFILE + "\.pyenv\pyenv-win\shims;" + [System.Environment]::GetEnvironmentVariable('PATH', "User"), "User")

 

2.2.1 (수동 추가) 사용자 변수에서 `새로 만들기`

 

더보기

 

1. `시작`

2. `Win + R` 

3. `systempropertiesadvanced`

 

 

PYENV 

%USERPROFILE%\.pyenv\pyenv-win\bin

PYENV_HOME

%USERPROFILE%\.pyenv\pyenv-win\

PYENV_SCRIPT

%USERPROFILE%\.pyenv\pyenv-win\bin\pyenv.bat

2.2.2. 시스템 변수 `path`에서 `편집`을 클릭, `새로 만들기`

%USERPROFILE%\.pyenv\pyenv-win\bin
%USERPROFILE%\.pyenv\pyenv-win\shims

그 후 맨 위로 올리기

3. 모든 설정 창을 닫고, 새로운 PowerShell 을 열어 `pyenv --version'을 입력

이와 같이 뜨면 잘되었다.

 

오류 해결 방법 1

이 메시지는 환경 변수 PYENV, PYENV_ROOT, PYENV_HOME이 설정되지 않았다는 것을 알려주고 있습니다. 이들 환경 변수는 pyenv가 필요로 하는 경로 정보를 제공합니다. 

 

 

오류 해결 방법 2

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

 

windows에서 발생하는 이 오류는 보안 설정 때문에 발생하는 것으로 보입니다. PowerShell은 기본적으로 스크립트 실행을 허용하지 않는데, pyenv는 PowerShell 스크립트를 실행해야 하기 때문에 이러한 오류가 발생하는 것입니다.

 

PowerShell 스크립트 실행 권한을 변경하려면, PowerShell을 관리자 권한으로 실행한 후 다음과 같은 병령어를 입력하면 됩니다.

 

Set-ExecutionPolicy RemoteSigned -Scope CurrentUser

 

이 명령어는 현재 사용자에 대한 스크립트 실행 정책을 변경하여, 신뢰되지 않는 소스에서 다운로드된 스크립트는 실행하지 않지만, 로컬 컴퓨터에서 작성된 스크립트는 실행하는 것을 허용합니다. 이렇게 하면 실행할 수 있게 됩니다.

 

그럼에도 불구하고  Y가 선택이 되지 않는다면 PowerShell을 재시작하였는지 확인하시고 다음 코드를 실행하세요.

 

Set-ExecutionPolicy RemoteSigned -Scope CurrentUser -Force

 

강제로 실행 정책을 변경할 수 있습니다.

 

명령어

명령어 기능
pyenv install --list pyenv로 설치할 수 있는 python 버전 목록 확인
pyenv install 3.10.5 pyenv로 python 3.10.5 설치
pyenv versions 설치된 python 버전 목록 확인
pyenv virtualenv 3.10.5 example pyenv로 가상 환경 생성 (윈도우 지원x)
pyenv uninstall example pyenv로 생성한 가상 환경 삭제
pyenv global {가상환경이름 || 설치된 파이썬 버전} global 적용
pyenv local {가상환경이름 || 설치된 파이썬 버전} local 적용
pip install {패키지명} 파이썬 패키지 설치

 

결론:

poetry와 pyenv 설치에서 거의 대부분의 오류는 Path 설정 때문에 일어납니다.

댓글