<p>pipenv๋Š” ํ˜„์žฌ ํ™œ์„ฑํ™”๋œ virtualenv๋ฅผ ์กด์ค‘ํ•˜์ง€ ์•Š๊ณ  ์ƒˆ ํ™˜๊ฒฝ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.</p>

์— ๋งŒ๋“  2017๋…„ 11์›” 02์ผ  ยท  3์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: pypa/pipenv

์ด๊ฒƒ์ด ์˜ˆ์ƒ๋œ ๋™์ž‘์ธ์ง€ ํ™•์‹คํ•˜์ง€ ์•Š์ง€๋งŒ ์‚ฌ์šฉ ๊ด€์ ์—์„œ ์ด๊ฒƒ์€ ๋ฒ„๊ทธ๋กœ ๋ณด์ž…๋‹ˆ๋‹ค.

๋ฌธ์ œ:

pipenv install <package_name> ๋Š” pipenv shell ์‚ฌ์šฉํ•˜์—ฌ virtualenv๋ฅผ ํ™œ์„ฑํ™”ํ–ˆ๋Š”๋ฐ๋„ ์ƒˆ virtualenv๋ฅผ ๋งŒ๋“ค๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์–ธ์ œ ๋ฐœ์ƒํ•ฉ๋‹ˆ๊นŒ?

Pipfile ๊ฐ€ ์žˆ๋Š” ๋™์ผํ•œ ๋””๋ ‰ํ† ๋ฆฌ์— ์žˆ์ง€ ์•Š์€ ๊ฒฝ์šฐ.

ํ™˜๊ฒฝ ์„ค๋ช…

  1. OS ์œ ํ˜•: Linux(Ubuntu 16.04)
  2. ํŒŒ์ด์ฌ ๋ฒ„์ „: $ python -V == 3.6.3
  3. Pipenv ๋ฒ„์ „: $ pipenv --version == ๋ฒ„์ „ 8.3.1

์˜ˆ์ƒ ๊ฒฐ๊ณผ

ํ™œ์„ฑํ™”๋œ virtualenv ์…ธ์— ์žˆ๋Š” ๊ฒฝ์šฐ( pwd ๊ด€๊ณ„์—†์ด) pipenv install ๋Š” ์ด๋ฅผ ์กด์ค‘ํ•˜๊ณ  Pipfile ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์—…๋ฐ์ดํŠธํ•ด์•ผ ํ•˜๋ฉฐ ์ƒˆ Pipfile ์ƒ์„ฑํ•ด์„œ๋Š” ์•ˆ ๋ฉ๋‹ˆ๋‹ค

์‹ค์ œ ๊ฒฐ๊ณผ

๋™์ผํ•œ ํ™œ์„ฑํ™”๋œ virtualenv์— ์žˆ์ง€๋งŒ ๋‹ค๋ฅธ ๋””๋ ‰ํ† ๋ฆฌ์— ์žˆ๋”๋ผ๋„ ์ƒˆ Pipfile์ด ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.

๋ณต์ œ ๋‹จ๊ณ„

$ mkdir -p testproject/app
$ cd  testproject/app
$ pipenv install flask
$ pipenv shell # environment gets activated here
$ <my_new_environment>$  cd ..  # Now we are inside testproject
$ pipenv install requests
$ New Pipfile gets created here

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

@erinxocon ๊ทธ๋ฆฌ๊ณ  ์—ฌ๊ธฐ์— ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๋Š” pipenv๊ฐ€ pip๋ฅผ ๋Œ€์ฒดํ•  ๊ฒƒ์œผ๋กœ ๊ธฐ๋Œ€ํ•ฉ๋‹ˆ๋‹ค.

@kennethreitz ๋Š” pipenv ํ™ˆํŽ˜์ด์ง€์—์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋งํ–ˆ์Šต๋‹ˆ๋‹ค.

๋” ์ด์ƒ pip์™€ virtualenv๋ฅผ ๋ณ„๋„๋กœ ์‚ฌ์šฉํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ๊ทธ๋“ค์€ ํ•จ๊ป˜ ์ผํ•ฉ๋‹ˆ๋‹ค.

pipenv๋Š” ๋ง์”€ํ•˜์‹  ๋Œ€๋กœ virtualenv๋ฅผ ์ƒ์„ฑํ•  ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๊ด€๋ฆฌ ๋„

ํ”„๋กœ์ ํŠธ์— ๋Œ€ํ•œ virtualenv๋ฅผ ์ž๋™์œผ๋กœ ์ƒ์„ฑ ๋ฐ ๊ด€๋ฆฌ ํ•˜๊ณ  ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜/์ œ๊ฑฐํ•  ๋•Œ Pipfile์—์„œ ํŒจํ‚ค์ง€๋ฅผ ์ถ”๊ฐ€/์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ์ „์— virtualenv์™€ pip๋ฅผ ๋ณ„๋„๋กœ ์‚ฌ์šฉํ–ˆ์„ ๋•Œ ๋ชจ๋“  ๋””๋ ‰ํ† ๋ฆฌ์™€ pip install ์ด๋™ํ•  ์ˆ˜ ์žˆ์—ˆ๊ณ  ํŒจํ‚ค์ง€๋Š” virtualenv์— ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์„ค์น˜๋˜์—ˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. -๊ด€๋ฆฌ๋˜๋Š” virtualenv๊ฐ€ ํ™œ์„ฑํ™”๋จ_ ์‚ฌ์šฉ์ž์˜ ๊ธฐ๋Œ€์น˜๋ฅผ ๊นจ๋œจ๋ฆฝ๋‹ˆ๋‹ค.

๋ชจ๋“  3 ๋Œ“๊ธ€

์•ˆ๋…•ํ•˜์„ธ์š” @ansrivas์ž…๋‹ˆ๋‹ค! ์ด๊ฒƒ์€ pipenv์˜ ์˜๋„๋œ ํ๋ฆ„์ด ์•„๋‹™๋‹ˆ๋‹ค. Pipenv๋Š” ์ฒ˜์Œ์—๋Š” ๊ฐ€์ƒ ํ™˜๊ฒฝ์„ ์ฐพ์•˜์ง€๋งŒ ๋ชจ๋“  ํ›„์† ํ˜ธ์ถœ์—์„œ๋Š” ๊ทธ๋ ‡์ง€ ์•Š์€ ๊ฒฝ์šฐ ๊ฐ€์ƒ ํ™˜๊ฒฝ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋‹น์‹ ์€ virtualenvs์˜ ๋‹ค์†Œ ํ„ธ์ด ๋งŽ์€ ๋‘ฅ์ง€๋ฅผ ๊ฐ€์งˆ ๊ฒƒ์ž…๋‹ˆ๋‹ค! ํ”„๋กœ์ ํŠธ ์™ธ๋ถ€์— ์žˆ๋Š” ํด๋”๋กœ ์ด๋™ํ•˜๋ฉด pipenv๋Š” ์ƒˆ pipfile์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ํด๋” ์™ธ๋ถ€์— ์ผ๋ถ€ ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•˜๊ณ  ์‹ถ์ง€๋งŒ ์„œ๋ธŒ ์‰˜์—์„œ ํ™œ์„ฑํ™”ํ•œ ๊ฐ€์ƒ ํ™˜๊ฒฝ ๋‚ด๋ถ€์—์„œ๋Š” pipenv shell ๋‹ค์Œ pip install requests ์žˆ์Šต๋‹ˆ๋‹ค. Pipenv๋Š” ํ”„๋กœ์ ํŠธ์˜ virtualenv๋ฅผ ๋งŒ๋“œ๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ๊ทธ ์ž์ฒด๋Š” virtualenv ๊ด€๋ฆฌ์ž๊ฐ€ ์•„๋‹ˆ๋ผ ํ”„๋กœ์ ํŠธ ๊ด€๋ฆฌ์ž์ž…๋‹ˆ๋‹ค.

@erinxocon ๊ทธ๋ฆฌ๊ณ  ์—ฌ๊ธฐ์— ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๋Š” pipenv๊ฐ€ pip๋ฅผ ๋Œ€์ฒดํ•  ๊ฒƒ์œผ๋กœ ๊ธฐ๋Œ€ํ•ฉ๋‹ˆ๋‹ค.

@kennethreitz ๋Š” pipenv ํ™ˆํŽ˜์ด์ง€์—์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋งํ–ˆ์Šต๋‹ˆ๋‹ค.

๋” ์ด์ƒ pip์™€ virtualenv๋ฅผ ๋ณ„๋„๋กœ ์‚ฌ์šฉํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ๊ทธ๋“ค์€ ํ•จ๊ป˜ ์ผํ•ฉ๋‹ˆ๋‹ค.

pipenv๋Š” ๋ง์”€ํ•˜์‹  ๋Œ€๋กœ virtualenv๋ฅผ ์ƒ์„ฑํ•  ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๊ด€๋ฆฌ ๋„

ํ”„๋กœ์ ํŠธ์— ๋Œ€ํ•œ virtualenv๋ฅผ ์ž๋™์œผ๋กœ ์ƒ์„ฑ ๋ฐ ๊ด€๋ฆฌ ํ•˜๊ณ  ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜/์ œ๊ฑฐํ•  ๋•Œ Pipfile์—์„œ ํŒจํ‚ค์ง€๋ฅผ ์ถ”๊ฐ€/์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ์ „์— virtualenv์™€ pip๋ฅผ ๋ณ„๋„๋กœ ์‚ฌ์šฉํ–ˆ์„ ๋•Œ ๋ชจ๋“  ๋””๋ ‰ํ† ๋ฆฌ์™€ pip install ์ด๋™ํ•  ์ˆ˜ ์žˆ์—ˆ๊ณ  ํŒจํ‚ค์ง€๋Š” virtualenv์— ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์„ค์น˜๋˜์—ˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. -๊ด€๋ฆฌ๋˜๋Š” virtualenv๊ฐ€ ํ™œ์„ฑํ™”๋จ_ ์‚ฌ์šฉ์ž์˜ ๊ธฐ๋Œ€์น˜๋ฅผ ๊นจ๋œจ๋ฆฝ๋‹ˆ๋‹ค.

๋‚˜๋Š” ์ด๊ฒƒ ์— ๋Œ€ํ•ด

pipenv ๋Š” ํ™œ์„ฑ virtualenv๋ฅผ ๊ด€๋ฆฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋น„์Šทํ•œ ๋ผ์ธ์„ ๋”ฐ๋ผ ... -r ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ˜„์žฌ virtualenv์— ์™ธ๋ถ€ Pipfile ๋˜๋Š” Pipenv.lock์„ ์„ค์น˜ํ•˜๊ณ  ๋‹ค๋ฅธ ๊ฒƒ์„ ๋งŒ๋“ค ์ˆ˜๋Š” ์—†์Šต๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰