๊ฐ๋ฐ ๋ฐํ์ ํ๊ฒฝ ๊ตฌ์ถํ๊ธฐ - ํ์ด์ฌ pyenvํธ
๊ฐ๋ฐ ๋ฐํ์ ํ๊ฒฝ ๊ตฌ์ถํ๊ธฐ - ํ์ด์ฌ pyenvํธ ๊ด๋ จ
์ด ์ธ์์ ์๋ง์ ์ธ์ด๊ฐ ์กด์ฌํฉ๋๋ค.
์ปดํจํฐ ํ๋ก๊ทธ๋จ ๊ฐ๋ฐ์ ์ ์ผ๋ก ์ผ๊ณ ์๋ ์ฌ๋์๊ฒ ์ด๋ค ์ธ์ด๋ฅผ ์ฃผ๋ก ์ฌ์ฉํ๋๊ณ ๋ฌป๋๋ค๋ฉด ๋๋ถ๋ถ "์ ๋ ์๋ฐ๋ฅผ ์ฌ์ฉํ๋๋ฐ์?"๋ผ๋ ๋ต์ ๋ฐ๊ฒ ๋ ๊ฒ์ ๋๋ค. ๋์ผํ ์ง๋ฌธ์ ์ปดํจํฐ๋ ์๊ด์๋ ์ฌ๋์๊ฒ ๋ฌป๋๋ค๋ฉด "ํ๊ตญ์ด๋ฅผ ์ฌ์ฉํฉ๋๋ค"๋ผ๊ณ ๋ตํ๊ฒ ์ฃ . ๊ทธ๋งํผ ํ๋ก๊ทธ๋จ ๊ฐ๋ฐ์์๊ฒ ์ธ์ด๋ผ๊ณ ํ๋ ๊ฑด ๊ฐ๋ฐ์ ์์ ์ ์ ์ฒด์ฑ์ ๋ํ๋ด๋ ๊ณ ์ ํ ๋ช ์ฌ์๋ ๊ฐ์ต๋๋ค.
๊ทธ๋ฐ๋ฐ ์ด๋ฐ ๊ฐ๋ฐ์๋ค๋ ๊ฐ๋ฐ ํ๊ฒฝ์ ์ค์ ํ๋ ์ผ์๋ ์ด๋ ค์์ ๊ฒช๋ ๊ฒฝ์ฐ๊ฐ ์ ์ง ์์ต๋๋ค. ์์ฆ์ Go Lang, Rust, Python, Javascript ๋ฑ์ ์น ๊ธฐ๋ฐ์ผ๋ก ์ฝ๊ฒ ๋ฐฐ์ธ ์ ์์ด ๋ฐ๋ก ์ค์นํ๊ธฐ ์๊ธฐ ๋๋ฌธ์ ๋๋ค. 20์ฌ ๋ ์ ์ ํ๋ก๊ทธ๋จ ๊ฐ๋ฐ์ ํ๊ธฐ ์ํด ์ปดํ์ผ๋ฌ๋ฅผ ์ ์กฐ์ฌ์์ ๊ตฌ์ ํด์ ๋ด๋ ค๋ฐ์(๋๋ ๋ฐฐ์ก๋ฐ์์) ์ค์นํ์์ต๋๋ค.
์, ๊ทธ๋ฐ๋ฐ ์ ์๋ง์. ์ปดํ์ผ๋ฌ๋ผ๊ณ ํ์ฃ ? ๊ทธ๋ฆฌ๊ณ ์ปดํ์ผ๋ฌ๋ฅผ ๊ตฌ์ ํ๋ค๊ณ ์? 20์ฌ ๋ ์ ๋ง ํ๋๋ผ๋ ๋๋ค์์ ์ฌ๋๋ค์ ํ๋ก๊ทธ๋จ ๊ฐ๋ฐ์ ์ํด ์ปดํ์ผ๋ฌ ๋ฐ ํ๋ก๊ทธ๋จ ๊ฐ๋ฐ์ ํ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ชจ์์ ๊ตฌ์ ํด์ ํ๋ก๊ทธ๋๋ฐ ํ๋ ๊ฒ์ด ์ผ๋ฐ์ ์ธ ๋ชจ์ต์ด์์ต๋๋ค.
์ ๊น 20์ฌ ๋ ์ ์ผ๋ก ๊ฐ๋ค ์๋๋ฐ์. ํ๋ก๊ทธ๋จ ๊ฐ๋ฐ์ ํ๋ ๋ชจ๋ ์ด๋ค์๊ฒ ๊ทธ๋๋ ์ง๊ธ์ด๋ ํ๋ก๊ทธ๋จ ๊ฐ๋ฐ ํ๊ฒฝ์ ๊ตฌ์ถํ๋ ๊ฒ์ ์ด๋ ต๊ณ ์ง์ฆ๋๋ ์ผ์ ๋๋ค. ํนํ ๋ง์ดํฌ๋ก์ํํธ์ฒ๋ผ ๊ฐ๋ฐ ๋๊ตฌ๋ฅผ ์น์ ํ๊ฒ ๋ค ์ ๊ณตํด์ฃผ๋ ๊ฒฝ์ฐ๋ฅผ ์ ์ธํ๊ณ ๋, ์ค๋์ ์ ๋ฆฌ๋ ์ค์ ๊ฐ์ ์ด์์ฒด์ ์์ ๊ฐ๋ฐ ํ๊ฒฝ์ ๊ตฌ์ถํ๋ ๊ฒ์ ์ ๋ง ์ ๋ช ์ด ๋์์ต๋๋ค.
์ปดํ์ผ๋ฌ๋ฅผ ์ค์นํ๊ธฐ ์ํด ์ปดํ์ผ๋ฌ๋ฅผ ์ปดํ์ผ ํ์ผ๋๊น์. ์ต๊ทผ์ ๋ฆฌ๋ ์ค ๋ฐฐํฌ๋ณธ์์๋ ์ปดํ์ผ๋ฌ๋ฅผ ์ฝ๊ฒ ์ค์นํ ์ ์๋๋ก ๋์์ฃผ๋ ์ฐ๋ฆฌ๋ ์ถ๋ณต๋ฐ๋ ์ฌ๋๋ค์ผ ๊ฒ๋๋ค.
๋ณดํต ๊ฐ๋ฐ ํ๊ฒฝ์ ๊ตฌ์ถํ๋ค๋ ๊ฒ์ ๋ค์์ ๋ชจ๋ ํฌํจํ๊ณ ์๋ ์ฉ์ด์ ๋๋ค.
- ์ปดํ์ผ๋ฌ ์ค์น
- ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค์น
- ํธ์ง๊ธฐ ์ค์น
- ๊ฐ๋ฐ ๋ฐํ์
C, C++์ ๊ฐ์ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ ์ปดํ์ผ ๊ฒฐ๊ณผ๋ก ์ด์์ฒด์ ๊ฐ ๋ฐ๋ก ์คํํ ์ ์๋ 0๊ณผ 1๋ก ์ด๋ฃจ์ด์ง ๊ธฐ๊ณ์ด๋ก ๊ตฌ์ฑ๋ ํ์ผ์ด ๋ง๋ค์ด์ง๊ธฐ ๋๋ฌธ์ ๋ณ๋์ ์์ค ์ฝ๋ ์คํ ๋ช ๋ น์ด ํ์ํ์ง ์์ต๋๋ค. ํ์ง๋ง ์๋ฐ๋ ํ์ด์ฌ, ๋ฃจ๋น ๋ฑ์ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ ๊ธฐ๊ณ์ด๋ก ๊ตฌ์ฑ๋ ํ์ผ์ ๋ง๋ค์ง ์๊ธฐ ๋๋ฌธ์ ์ฐ๋ฆฌ๊ฐ ์์ฑํ ํ๋ก๊ทธ๋จ ์ฝ๋๋ฅผ ์ง์ ์คํํ ๋ณ๋์ ๋๊ตฌ๊ฐ ํ์ํ๋ฐ, ์ด ๋๊ตฌ๋ฅผ "๊ฐ๋ฐ ๋ฐํ์"์ด๋ผ๊ณ ๋ถ๋ฆ ๋๋ค. ์ด ๊ธ์ ํ์์์ ์ค๋ช ํ๊ฒ ์ง๋ง Node.Js๋ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๊ฐ ์๋๋ผ ์๋ฐ์คํฌ๋ฆฝํธ ๋ฐํ์์ ๋๋ค.
C, C++ ๋ฑ์ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ๋ฌ๋ฆฌ ์๋ฐ, ํ์ด์ฌ, ์๋ฐ์คํฌ๋ฆฝํธ ๊ฐ์ ์ธ์ด๋ค์ ๋์์์ด ์ ๋ฒ์ ์ ๊ฐ๋ฐ ๋ฐํ์์ด ๋ฐํ๋๋ฉฐ, ์ ๋ฒ์ ์์๋ง ์ ๊ณต๋๋ ๊ธฐ๋ฅ์ ์ฌ์ฉํ๋ ค๋ฉด ํ๋ก๊ทธ๋๋จธ๊ฐ ์ ๋ฒ์ ์ ๊ฐ๋ฐ ๋ฐํ์์ ์ค์นํด์ผ๋ง ํฉ๋๋ค.
๊ณผ๊ฑฐ์ ๊ฐ๋ฐ ํ๊ฒฝ์์๋ ๊ฐ๋ฐ ๋ฐํ์์ ์ ๊ท๋ก ์ค์นํ ์ผ์ด ๊ฑฐ์ ์์๊ณ ํน๋ณํ ์ผ์ด ์์ผ๋ฉด ๊ฐ๋ฐ ๋ฐํ์์ ์ ๊ทธ๋ ์ด๋ํ๋ ์ผ๋ ์ด๋ฃจ์ด์ง์ง ์์์ง๋ง, ์ต๊ทผ์ ์ด๋ฐ ์ผ์ ๋น๋๊ฐ ๋งค์ฐ ๋น ๋ฅด๊ฒ ๋์ด๋๊ณ ์์ต๋๋ค. ๋ง๋ถ์ฌ ์๋ฐ ์ธ์ด์ ๊ฐ๋ฐ์ฌ์ธ ์ค๋ผํด์ด ์๋ฐ ์ธ์ด ๋ฐํ์์ ์ ๋ฃํ ์ํค๋ฉด์ ์๋ก์ด ์๋ฐ ์ธ์ด ๋ฐํ์์ด ๋น ๋ฅด๊ฒ ๋๊ธฐ๋ ํ์ต๋๋ค.
C, C++ ๋ฑ์ ์ปดํ์ผ ์ธ์ด์ ๋ฌ๋ฆฌ ๊ฐ๋ฐ ๋ฐํ์์ ์ฌ์ฉํ๋ ์ธ์ด๋ ํ๋ก๊ทธ๋จ๋ง๋ค ์ฌ์ฉํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ๋ค๋ฅธ ๊ฒฝ์ฐ๋ ๋ฌผ๋ก ์ด๊ณ ๊ฐ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋๋ผ๋ ๋ฒ์ ์ด ๋ค๋ฅผ ์ ์์ต๋๋ค. ์ฌ์ง์ด๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์ง์ํ๋ ๊ฐ๋ฐ ๋ฐํ์์ ๋ฒ์ ์ด ๋ค๋ฅธ ๊ฒฝ์ฐ๋ ์กด์ฌํฉ๋๋ค. ๊ทธ๋ฌ๋ค ๋ณด๋ ๊ฐ๋ฐ ํ๊ฒฝ์ ๊ตฌ์ถํ๋ค๋ ๊ฒ์ด ๋น์ฐํ ์ด๋ ต๋ค๋ฉด ์ด๋ ค์ธ ์๋ฐ์ ์๊ฒ ๋ ๊ฑฐ์ฃ .
๊ทธ๋์ ์ด ๊ธ์์๋ ๊ฐ๋ฐ ๋ฐํ์์ ์ฌ์ฉํ๋ ์ธ์ด ์ค ํ์ด์ฌ์ ์ค์ฌ์ผ๋ก ๋ฆฌ๋ ์ค์์ ๊ฐ๋ฐ ๋ฐํ์์ ๊ตฌ์ถํ๋ ๋ฐฉ๋ฒ์ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
ํ์ด์ฌ์ ๊ฐ๋ฐ ๋ฐํ์ ๊ตฌ์ถ์ ๋์์ฃผ๋ ๋๊ตฌ๋ ์ฌ๋ฌ ๊ฐ์ง๊ฐ ์์ง๋ง ์ฌ๊ธฐ์๋ pyenv
๋ฅผ ์ดํด๋ด
๋๋ค. pyenv
๋ ์ฌ๋ฌ ํ์ด์ฌ ๊ฐ๋ฐ ๋ฐํ์์ ์๋์ผ๋ก ์ค์นํด์ฃผ๊ณ ๋ฐ๋ก ์ฌ์ฉํ ์ ์๋๋ก ์ค๋นํด์ฃผ๋ ๋ํ์ ์ธ ๋๊ตฌ์
๋๋ค.
pyenv ์ค์นํ๊ธฐ
pyenv๋ pyenv/pyenv
์์ ๋ด๋ ค๋ฐ์ ์ ์์ผ๋ฉฐ ๋ค์ ์ด์์ฒด์ ๋ฅผ ์ง์ํฉ๋๋ค.
- macOS
- Linux
์ด ๊ธ์์๋ ๋ค์ ํ๊ฒฝ์ pyenv
๋ฅผ ์ค์นํฉ๋๋ค.
- Debian GNU/Linux 11
pyenv
๋ฅผ ์ค์นํ๋ ค๋ฉด ์ด์์ฒด์ ์์ ์ฌ์ฉ ์ค์ธ ์
ธ์ด ๋ฌด์์ธ์ง ์๋ ๊ฒ์ด ๋ฌด์๋ณด๋ค ์ค์ํฉ๋๋ค. ํฐ๋ฏธ๋์ ์ด๊ณ ๋ค์ ๋ช
๋ น์ ์คํํฉ๋๋ค.
echo $SHELL
์ด ๋ช
๋ น์ ์คํ ๊ฒฐ๊ณผ๊ฐ ๋ฌด์์ธ์ง์ ๋ฐ๋ผ pyenv
์ค์น ๊ณผ์ ์ด ์กฐ๊ธ ๋ฐ๋๋๋ค. ์ฌ์ฉ ์ค์ธ ์
ธ์ ํ์ธํ์ผ๋ฉด ๋ค์ ๋จ๊ณ๋ก ๋์ด๊ฐ๋๋ค.
pyenv
๋ฅผ ์ค์นํ๊ณ ์ฌ์ฉํ๋ ค๋ฉด ์ด์์ฒด์ ์ ๋ช ๊ฐ์ ํ๋ก๊ทธ๋จ์ด ๋ฏธ๋ฆฌ ์ค์น๋์ด ์์ด์ผ ํฉ๋๋ค. ๋ค์ ๋ช
๋ น์ ๋ด๋ ค ํ๋ก๊ทธ๋จ์ ๋ฏธ๋ฆฌ ์ค์นํด๋ก๋๋ค.
sudo apt install git curl wget unzip build-essential libssl-dev
์ด์ pyenv
๋ฅผ ์ค์นํ ์ฐจ๋ก์
๋๋ค. ๋ค์ ๋ช
๋ น์ ์
ธ์์ ์
๋ ฅํฉ๋๋ค.
curl https://pyenv.run | bash
์ด๊ฒ์ผ๋ก pyenv
์ค์น๊ฐ ์๋ฃ๋๋ฉด ํ๋ฉด์ ๋ค์ ๋ด์ฉ์ด ๋์ฌ ๊ฒ๋๋ค.
export PYENV_ROOT="$HOME/.pyenv"
command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"
# Restart your shell for the changes to take effect.
# Load pyenv-virtualenv automatically by adding
# the following to ~/.bashrc:
eval "$(pyenv virtualenv-init -)"
์ด ๋ด์ฉ์ ์ฌ์ฉ ์ค์ธ ์ด์์ฒด์ ์ ์
ธ์ ์ค์ ํ์ผ์ ์ถ๊ฐํด์ค๋๋ค. ์์์ ์คํํ echo $SHELL
์ ์คํ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ๋ก ์ด๋ ์ฌ์ฉํฉ๋๋ค. ์ด ์คํ ๊ฒฐ๊ณผ๊ฐ /bin/bash
๋ผ๋ฉด ์ ๋ด์ฉ์ ~/.bashrc
์ /bin/zsh
๋ผ๋ฉด ~/.zshrc
ํ์ผ์ ๋์ ์ถ๊ฐํด์ค๋๋ค.
์ด๊ฒ์ผ๋ก pyenv
์ค์น๊ฐ ์๋ฃ๋์์ต๋๋ค. ํฐ๋ฏธ๋ ํ๋ก๊ทธ๋จ์ ๋ซ์๋ค๊ฐ ๋ค์ ์คํํ๋ฉด ๋ณธ๊ฒฉ์ ์ผ๋ก pyenv
๋ฅผ ์ฌ์ฉํ ์ค๋น๊ฐ ์๋ฃ๋ฉ๋๋ค. ๋๋ฌด ์ฌ์ด ๊ฑฐ ์๋๋๊ณ ํ ๋ง๋ ๊ฑฐ๋ค๊ณ ์ถ์ผ์์ฃ ?
pyenv๋ก ํ์ด์ฌ ์ค์นํ๊ธฐ
ํ์ด์ฌ์ C๋ก ๊ตฌํ๋ CPython์ด ์ผ๋ฐ์ ์ด๋ฉฐ, ํ์ด์ฌ์ด๋ผ๊ณ ํ๋ฉด CPython์ ๊ฐ๋ฆฌํต๋๋ค. CPython์ ์ด์์ฒด์ ๋ณ๋ก ์ปดํ์ผํด์ผ๋ง ์ฌ์ฉํ ์ ์์ต๋๋ค. ํ์ด์ฌ์ ์ปดํ์ผํด์ ์ค์นํ๋ ค๋ฉด ์์์ผ ํ ๋ด์ฉ๋ ๋ง๊ณ ์ค์น ๋ช
๋ น์ด ์ฌ๋ฌ ๊ฐ์ง๋ง pyenv
๋ ์ด ๊ณผ์ ์ ์ฝ๊ฒ ํ ์ ์๋๋ก ๋์์ค๋๋ค.
์ฐ์ ์์คํ ์ ์ด๋ค ๋ฒ์ ์ ํ์ด์ฌ์ ์ค์นํ ์ ์๋์ง ๋ค์ ๋ช ๋ น์ ์คํํด์ ํ์ธํฉ๋๋ค.
pyenv install -l
#
# 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
# ...
์ด ๋ช
๋ น์ ์คํ ๊ฒฐ๊ณผ๋ก pyenv
๊ฐ ์ค์นํ ์ ์๋ ๋ชจ๋ ํ์ด์ฌ ๋ฐํ์์ ๋ค์๊ณผ ๊ฐ์ด ๋ณด์ฌ์ค๋๋ค.
์ฐ๋ฆฌ๊ฐ ์ค์นํ ํ์ด์ฌ ๋ฐํ์์ด 3.11.1๋ผ๋ฉด ๋ค์ ๋ช ๋ น์ ๋ด๋ฆฌ๋ฉด ํ์ด์ฌ์ ์๋์ผ๋ก ์ปดํ์ผํด์ ์ค์นํด์ค๋๋ค.
pyenv install 3.11.1
์ด์ ํ์ด์ฌ 3.11.1์ ์ค์น๊ฐ ๋ชจ๋ ์๋ฃ๋๊ธธ ๊ธฐ๋ค๋ฆฝ๋๋ค. ์ปดํ์ผ ์๊ฐ์ ์ปดํจํฐ์ ์ฑ๋ฅ์ ๋ฐ๋ผ ๋ฌ๋ผ์ง ๊ฒ์ด๋ฏ๋ก ๋๊ธํ๊ฒ ๋ฐ๋ปํ ์ฐจ๋ฅผ ๋ง์๋ ๊ฒ๋ ์ข์ต๋๋ค. ์ ํ์ด์ฌ ๋ฒ์ ์ ์ค์น๊ฐ ์๋ฃ๋๋ฉด pyenv
์ ์ค์น๋ ๋ชจ๋ ํ์ด์ฌ ๋ฐํ์์ ํ์ธํด๋ณด๊ฒ ์ต๋๋ค.
pyenv versions
#
# system (set by /home/user/.pyenv/version)
# 3.11.1
์ ๊ฒฐ๊ณผ์ ์ ์ฌํ ๋ด์ฉ์ด ํ๋ฉด์ด ๋์จ๋ค๋ฉด ํ์ด์ฌ ์ค์น๊ฐ ์๋ฃ๋ ๊ฒ์ ๋๋ค.
์ฌ์ฉํ ํ์ด์ฌ ์ ํํ๊ธฐ
pyenv๋ก ํ์ด์ฌ ๋ฐํ์์ ์ค์นํ์ผ๋ฉด ์ด์ ์๋ก ์ค์น๋ ํ์ด์ฌ ๋ฐํ์์ ์ฌ์ฉํด ๋ณผ ์ฐจ๋ก์ ๋๋ค. ์์ง์ 1๊ฐ์ ํ์ด์ฌ ๋ฐํ์๋ง ์๋ก ์ค์นํ์ง๋ง ์ฌ๋ฌ ์ด์ ์ ์ํด์ ํ์ด์ฌ ๋ฐํ์์ ์ฌ๋ฌ ๊ฐ๊ฐ ์ค์น๋ ์ ์์ต๋๋ค.
์ด๋ ๊ฒ ์ค์น๋ ํ์ด์ฌ๋ค์ ์ฌ์ฉํ๋ ค๋ฉด ๋ค์ ๋ช ๋ น์ ์ฌ์ฉํฉ๋๋ค. ๋ค์ ๋ช ๋ น์ ํ์ด์ฌ 3.11.1์ ์ฌ์ฉํ๋ค๊ณ ๊ฐ์ ํฉ๋๋ค.
pyenv shell 3.11.1
์ด๋ ๊ฒ ํ๋ฉด ํ์ฌ ์คํ ์ค์ธ ์
ธ์์๋ python
๋ช
๋ น์ ์คํํ์ ๋ 3.11.1 ๋ฒ์ ์ด ์คํ๋ฉ๋๋ค. ๋ง์ฝ ๋ค๋ฅธ ์
ธ์ ์ด๊ณ ๋๊ฐ์ด python
๋ช
๋ น์ ์คํํ๋ฉด ์ด์์ฒด์ ์ ์ค์น๋ ๊ธฐ๋ณธ ํ์ด์ฌ ๋ฒ์ ์ด ์คํ๋๋ ๊ฒ์ ๋ณผ ์ ์์ต๋๋ค.
pyenv
shell ๋ช
๋ น์ ํตํด ์ ํ๋ ํ์ด์ฌ์ ์ค๋ก์ง ํ์ฌ ์คํ ์ค์ธ ์
ธ์๋ง ์ ์ฉ๋๋ค๋ ๊ฒ์ ๊ธฐ์ตํ์ธ์. ํน์ ํ์ด์ฌ ๋ฒ์ ์ ์ฌ์ฉํ๋ค๊ฐ ์ด์์ฒด์ ์ ์ค์น๋ ๊ธฐ๋ณธ ํ์ด์ฌ ๋ฒ์ ์ ์ฌ์ฉํ๊ฒ ๋ค๋ฉด ๋ค์ ๋ช
๋ น์ ์
๋ ฅํ๋ฉด ๋ฉ๋๋ค.
pyenv shell system
์ฝ์ ์คํฌ๋ฆฝํธ๋ฅผ ์ง์ํ๋ ํ์ด์ฌ ํจํค์ง๋ฅผ ์ค์นํ์ ๋๋ ์ด๋ป๊ฒ ํ๋์?
ํ์ด์ฌ ํจํค์ง ์ค์๋ Flask๋ Django์ฒ๋ผ ๋ณ๋์ ์ฝ์ ์คํฌ๋ฆฝํธ๊ฐ ์ง์๋๋ ํจํค์ง๊ฐ ์์ต๋๋ค. Flask๋ผ๋ฉด flask, Django๋ผ๋ฉด django-admin๊ณผ ๊ฐ์ด ์ ธ์์ ๋ฐ๋ก ์คํํ ์ ์๋ ๋ช ๋ น์ ๋๋ค.
pyenv
๋ฅผ ์ฌ์ฉ ์ค ์ผ ๋๋ Flask๋ฅผ ์ค์นํ๋๋ผ๋ ์ฝ์ ์คํฌ๋ฆฝํธ๋ฅผ ๋ฐ๋ก ์คํํ ์ ์์ต๋๋ค. ์ด๋ฐ ์ผ์ด ๋ฒ์ด๋๋ ์ด์ ๋ pyenv
๊ฐ ์ค์น๋ ํ์ด์ฌ ๋ฒ์ ์ ๊ด๋ฆฌํ๋ ๋ฉ์ปค๋์ฆ ๋๋ฌธ์ ๋ฐ์ํ๋ ๊ฒ์ผ๋ก ๋ค์ ๋ช
๋ น์ ํ ๋ฒ ์คํํ๋ฉด ์ฝ์ ์คํฌ๋ฆฝํธ๋ฅผ ์ถ๊ฐํ ์ ์์ต๋๋ค.
pyenv rehash
์ฝ์ ์คํฌ๋ฆฝํธ๊ฐ ์ค์น๋๋ ํ์ด์ฌ ํจํค์ง๋ผ๋ฉด ๋ฐ๋์ ์ค์น ์ดํ ์์ ๋ช ๋ น์ ์คํํ์ ์ผ ํฉ๋๋ค.
pyenv
๋ฅผ ์ฌ์ฉํด ํ์ด์ฌ ๊ฐ์ ํ๊ฒฝ ๋ง๋ค๊ธฐ
pyenv
๋ ํ์ด์ฌ ๋ฐํ์์ ์ค์นํด์ฃผ๋ ์ผ ์ธ์๋ ํ์ด์ฌ ๊ฐ์ ํ๊ฒฝ์ ์ฝ๊ฒ ๋ง๋ค ์ ์๋๋ก ๋์์ค๋๋ค. ๋จผ์ , ๊ฐ์ ํ๊ฒฝ์ด ๋ฒ ์ด์ค๋ก ์ผ์ ํ์ด์ฌ ๋ฒ์ ์ผ๋ก ๋ณ๊ฒฝํฉ๋๋ค. 3.11.1 ๊ธฐ๋ฐ์ ํ์ด์ฌ ๊ฐ์ ํ๊ฒฝ์ ์์ฑํ๋ค๋ฉด pyenv shell 3.11.1
๋ก ์ฐ์ ๋ณ๊ฒฝํฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ ๋ค์ ๋ช ๋ น์ ๋ด๋ ค์ ํ์ด์ฌ ๊ฐ์ ํ๊ฒฝ์ ์์ฑํฉ๋๋ค.
pyenv virtualenv <๊ฐ์ํ๊ฒฝ์ด๋ฆ>
์์ ๋ช
๋ น์์ <๊ฐ์ํ๊ฒฝ์ด๋ฆ>
์ ์ฌ๋ฌ๋ถ์ด ์์ฑํ ๊ฐ์ ํ๊ฒฝ์ ์ด๋ฆ์ ์ง์ ํด์ฃผ๋ฉด ๋ฉ๋๋ค. ๊ฐ์ ํ๊ฒฝ ์ด๋ฆ์ ์ด์์ฒด์ ๋ด์์ ๋๋ ํฐ๋ฆฌ๋ก ์์ฑํ๊ธฐ ๋๋ฌธ์ ๋ฐ๋์ ๋ค์์ ๊ท์น์ ๋ฐ๋ผ ์ฃผ์
์ผ ํฉ๋๋ค.
- ์์ด์ ์ซ์ ๊ทธ๋ฆฌ๊ณ ํ์ดํ๊ณผ ์ธ๋์ค์ฝ์ด๋ฅผ ํฌํจํ ์ ์์ต๋๋ค.
- ์์ด๋ก๋ง ์์ํ ์ ์์ต๋๋ค.
- ๋์๋ฌธ์๋ฅผ ๊ตฌ๋ณํฉ๋๋ค.
- ํ๊ธ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
์ด๋ ๊ฒ ๋ง๋ ๊ฐ์ ํ๊ฒฝ์ pyenv shell
๋ช
๋ น์ผ๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค. ์์ฑํ ํ์ด์ฌ ๊ฐ์ ํ๊ฒฝ ์ด๋ฆ์ด search5
๋ผ๋ฉด ๋ค์๊ณผ ๊ฐ์ด ํ๋ฉด ๋ฉ๋๋ค.
pyenv shell search5
ํ์ด์ฌ ์ค์น๋ฅผ ๊ณ ๊ธํํ๊ธฐ
ํ์ด์ฌ์ ๊ธฐ๋ณธ ๋ชจ๋๋ก ์ปดํ์ผ ํ ๊ฒฝ์ฐ ์ ์ ๋ชจ๋๋ก ์ปดํ์ผ๋๋๋ฐ ํ์ด์ฌ ํจํค์ง์ ๋ฐ๋ผ ๋์ ๋ชจ๋๋ก ์ปดํ์ผ๋ ํ์ด์ฌ์์๋ง ์ค์น๋๋ ๊ฒฝ์ฐ๊ฐ ์์ต๋๋ค. ์ด๋ฅผ ์ํด pyenv install
๋ฅผ ์ฌ์ฉํ๊ธฐ ์ ์ ๋ค์๊ณผ ๊ฐ์ด ํ๊ฒฝ ๋ณ์๋ฅผ ํ๋ ์์ฑํด์ฃผ๊ฑฐ๋ ๋ช
๋ น ์คํ ์ ์ธ๋ผ์ธ์ผ๋ก ์ ๊ณตํฉ๋๋ค. ๋จ, CPython์ ์ฌ์ฉํ ๋๋ง ์ฌ์ฉํด์ผ ํฉ๋๋ค.
๋ฐฉ๋ฒ 1
export PYTHON_CONFIGURE_OPTS="--enable-shared"
pyenv install 3.11.1
๋ฐฉ๋ฒ 2
PYTHON_CONFIGURE_OPTS="--enable-shared" pyenv install 3.11.1
์ด๋ค ๋ฐฉ๋ฒ์ ์ฌ์ฉํด๋ ์๊ด์์ผ๋๊น ์ฌ๋ฌ๋ถ ์ทจํฅ๋๋ก ์ฐ์๋ฉด ๋ฉ๋๋ค.
ํ์ด์ฌ ์ปดํ์ผ์ ๋ ์ํ๊ณ ์ถ์ ์ฌ๋ฌ๋ถ์ ์ํด!!
ํ์ด์ฌ์ ์ด์์ฒด์ ์ ์ค์น๋ ์ฌ๋ฌ ์์คํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์๋์ผ๋ก ์ธ์ํด์ ์ปดํ์ผํ๋๋ฐ ์ด๋ ๋ค ๋ณด๋ ํ์ด์ฌ ์ค์น ํ ํน์ ๋ชจ๋์ด ์๋ค๊ฑฐ๋ ๋ํ์ ์ ธ์ ์ฌ์ฉํ๋๋ฐ ๋ญ๊ฐ ๋์์ด ์์ฝ๋ค๊ฑฐ๋ ํ๋ค๋ฉด ์ด๋ค์ ํ์ด์ฌ์ ์ฌ์ค์นํด์ผ๋ง ์ฌ์ฉํ ์ ์์ต๋๋ค. ๋ฐ๋น์ ๊ณ์ด์ ๋ฐฐํฌ๋ณธ์ธ ๋ฐ๋น์, ์ฐ๋ถํฌ๋ฅผ ์ฌ์ฉํ๋ค๋ฉด ๋ค์์ ๋ช ๋ น์ ๋ด๋ฆฌ๋ฉด ์ ๋ง ์ด์ฌ์ ํ์ด์ฌ ์ปดํ์ผ ํ๊ฒฝ์ ๋ง๋ค ์ ์์ต๋๋ค.
sudo apt install libbz2-dev libncurses-dev libreadline-dev \
libsqlite3-dev liblzma-dev tk-dev
๋ง์น๋ฉฐ
์ด ๊ธ์์ ์ค๋ช
ํ ๊ฒ ์ธ์๋ pyenv
์๋ ๋ ๋ง์ ๊ธฐ๋ฅ์ด ์์ผ๋ฉฐ ์์ง ๋ค๋ฃจ์ง ์์ ์ฃผ์ ๊ฐ ์์ต๋๋ค. ์ฌ๋ฌ๋ถ์ด ์ด ๊ธ์ ๋ง์ด ์ข์ํด์ฃผ์๊ณ pyenv
ํ์์ ์์ฒญ์ฃผ์๋ฉด pyenv
์ ๊ด๋ จ๋ ์๊ธฐ๋ฅผ ๋ ๋ง์ด ํด๋๋ฆด๊ฒ์.
๊ฐ์ฌํฉ๋๋ค.