๐Ÿ“ OS/Mac

[Python] venv ๋ฒ„์ „ ๊ด€๋ฆฌ, Mac (2)

SOIT 2024. 5. 22. 22:19

์ด์ „ ๋ฐœํ–‰๊ธ€์—์„œ ์—…๋ฐ์ดํŠธํ•œ ๋ฒ„์ „

 

1. ์•„๋ž˜ ์‚ฌ์ดํŠธ๋ฅผ ์ฐธ๊ณ ํ•˜์—ฌ ์ง„ํ–‰

์ œ์ผ ๋จผ์ € ์ฐธ๊ณ ํ•œ ๊ณณ !!

https://www.daleseo.com/python-pyenv/

 

์—ฌ๋Ÿฌ ๋ฒ„์ „์˜ ํŒŒ์ด์ฌ ๊ด€๋ฆฌํ•˜๊ธฐ (pyenv)

Engineering Blog by Dale Seo

www.daleseo.com

 

 

์„ค์น˜

1) 3.9.6

++

 

 

 


2. Mac์œผ๋กœ ์ง„ํ–‰

 

1) python 3/pip3 -> python/pip ๋กœ ๋ณ„์นญ

bash๋ž‘ zsh ๋‘˜๋‹ค ํ•จ

 

์—ฌ๊ธฐ์„œ

which python3

> /usr/bin/python3

which pip3

> /usr/bin/pip3

 

์œ„ ๊ฒฝ๋กœ๋กœ ์ž…๋ ฅํ•ด์ค˜์•ผ ํ•จ

$ echo "alias python=/usr/bin/python3" >> ~/.zshrc
$ echo "alias pip=/usr/bin/pip3" >> ~/.zshrc
$ echo "alias python=/usr/bin/python3" >> ~/.zshrc
$ echo "alias pip=/usr/bin/pip3" >> ~/.zshrc

 

exec "$SHELL"

 

 

 

2) Python ์—ฌ๋Ÿฌ ๋ฒ„์ „ ์„ค์น˜

 

.bash_profile ํ˜น์€ .zshrc ํŒŒ์ผ์— ์ถ”๊ฐ€

 

$ brew install pyenv

 

echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n  eval "$(pyenv init -)"\nfi' >> ~/.bash_profile

 

exec "$SHELL"

 

pyenv install 3.8.1

pyenv install 3.9.6

pyenv install 3.11.6

๋ฒ„์ „ ์„ค์น˜ํ•จ

 

์›ํ•˜๋Š” ๋ฒ„์ „ ์„ค์น˜๋Š” ์•„๋ž˜๋กœ ํ™•์ธ

pyenv install -l

 

 

๋ฌธ์ œ:

3.8.1 ๋ฒ„์ „์€ ์—๋Ÿฌ๊ฐ€ ๋‚จ

BUILD FAILED (OS X 14.4.1 using python-build 20180424) Inspect or clean up the working tree at /var/folders/11/6gsrncyj6mg5jtv1cxpqsc8m0000gn/T/python-build.20240522182652.16178 Results logged to /var/folders/11/6gsrncyj6mg5jtv1cxpqsc8m0000gn/T/python-build.20240522182652.16178.log Last 10 log lines: checking size of _Bool... 1 checking size of off_t... 8 checking whether to enable large file support... no checking size of time_t... 8 checking for pthread_t... yes checking size of pthread_t... 8 checking size of pthread_key_t... 8 checking whether pthread_key_t is compatible with int... no configure: error: Unexpected output of 'arch' on OSX make: *** No targets specified and no makefile found. Stop.

 

๊ทผ๋ฐ, 3.8 ๋ฒ„์ „์€ ์„ค์น˜ํ•˜๊ณ  ์‹ถ์Œ

๊ทธ๋Ÿฌ๋ฉด?!

 

pyenv install --list | grep  " 3\.8"

 

์„ค์น˜ ๊ฐ€๋Šฅํ•œ ๋ฒ„์ „ ํ™•์ธ

 

pyenv install 3.8.17 ๋กœ ์ง„ํ–‰

 

์™„๋ฃŒ !

๋”๋ณด๊ธฐ

 

 

 

3) Python ๋ฒ„์ „ ๋ณ€๊ฒฝ

๋ฌธ์ œ:

- python3๋ฅผ python์œผ๋กœ ๊ฐ€๋ฆฌํ‚ค๋„๋ก(๋ณ„์นญ) ํ™˜๊ฒฝ์„ค์ • ํ•จ

- ์ „์—ญ์„ 3.8.17๋ฒ„์ „์œผ๋กœ ํ–ˆ์„ ๋•Œ, python -V ์ด ๋ฐ”๋€Œ์ง€ ์•Š๊ณ  python3 -V ์ด ๋ฐ”๋€ ํ˜„์ƒ

 

ํ•ด๊ฒฐ:

- ํ™˜๊ฒฝ์„ค์ •์„ ๋‹ค์‹œ ํ•ด์คŒ

- ๊ฐ€๋ฆฌํ‚ค๋Š” ๊ฑฐ python์œผ๋กœ ๋‹ค์‹œํ•˜๊ฒŒ๋”

 

.bash_profile ํ˜น์€ .zshrc ํŒŒ์ผ์— ์ถ”๊ฐ€

# pip3 > pip, pytohn3 > python
alias python=/usr/bin/python3
alias pip=/usr/bin/pip3
if command -v pyenv 1>/dev/null 2>&1; then
  eval "$(pyenv init -)"
fi

# pyenv ํ™˜๊ฒฝ์„ค์ •
alias python='pyenv exec python'
alias pip='pyenv exec pip'
export PATH="/opt/homebrew/bin:$PATH"
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init --path)"
eval "$(pyenv init -)"

 

 

 

4) Python ๋ฒ„์ „ ๋ณ€๊ฒฝ ํ™•์ธ

- ๋ฒ„์ „ 3.9.6์„ global๋กœ ์ง€์ •: ๋ฒ„์ „์ด 3.9.6 ์ž„์„ ํ™•์ธ

- local_test ํด๋”์—์„œ๋Š” local๋กœ ๋ฒ„์ „ 3.8.17๋กœ ์ง€์ •: ํ•ด๋‹น ํด๋”์—์„œ ๋ฒ„์ „์ด 3.8.17 ์ž„์„ ํ™•์ธ

 

 

 

5) pyenv ๊ฐ€์ƒํ™˜๊ฒฝ ์ƒ์„ฑ

๋‹ค์Œ ์‹œ๊ฐ„์—๋Š” ๊ฐ€์ƒํ™˜๊ฒฝ ์ƒ์„ฑ์„ ํ•  ๊ฒƒ์ด๋‹ค. ๊ทธ๋ž˜์„œ pyenv-virtualenv ๋ฅผ ์„ค์น˜ํ•ด์•ผ ํ•œ๋‹ค.

- brew install pyenv-virtualenv

 

๊ทธ ๋‹ค์Œ ํ™˜๊ฒฝ ์„ค์ •

.bash_profile ํ˜น์€ .zshrc ํŒŒ์ผ์— ์ถ”๊ฐ€

eval "$(pyenv virtualenv-init -)"

 

๊ทธ๋Ÿฌ๋ฉด, ๋‹ค์Œ ์‹œ๊ฐ„์— ํ•  ๊ฑด๋ฐ

- pyenv activate test

 

๊ฐ€์ƒํ™˜๊ฒฝ ํ™œ์„ฑํ™”ํ•˜๋ฉด, ์ž˜ ๋œ๋‹ค!

 

 

์™„๋ฃŒ!!!

728x90