python λ²μ κ΄λ¦¬μ νμμ±
νμ
μ κ°λ°μ κ° python λ²μ μ ν΅μΌμμΌμ€μΌ ν νμκ° μλ€.
νμ
μ΄ μλλλΌλ λ³ΈμΈμ΄ νκ³ μλ νλ‘μ νΈλ€λ§λ€ python λ²μ μ΄ λ€λ₯Ό μ μλλ° pyenv λ₯Ό μ¬μ©νλ©΄ python λ²μ μ μ½κ² λλλ€ μ μλ€.
pyenv λ?
pyenv lets you easily switch between multiple versions of Python.
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.. λ±λ± )