Codong's Development Diary RSS ํƒœ๊ทธ ๊ด€๋ฆฌ ๊ธ€์“ฐ๊ธฐ ๋ฐฉ๋ช…๋ก
2021-02-15 17:42:11

1. ๐Ÿงpython ๊ฐ€์ƒํ™˜๊ฒฝ์ด๋ž€?


ํ•œ PC local ํ™˜๊ฒฝ์—์„œ ํ•˜๋‚˜์˜ ํ”„๋กœ์ ํŠธ๋งŒ ์ง„ํ–‰ํ•œ๋‹ค๋ฉด ์•„๋ฌด๋Ÿฐ ๋ฌธ์ œ๊ฐ€ ์—†๋‹ค. ํ•˜์ง€๋งŒ ์—ฌ๋Ÿฌ๊ฐœ์˜ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๊ฒŒ ๋˜๊ฑฐ๋‚˜ ํ˜‘์—…์‹œ ๊ฐ์ž์˜ ๋ฒ„์ „๋Œ€๋กœ ์ง„ํ–‰ํ•  ๊ฒฝ์šฐ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค. ํ”„๋กœ์ ํŠธ๋งˆ๋‹ค ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋“ค์˜ ๋ฒ„์ „์ด ๋‹ค๋ฅผ ์ˆ˜ ์žˆ๊ณ , ๊ฐ ๋ชจ๋“ˆ์— ๋Œ€ํ•œ ์˜์กด์„ฑ์ด ๋‹ค๋ฅด๊ธฐ์— ๋ง‰ ์„ค์น˜ํ•˜๋‹ค๋ณด๋ฉด ์ถฉ๋Œ์ด ๋‚  ์ˆ˜๋„ ์žˆ๋‹ค. ๊ทธ๋ ‡๋‹ค๊ณ  ๋‹ค๋ฅธ ๋ฒ„์ „์˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ผ์ผํžˆ ์ง€์› ๋‹ค๊ฐ€ ์„ค์น˜ ํ•  ์ˆ˜ ์—†๊ธฐ์— ์ด๋ฅผ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•œ ๋…๋ฆฝ์ ์ธ ๊ฐ€์ƒํ™˜๊ฒฝ์„ ์ œ๊ณตํ•œ๋‹ค.

 

2. ๐Ÿ“ƒpython ๊ฐ€์ƒํ™˜๊ฒฝ์˜ ์ข…๋ฅ˜ ๋ฐ ๊ฐ„๋‹จํ•œ ์‚ฌ์šฉ๋ฒ•


2.1 venv

ํŒŒ์ด์ฌ3 ์—์„œ๋Š” pip install์„ ํ†ตํ•ด ์„ค์น˜ํ•  ํ•„์š”๋„ ์—†๋Š” venv ๋ผ๋Š” ๊ฐ€์ƒํ™˜๊ฒฝ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ œ๊ณต๋œ๋‹ค.

  1. ์ƒ์„ฑ : ์›ํ•˜๋Š”(ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ• ) ํด๋”์—์„œ ์•„๋ž˜์™€ ๊ฐ™์€ ๋ช…๋ น์–ด๋ฅผ ์ž‘์„ฑํ•˜๋ฉด ๋.

    python -m venv ๊ฐ€์ƒํ™˜๊ฒฝ์ด๋ฆ„
    # ๋˜๋Š” python -m venv ๊ฐ€์ƒํ™˜๊ฒฝ์ด๋ฆ„ --system-site-packages
    # ๋’ค์— --system-site-packages์„ ๋ถ™์ด๋ฉด ๊ธฐ๋ณธ ํŒŒ์ด์ฌ ์‚ฌ์šฉ์‹œ ์„ค์น˜ํ–ˆ๋˜ ์ „์—ญ ํŒจํ‚ค์ง€๋“ค์„ ๊น”๊ณ  ์‹œ์ž‘.

    ๊ทธ๋Ÿฌ๋ฉด ๊ฐ€์ƒํ™˜๊ฒฝ์ด๋ฆ„๊ณผ ๊ฐ™์€ ํด๋”๊ฐ€ ํ•˜๋‚˜ ์ƒ๊ธฐ๋Š”๋ฐ, ์‹ค์ œ ์ž‘์—…์€ ๊ทธ ํด๋”์— ๋“ค์–ด๊ฐ€์ง€ ๋ง๊ณ , ์žˆ๋Š” ๊ณณ(ํ”„๋กœ์ ํŠธ ํด๋”)์—์„œ ํ•˜๋ฉด๋œ๋‹ค.

  2. ํ™œ์„ฑํ™” ๋ฐ ๋น„ํ™œ์„ฑํ™”

    # ์œˆ๋„์šฐ cmd
    > ๊ฐ€์ƒํ™˜๊ฒฝ์ด๋ฆ„\Scripts\activate.bat
    # bash
    $ source ๊ฐ€์ƒํ™˜๊ฒฝ์ด๋ฆ„/bin/activate

    ๋น„ํ™œ์„ฑํ™”๋Š” deactivate๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ๋œ๋‹ค.

  3. ๊ฐ€์ƒํ™˜๊ฒฝ ๋‚ด ํŒจํ‚ค์ง€ ์„ค์น˜ ๋ฐ ์‚ญ์ œ
    pip install๊ณผ pip uninstall์„ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค.

  4. ํŒจํ‚ค์ง€ ๋ชฉ๋ก ๊ด€๋ฆฌ
    pip freeze๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

  5. ์‚ญ์ œ : ๋งŒ๋“ค์—ˆ๋˜ ๊ฐ€์ƒํ™˜๊ฒฝ ํด๋”๋ฅผ ์ œ๊ฑฐํ•˜๋ฉด ๋.


2.2 virtualenv

๊ฑฐ์˜ venv์™€ ๋™์ผํ•˜๋‹ค.
pip install virtualenv ๋ช…๋ น์–ด๋กœ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋‹ค์šด ๋ฐ›๊ณ , virtualenv ๊ฐ€์ƒํ™˜๊ฒฝ๋ช…์œผ๋กœ ์ƒ์„ฑํ•œ๋‹ค.
+ ์ถ”๊ฐ€๋กœ --python=python3.7๊ณผ ๊ฐ™์ด ๋’ค์— ์˜ต์…˜์„ ๋ถ™์—ฌ์„œ ์›ํ•˜๋Š” ํŒŒ์ด์ฌ ๋ฒ„์ „์œผ๋กœ ์ƒ์„ฑ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

pip freeze > requirements.txt๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์„ค์น˜ํ•œ ํŒจํ‚ค์ง€๋“ค์„ ๋ช…์‹œํ•ด๋‘๋Š” ๊ฒƒ์ด ํŒ. ๋‹ค๋ฅธ ๊ฐœ๋ฐœํ™˜๊ฒฝ์—์„œ ๋ณ€๊ฒฝ๋œ ํŒจํ‚ค์ง€ ์˜์กด์„ฑ์„ ๋ฐ˜์˜ํ•  ๋•Œ์—๋Š” pip install -r requirements.txt์„ ์‚ฌ์šฉํ•œ๋‹ค.


2.3 pipenv

pipenv๋Š” ํ”„๋กœ์ ํŠธ ์˜์กด์„ฑ ๊ด€๋ฆฌ์— ํ•„์š”ํ•œ ์„ธ์„ธํ•œ ์„ค์ •์„ ๊ฐœ๋ฐœ์ž๊ฐ€ ์ผ์ผ์ด ์‹ ๊ฒฝ์“ธ ํ•„์š”๊ฐ€ ์—†๋‹ค๋Š” ๊ฒƒ์ด ํฐ ์žฅ์ ์ด๋‹ค. ์˜์กด์„ฑ์„ pipfile๋กœ ๊ด€๋ฆฌ๋ฅผ ํ•ด์ฃผ๋ฏ€๋กœ requirements.txt๋ฅผ ๋Œ€์‹ ํ•œ๋‹ค. ๊ทธ๋Ÿฐ ๊ธฐ๋Šฅ์—” ๋Œ€๊ฐ€๊ฐ€ ๋”ฐ๋ฅด๋Š” ๋ฒ•. ๊ฐ€์žฅ ํฐ ๋‹จ์ ์€ ์†๋„ ๋ฌธ์ œ์ด๋‹ค.

  • ์ž‘๋™๋ฒ•

    # ์„ค์น˜
    pip install pipenv
    # ์ƒ์„ฑ ๋ฐ ํ™œ์„ฑํ™” (์›ํ•˜๋Š” ํ”„๋กœ์ ํŠธ ํด๋”์—์„œ ์‹คํ–‰)
    pipenv shell
    # ๋น„ํ™œ์„ฑํ™”
    exit
    # ํŒจํ‚ค์ง€ ์„ค์น˜
    pipenv install (ํŒจํ‚ค์ง€๋ช…. ์ƒ๋žต์‹œ pipfile์— ์ ํ˜€์žˆ๋Š” ํŒจํ‚ค์ง€๋“ค์ด ํ•œ๋ฒˆ์— ์„ค์น˜๋จ)

โ€ป ์นด์นด์˜ค PyPI ๋ฏธ๋Ÿฌ ์„œ๋ฒ„๋กœ pip ์„ค์น˜ ์†๋„ ๋†’์ด๊ธฐ

+ pipenv ๊ด€๋ จ ์ •๋ฆฌ ์ž˜ํ•ด๋‘์‹ ๋ถ„ ๋งํฌ pipenv์†๋„ ์˜ฌ๋ฆฌ๊ธฐ
pip ๋ฌธ์„œ(pip๋ฌธ์„œ ๋ฐ”๋กœ๊ฐ€๊ธฐ)์˜ configuration ๋ถ€๋ถ„์—์„œ Global์— ์šด์˜์ฒด์ œ์— ๋งž๋Š” ๊ณณ์— pip.ini ํŒŒ์ผ์„ ๋งŒ๋“ค์–ด์„œ ์•„๋ž˜์˜ ๋‚ด์šฉ์„ ํŽธ์ง‘๊ธฐ๋ฅผ ์ด์šฉํ•ด ์ž‘์„ฑํ•ด์ฃผ๋ฉด ๋œ๋‹ค. ๋‚˜์˜ ๊ฒฝ์šฐ window 10 ์„ ์‚ฌ์šฉํ•˜๋Š”๋ฐ ๊ฒฝ๋กœ๋Š” C:\ProgramData\pip\pip.ini ์ด๊ณณ์—๋‹ค ์ž‘์„ฑํ–ˆ๋‹ค.

[global]
index-url=http://ftp.daumkakao.com/pypi/simple
trusted-host=ftp.daumkakao.com

์„ค์น˜์ค‘์— Looking in indexes: http://ftp.daumkakao.com/pypi/simple ์ด๋Ÿฐ ๋ถ€๋ถ„์ด ๋œฌ๋‹ค๋ฉด ์„ฑ๊ณต! ๊ทธ๋ž˜๋„ pipenv๋Š” ํŒจํ‚ค์ง€๋ฅผ ๋‹ค์šด ๋ฐ›์„ ๋•Œ locking ๋„ ํ•˜๋ฏ€๋กœ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆด ์ˆ˜ ๋ฐ–์— ์—†๋‹ค.


2.4 pyenv

์œ„์˜ ๊ฐ€์ƒํ™˜๊ฒฝ๋“ค์€ ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ๋ฅผ ํ•ด์ค˜์„œ ํŽธ๋ฆฌํ•˜์ง€๋งŒ, ํŒŒ์ด์ฌ ๋ฒ„์ „์„ ๋‹ค๋ฅด๊ฒŒ ๊ฐ€์ƒํ™˜๊ฒฝ์„ ์ƒ์„œํ•  ๋•Œ ์„ค์น˜๋˜์–ด์žˆ๋Š” ๋ฒ„์ „๋งŒ ๊ฐ€๋Šฅํ•˜๋‹ค. ํ•˜์ง€๋งŒ pyenv๋Š” ํŒŒ์ด์ฌ ์—ฌ๋Ÿฌ ๋ฒ„์ „์„ ์†์‰ฝ๊ฒŒ ๋ฐ”๊ฟ”๊ฐ€๋ฉด์„œ ์“ธ ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ฃผ๋Š” ๋„๊ตฌ์ด๋‹ค. ๊ทธ์•ผ๋ง๋กœ ์œ„์˜ ๊ฐ€์ƒํ™˜๊ฒฝ๋“ค๊ณผ์˜ ์ง๊ถ์ด๋ผ ๋ณด๋ฉด ๋˜๊ฒ ๋‹ค.

window

์ฐธ๊ณ  ๋งํฌ : https://github.com/pyenv-win/pyenv-win#pyenv-win-commands

mac

home brew๋กœ ๊ฐ„ํŽธํ•˜๊ฒŒ ์„ค์น˜.

brew install pyenv

 

๋งˆ๋ฌด๋ฆฌ


์œ„์˜ ๊ฐ€์ƒํ™˜๊ฒฝ ๋„๊ตฌ๋“ค ๋ง๊ณ  ๋˜ ๋‹ค๋ฅธ ๋‹ค์–‘ํ•œ ๋งŽ์ง€๋งŒ, ๊ฐ๊ฐ ์žฅ๋‹จ์ ์ด ์žˆ๋Š” ๊ฒƒ ๊ฐ™๋‹ค. ๋ณธ์ธ์ด ์ง„ํ–‰ํ•˜๋Š” ํ”„๋กœ์ ํŠธ๋‚˜ ์ƒํ™ฉ์— ๋งž์ถฐ ์‚ฌ์šฉ์„ ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์€ ๊ฒƒ ๊ฐ™๋‹ค. ์ดํ›„์—๋„ ๋” ์ข‹์€ ๊ฒƒ๋“ค์„ ์•Œ๊ฒŒ ๋˜๋ฉด ํฌ์ŠคํŒ… ํ•ด์•ผ์ง€ ์˜ค๋Š˜์€ 20000 ~~ ๐Ÿ‘‹

reference