1) Windows pyenv (pyenv-win) 설치방법
Windows - pyenv의 자세한 설명은 아래 공식문서를 참고하세요
https://github.com/pyenv-win/pyenv-win#installation
간단히 요약하자면 총 3가지 방법이 있어서 이를 소개합니다.
(1)Chocolatey 플랫폼 설치, (2) PowerShell , (3)기존 python 설치한 사용자,
각 환경별로 아래 (1) / (2) 방법과 깃허브 설명에 따라 설치합니다.
1-1) Windows 방법 - Chocolatey 플랫폼
https://docs.chocolatey.org/en-us/choco/setup#install-with-cmd.exe (영문공식설명)
https://www.lainyzine.com/ko/article/how-to-install-package-manager-chocolatey-on-windows-10/ (그림과 설명좋음)
1-1-가) pyenv -win 설치 전, choco 초코플랫폼 설치
(사전 권한설정)을 하고 시작한다
cmd_명령프롬프트에서 설치시, 아래 문구입력
@"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command "[System.Net.ServicePointManager]::SecurityProtocol = 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))" && SET "PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin"**아래 powershell의 빨간 오류문자를, -ExecutionPolicy Byass 로 우회하여(CMD/powershell 모두) 설치하는 조건임
1-1-나) "pyenv-win"을 설치
초코플랫폼 설치가 끝났으면 아래 명령어로 pyenv를 설치합니다.
powershell을 "관리자권한"으로 실행합니다.
choco install pyenv-win1-2) Window 방법 - PowerShell 사용
*powershell을 관리자모드로 선택합니다. 인터넷 설명글과 MS관련 글을 참고해서도 조치가 안되는 경우가 많습니다. 간단히 아래 명령어를 powershell에 입력하여 권한을 조정합니다.
(홈페이지에서는 권한설정을 예외사항으로 다루지만, 설치할 때마다 권한문제가 발생하여 사전 조건으로 입력하는 것이 좋습니다)
# 권한조정
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope LocalMachine
# pyenv-win install
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"<< pyenv-win설치시 ERROR 메세지 (권한문제) >>
만약, 아래 오류메세지가 표시된다면 권한 조정이 정상적으로 이루어지지 않은 것입니다.
이 시스템에서 스크립트를 실행할 수 없으므로 C:\Users\User\Documents\WindowsPowerShell\profile.ps1 파일을 로드할 수 없습니다. 자세한 내용은 about_Execution_Policies(https://go.microsoft.com/fwlink/?LinkID=135170)를 참조하십시오.
Windows - pyenv path 경로설정
윈도우에서 pyenv가 실행될 때 원활한 동작을 위해 "사용자 환경변수"설정이 필요하다.
powershell에서 아래 명령어를 입력하거나 환경설정창에서 path를 추가한다
# STEP 1 :: PYENV 설정
[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")
# STEP 2 :: PATH에 추가설정 (일반적으로 PYENV 설치 중 자동입력됨)
[System.Environment]::SetEnvironmentVariable('path', $env:USERPROFILE + "\.pyenv\pyenv-win\bin;" + $env:USERPROFILE + "\.pyenv\pyenv-win\shims;" + [System.Environment]::GetEnvironmentVariable('path', "User"),"User")
# 경로확인
$env:Path
# pyenv 실행확인
pyenv
# pyenv에서 설치가능한 python 버전리스트 update
pyenv update
pyenv install --list
# 실패시 아래 코드를 사용해서 manual setting 시도
# 현재 PATH 확인
$env:PATH -split ';'
# 환경변수에 pyenv 경로 추가
[Environment]::SetEnvironmentVariable("Path", $env:Path + ";$env:USERPROFILE\.pyenv\pyenv-win\bin;$env:USERPROFILE\.pyenv\pyenv-win\shims", [EnvironmentVariableTarget]::User)
Windows - PIP path 경로설정
2023-08-19 update
"pyenv rehash" 명령어를 사용하여 pip 등 경로를 재설정합니다.
python version이 바뀌거나 pip 명령어를 인식하지 못할 때, 이를 사용하여 갱신합니다.
pyenv rehash
Windows - venv 가상환경 설정 및 경로설정
windows에서는 Linux/Mac버전 pyenv와 다르게, virtualenv 명령어를 지원하지 않습니다.
그래서 python 기본명령어인 "venv"를 사용하여 마치 가상환경처럼 virtualenv을 대체하여 사용합니다.
(2024-03-16 update)
* windows에서는 대소문자를 가리지 않지만, 윈도우WSL이나 도커환경내에서 사용하면 이 것은 Linux환경이기 때문에 대소문자를 가릴 수도 있고, 경로에서 폴더를 나타내는 \ , / 를 잘 구분해야 할 때도 있습니다. 경로설정 등에서 유의하세요
*찾아보니 폴더_project별(폴더별)로 자동실행 activate되는 메뉴는 없는 듯합니다.
vscode에서는 자동인식하여 확인버튼을 누르도록 안내문구가 팝업되기는 합니다.
# 가상환경 생성
python -m venv [virtual_name]
python -m venv venv
# 가상환경 적용/해제
.\[virtual_name folder]\Sciripts\activate
.\[virtual_name folder]\Sciripts\deactivate
.\venv\Scripts\activate
.\venv\Scripts\deactivateDelete 삭제 pyenv-win
# 삭제 delete
choco uninstall pyenv-win2) LINUX (ubuntu) pyenv 설치방법
가) pyenv - ubuntu 설치
https://github.com/pyenv/pyenv-installer
curl https://pyenv.run | bash
curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash
# 설치중, 혹시 아래줄과 같은 에러 발생하면
# "Can not proceed with installation. Kindly remove .pyenv from home/"
# 아래 줄 명령어로 폴더 삭제하고 다시 4번째 줄 실행
# rm -rf ~/.pyenv
# Restart your shell so the path changes take effect:
exec $SHELL
# For UPDATE
git clone https://github.com/pyenv/pyenv-update.git $(pyenv root)/plugins/pyenv-update
pyenv update나) 설치후 환경설정
+ 설치한 뒤에는 .bashrc 환경설정파일에, 아래 보이는 명령어 3줄을 추가하라는 안내 문구가 나오면 설치 완료
# 방법1) terminal에서 바로 echo 명령어로 간편하게 추가
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
echo '[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(pyenv init -)"' >> ~/.bashrc
# 방법2) 위 방법을 수동으로 하려면
# sudo nano ~/.bashrc 명령어로 아래 3줄을 맨 아래에 추가
export PYENV_ROOT="$HOME/.pyenv"
[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"
# 위 설정 바로적용)
source ~/.bashrc
# 추가) https://github.com/pyenv/pyenv-virtualenv 도 추가로 설치했고
# 기본설정에 등록하려면 아래문구도 추가
eval "$(pyenv virtualenv-init -)"WSL, ubuntu 에서 경로를 찾지 못할 때
# 위 자동문로구를 입력했을 때, 아래처럼 ERROR에러 문구 발생하면
# pyenv
# Command 'pyenv' not found, did you mean:
# command 'p7env' from deb libnss3-tools (2:3.68.2-0ubuntu1.2)
# Try: sudo apt install <deb name>3) pyenv 사용법, 명령어
자주 쓰는 명령어들
# pyenv 버전확인
pyenv version
# pyenv 업데이트
pip install --upgrade pyenv-win
# pyenv 업데이트 for ubuntu
git clone https://github.com/pyenv/pyenv-update.git $(pyenv root)/plugins/pyenv-update
pyenv update
# 설치가능한 버전 목록 LIST 확인
pyenv install -l
pyenv install --list
# python 3.10.11 버전으로 설치
pyenv install 3.10.11
# python 2개 버전(3.9.13 + 3.10.11) 동시설치
pyenv install 3.9.13 3.10.11
# 설치한 모든 python version 확인
pyenv versions
# 기본 적용할 python 버전 지정
pyenv global 3.10.11
# 해당폴더에 사용할 python 버전 지정
pyenv local 3.10.11
# 폴더에 적용중인 python 버전으로 pip 폴더를 재설정
pyenv rehash
# 현재 사용중인 python 버전 확인
pyenv shell
# 설치된 특정버전의 python 제거
pyenv uninstall 3.10.11
------ (가상환경VENV)------
# python 사용경로 확인
pyenv which python
pyenv which <command>
# 가상환경 생성 (ubuntu, mac)
pyenv virtualenv [version] [virtual_name]
pyenv virtualenv 3.10.11 venv3.10.11
# 가상환경 적용
pyenv global [virtual_name]
pyenv local [virtual_name]
----- (Window venv 사용) -----
# Win가상환경 생성 (Windows에서는*아직 지원 안하니 python 기본모듈 venv를 사용함)
# 가상환경 생성
python -m venv [virtual_name]
python -m venv venv
# 가상환경 적용/해제
.\[virtual_name folder]\Sciripts\activate
.\[virtual_name folder]\Sciripts\deactivate
.\venv\Scripts\activate
.\venv\Scripts\deactivate
----- (Ubuntu venv 사용) -----
# 가상환경 생성
python -m venv [virtual_name]
python -m venv venv
source ./venv/bin/activatepyenv commands for WINDOWS *ubuntu와 다름
commands List all available pyenv commands
local Set or show the local application-specific Python version
global Set or show the global Python version
shell Set or show the shell-specific Python version
install Install 1 or more versions of Python
uninstall Uninstall 1 or more versions of Python
update Update the cached version DB
rehash Rehash pyenv shims (run this after switching Python versions)
vname Show the current Python version
version Show the current Python version and its origin
version-name Show the current Python version
versions List all Python versions available to pyenv
exec Runs an executable by first preparing PATH so that the selected Python
which Display the full path to an executable
whence List all Python versions that contain the given executablepyenv-commands for ubuntu / MacOS
pyenv --help
Some useful pyenv commands are:
--version Display the version of pyenv
activate Activate virtual environment
commands List all available pyenv commands
deactivate Deactivate virtual environment
exec Run an executable with the selected Python version
global Set or show the global Python version(s)
help Display help for a command
hooks List hook scripts for a given pyenv command
init Configure the shell environment for pyenv
install Install a Python version using python-build
local Set or show the local application-specific Python version(s)
prefix Display prefix for a Python version
rehash Rehash pyenv shims (run this after installing executables)
root Display the root directory where versions and shims are kept
shell Set or show the shell-specific Python version
shims List existing pyenv shims
uninstall Uninstall a specific Python version
version Show the current Python version(s) and its origin
version-file Detect the file that sets the current pyenv version
version-name Show the current Python version
version-origin Explain how the current Python version is set
versions List all Python versions available to pyenv
virtualenv Create a Python virtualenv using the pyenv-virtualenv plugin
virtualenv-delete Uninstall a specific Python virtualenv
virtualenv-init Configure the shell environment for pyenv-virtualenv
virtualenv-prefix Display real_prefix for a Python virtualenv version
virtualenvs List all Python virtualenvs found in `$PYENV_ROOT/versions/*'.
whence List all Python versions that contain the given executable
which Display the full path to an executable(( ETC ))
pyenv versions
- pip를 사용해 모듈을 설치할 때, 설치 위치확인
pyenv which pip
-VScode에서 interpreter 설정시 보이는 environmental variables / 실행주소
Error 해결
ubuntu:: pyenv install x.x.x 파이썬 설치시 오류메세지
- build-essential 패키지가 없어서 발생하는 오류임
- 아래 링크 글에서 "사전모듈"을 설치하고 다시 pyenv install 3.x를 실행한다
https://thekkom.tistory.com/84
thekkom.tistory.com
윈도우에서 python 명령어를 입력하면 앱스토어로 자꾸 연결되거나,
pyenv 로 폴더별 설정을 변경했음에도 다른 버전이 실행될 때...
https://thekkom.tistory.com/156
thekkom.tistory.com
0 댓글