Search

[python] pyenv 둜 python 버전 κ΄€λ¦¬ν•˜κΈ°

νƒ€μž…
개발
νƒœκ·Έ
python
μƒνƒœ
Published
생성일
2023/01/09 02:42
μ΅œμ’… νŽΈμ§‘ μΌμ‹œ
2023/02/24 11:35
2 more properties

python λ²„μ „κ΄€λ¦¬μ˜ ν•„μš”μ„±

ν˜‘μ—… μ‹œ 개발자 κ°„ python 버전을 ν†΅μΌμ‹œμΌœμ€˜μ•Ό ν•  ν•„μš”κ°€ μžˆλ‹€.
ν˜‘μ—…μ΄ μ•„λ‹ˆλ”λΌλ„ 본인이 ν•˜κ³  μžˆλŠ” ν”„λ‘œμ νŠΈλ“€λ§ˆλ‹€ python 버전이 λ‹€λ₯Ό 수 μžˆλŠ”λ° pyenv λ₯Ό μ‚¬μš©ν•˜λ©΄ python 버전을 μ‰½κ²Œ λ„˜λ‚˜λ“€ 수 μžˆλ‹€.

pyenv λž€?

pyenv lets you easily switch between multiple versions of Python.
pyenv
pyenv
pyenv λ₯Ό μ‚¬μš©ν•˜κ²Œ 되면 크게 λ„€ κ°€μ§€μ˜ python 버전 λ²”μ£Όκ°€ μžˆλ‹€.
ν”ΌλΌλ―Έλ“œ μ•„λž˜μ—μ„œλΆ€ν„° 보면,
β€’
System Python : μ‹œμŠ€ν…œμ— 기본으둜 μ„€μΉ˜λœ python
β€’
pyenv global : pyenv 섀정에 μ˜ν•΄ μ „μ—­μœΌλ‘œ μ„€μΉ˜λœ python
pyenv λ₯Ό μ“°κ²Œ λœλ‹€λ©΄ κ°€μž₯ 많이 μ“°λŠ” 버전이 pyenv global 버전일 것이닀.
β€’
pyenv local : νŠΉμ • local 에 μ„€μΉ˜λœ python 으둜 global 보닀 μš°μ„ λœλ‹€.
β€’
pyenv shell : shell λ™μž‘ μ‹œμ—λ§Œ μ μš©λ˜λŠ” python λ²„μ „μœΌλ‘œ κ°€μž₯ μš°μ„ μ‹œ λœλ‹€.
ν”ΌλΌλ―Έλ“œ 상단 순으둜 μš°μ„ μˆœμœ„κ°€ λ†’λ‹€.

pyenv μ‚¬μš©λ²•

pyenv μ„€μΉ˜

OS λ§ˆλ‹€ μ„€μΉ˜λ²•μ΄ λ‹€λ₯΄λ―€λ‘œ pyenv 곡식 github λ ˆν¬μ§€ν† λ¦¬λ₯Ό μ°Έκ³ ν•˜λŠ” 것을 μΆ”μ²œν•©λ‹ˆλ‹€
μ„€μΉ˜ μ™„λ£Œ ν›„ pyenv 버전 체크
pyenv --version
Bash
볡사

pyenv λͺ…λ Ήμ–΄

pyenv 둜 μ„€μΉ˜ν•  수 μžˆλŠ” python 버전 λͺ©λ‘ 확인

pyenv install -list
$ pyenv install -list Available versions: 2.1.3 2.2.3 2.3.7 2.4.0 2.4.1 2.4.2 2.4.3 2.4.4 2.4.5 ...
Bash
볡사

pyenv 둜 νŠΉμ • 버전 python μ„€μΉ˜

pyenv install {version}
$ pyenv install 3.11.0 python-build: use openssl@1.1 from homebrew python-build: use readline from homebrew Downloading Python-3.11.0.tar.xz... -> https://www.python.org/ftp/python/3.11.0/Python-3.11.0.tar.xz Installing Python-3.11.0... python-build: use readline from homebrew python-build: use zlib from xcode sdk Installed Python-3.11.0 to /Users/shawn/.pyenv/versions/3.11.0
Bash
볡사

pyenv 둜 μ„€μΉ˜ν•œ 파이썬 버전 확인

pyenv versions
$ pyenv versions system * 3.10.8 (set by /Users/shawn/.pyenv/version) 3.11.0
Bash
볡사
system 은 system 기본으둜 μ„€μΉ˜λœ 파이썬이고, 버전λͺ…이 λͺ…μ‹œλœ 것이 pyenv 둜 μ„€μΉ˜ν•œ νŒŒμ΄μ¬μ΄λ‹€.
ν˜„μž¬λŠ” 3.10.8 버전이 pyenv 의 global λ²„μ „μœΌλ‘œ μ„ΈνŒ…λ˜μ–΄μžˆλ‹€.
pyenv 둜 μ„€μΉ˜ν•œ νŒŒμ΄μ¬μ€ ~/.pyenv/versions 폴더 μ•ˆμ— 있고, pyenv global 둜 μ„ΈνŒ…λœ 파이썬 버전은 ~/.pyenv/version 이 λœλ‹€.

global : pyenv 둜 μ„€μΉ˜ν•œ νŒŒμ΄μ¬μ„ κΈ°λ³Έ(κΈ€λ‘œλ²Œ) 파이썬 λ²„μ „μœΌλ‘œ λ³€κ²½

pyenv global {version}
pyenv global μ„€μ • μ „μ—λŠ” 3.10.8 μ΄μ˜€λ˜ κΈ€λ‘œλ²Œ 버전이 pyenv global μ„€μ • ν›„μ—λŠ” 3.11.0 으둜 λ°”λ€Œμ—ˆλ‹€.

local : 디렉토리 λ³„λ‘œ 파이썬 버전 λ‹€λ₯΄κ²Œ μ„ΈνŒ…ν•˜κΈ°

pyenv local {version}
# 디렉토리 ꡬ쑰 pyenv-tutorial/ └── ver_3.10.8/
Bash
볡사
루트 디렉토리인 pyenv-tutorial 은 3.11.0 버전 을 μ‚¬μš©ν•˜κ³ ,
ν•˜μœ„ 디렉토리인 ver_3.10.8 은 3.10.8 버전을 μ‚¬μš©ν•΄λ³΄λ„λ‘ ν•  것이닀.
루트 λ””λ ‰ν† λ¦¬μ—μ„œ pyenv local 3.11.0 μ»€λ§¨λ“œλ₯Ό μž…λ ₯
μ΄λ²ˆμ—” ν•˜μœ„ λ””λ ‰ν† λ¦¬μ—μ„œ pyenv local 3.10.8 μ»€λ§¨λ“œ μž…λ ₯
pyenv local 은 각 λ””λ ‰ν† λ¦¬λ§ˆλ‹€ 파이썬 버전이 적힌 .python-version μ΄λΌλŠ” νŒŒμΌμ„ μƒμ„±ν•œλ‹€.
λ””λ ‰ν† λ¦¬λ§ˆλ‹€ λ‹€λ₯΄κ²Œ μ„ΈνŒ…λœ python 버전 확인

shell : shell μ—μ„œλ§Œ 파이썬 버전 λ‹€λ₯΄κ²Œ ν•˜κΈ°

pyenv shell {version}
ν˜„μž¬ μ‰˜ ν”„λ‘œμ„ΈμŠ€μ—μ„œλ§Œ λͺ…μ‹œλœ λ²„μ „μœΌλ‘œ μ‹€ν–‰λœλ‹€.
μ‰˜μ΄ 꺼지면 기쑴의 λ²„μ „μœΌλ‘œ λŒμ•„μ˜¨λ‹€.

마무리

pyenv 둜 python 버전관리λ₯Ό ν•˜κ³ , 본인 κΈ°ν˜Έμ— λ§žλŠ” κ°€μƒν™˜κ²½ 라이브러리둜 κ°€μƒν™˜κ²½μ„ μ„ΈνŒ…ν•΄μ£Όλ©΄ λœλ‹€. ( venv, virtualenv, pipenv, poetry.. λ“±λ“± )