Pip: "์—…๊ทธ๋ ˆ์ด๋“œ" ๋ฐ "์—…๊ทธ๋ ˆ์ด๋“œ ์ „์ฒด" ๋ช…๋ น ์ถ”๊ฐ€

์— ๋งŒ๋“  2011๋…„ 03์›” 15์ผ  ยท  251์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: pypa/pip

(2020๋…„ 4์›” ํ˜„์‹ค ๋ฐ˜์˜ํ•˜์—ฌ ์—…๋ฐ์ดํŠธ)

์ด ๋ฌธ์ œ๋Š” ์ฒ˜์Œ์— ํŒจํ‚ค์ง€๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œํ•  ๋•Œ ๋‹ค๋ฅธ ๋™์ž‘์œผ๋กœ ์ƒˆ๋กœ์šด upgrade ๋ช…๋ น์„ ์ถ”๊ฐ€ํ•˜์—ฌ pip install --upgrade ์˜ ๋™์ž‘์„ ๋ณ€๊ฒฝํ•˜๋Š” ๋ฒ”์œ„์— ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์˜ค๋ž˜๋œ ์žฌ๊ท€์  "์—ด๋ง" ๊ธฐ๋ณธ๊ฐ’์€ ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์—๊ฒŒ ์Šฌํ””์„ ์•ˆ๊ฒผ์Šต๋‹ˆ๋‹ค(#304). ๊ทธ๋Ÿฌ๋‚˜ ์ด์— ๋Œ€ํ•œ ๋งŽ์€ ๋…ผ์˜ ๋์— --upgrade-strategy ํ”Œ๋ž˜๊ทธ๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ํƒํ–ˆ์Šต๋‹ˆ๋‹ค. ํ”Œ๋ž˜๊ทธ๋Š” ์ดˆ๊ธฐ์— "์—ด์‹ฌํžˆ"์˜ ๊ธฐ๋ณธ๊ฐ’์„ ๊ฐ€์ง€๊ณ  ์žˆ์—ˆ๋Š”๋ฐ #4500์—์„œ ๋” ๋‚˜์€ ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ ๋ณ€๊ฒฝ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

"๋ชจ๋“  ํŒจํ‚ค์ง€ ์—…๊ทธ๋ ˆ์ด๋“œ" ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ์ถ”์  ๋ฌธ์ œ๋Š” #4551์ž…๋‹ˆ๋‹ค.

upgrade auto-locked enhancement

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

์•ž์œผ๋กœ 10๋…„ ์•ˆ์— ์ด๊ฒƒ์„ ๊ตฌํ˜„ํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?

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

"์—…๊ทธ๋ ˆ์ด๋“œ"๋Š” "์„ค์น˜ --์—…๊ทธ๋ ˆ์ด๋“œ"์˜ ๊ฐ„๋‹จํ•œ ๋ณ„์นญ์ž…๋‹ˆ๋‹ค. ์กฐ๊ธˆ ๋” ์ƒ๊ฐํ•ด๋ณผ ํ•„์š”๊ฐ€ ์žˆ๋‹ค
"์—…๊ทธ๋ ˆ์ด๋“œ ์ „์ฒด"์— ๋Œ€ํ•ด; ํ•œ ๊ฐ€์ง€๋Š” ํŒจํ‚ค์ง€๋งŒ ์—…๊ทธ๋ ˆ์ด๋“œํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค.
๋‚ด๋ถ€ sys.prefix? (์ฆ‰, virtualenv ์•ˆ์— ์žˆ๋Š” ๊ฒฝ์šฐ ์‹œ๋„ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
๊ธ€๋กœ๋ฒŒ ํŒจํ‚ค์ง€ ์—…๊ทธ๋ ˆ์ด๋“œ). ์ด์‚ฌ๋ฅผ ๊ฐ€์•ผ ํ•˜๋Š” ์ด์œ ๊ฐ€ ๋˜๊ฒ ์ฃ 
UninstallPathSet.can_uninstall()์„ ๋ณด๋‹ค ์ผ๋ฐ˜์ ์œผ๋กœ ๋ช…๋ช…๋œ ํ•จ์ˆ˜(๋˜๋Š”
InstallRequirement์˜ ๋ฐฉ๋ฒ•), ๊ทธ๋ž˜์„œ ์ผ๋ฐ˜์ ์ธ "์ด๊ฒƒ์„ ๋งŒ์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?"๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
๊ฒฐ์ •.


Original Comment By: Carl Meyer

๊ธฐ๋ก์„ ์œ„ํ•ด, ๋‚˜๋Š” ๊ทธ๊ฒƒ์ด ๋Šฅ๋ ฅ์„ ๊ฐ์•ˆํ•  ๋•Œ ์ข‹์€ ์ƒ๊ฐ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.
์—…๊ทธ๋ ˆ์ด๋“œํ•˜๊ธฐ ์ „์— ์ œ๊ฑฐํ•˜์‹ญ์‹œ์˜ค. --all ์˜ต์…˜์„ ์„ ํ˜ธํ•˜์ง€๋งŒ
upgrade upgrade-all ๋ช…๋ น ๋Œ€์‹  upgrade .

can_uninstall()์˜ ๊ฒฝ์šฐ ๋™์˜ํ•ฉ๋‹ˆ๋‹ค.
์–ด์จŒ๋“  ์ „ ์„ธ๊ณ„์ ์œผ๋กœ.


Original Comment By: Jannis Leidel

๋‚˜๋Š” install --upgrade์˜ ๋ณ„์นญ์œผ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋Š” ๊ฒƒ์„ ์ „์ ์œผ๋กœ ๋ฐ˜๋Œ€ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ
์•ฝ๊ฐ„ ์‚ฌ์†Œํ•œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

upgrade-all์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด "์—…๊ทธ๋ ˆ์ด๋“œ ๊ฐ€๋Šฅํ•œ" ํ•ญ๋ชฉ์„ ํŒŒ์•…ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์•„๋งˆ ํ•˜๋‚˜
์ „์ œ ์กฐ๊ฑด์€ ๊ทธ๊ฒƒ์ด ์‚ด๊ณ  ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค/lib/pythonX.Y/์‚ฌ์ดํŠธ ํŒจํ‚ค์ง€
(๋‹จ์ˆœํžˆ sys.prefix์—์„œ ์ถฉ๋ถ„ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค).

"zip import"์™€ ๊ฐ™์€ ๊ฒƒ์„ ํ—ˆ์šฉํ•˜๋Š” ๊ฒฝ์šฐ(๋ถ€๋ชจ๋กœ๋ถ€ํ„ฐ ํŒจํ‚ค์ง€๋ฅผ ๊ฐ€์ ธ์˜ค๊ธฐ ์œ„ํ•ด
ํ™˜๊ฒฝ์„ virtualenv ํ™˜๊ฒฝ์œผ๋กœ) ๊ทธ๋Ÿฐ ๋‹ค์Œ ์•„๋งˆ๋„ ๊ทธ ์•ˆ์— ํŒจํ‚ค์ง€
์ƒ์œ„ ํ™˜๊ฒฝ์„ ์—…๊ทธ๋ ˆ์ด๋“œํ•ด์„œ๋Š” ์•ˆ ๋˜์ง€๋งŒ ์ด๊ฒƒ์ด ๋ฌด์—‡์ธ์ง€ 100% ๋ช…ํ™•ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
์‚ฌ์šฉ์ž๋Š” ๊ธฐ๋Œ€ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

"pip uninstall"์„ ์‚ฌ์šฉํ•˜์—ฌ ํŽธ์ง‘ ๊ฐ€๋Šฅํ•œ ํŒจํ‚ค์ง€๋ฅผ ์ œ๊ฑฐํ•˜๋ ค๊ณ  ์‹œ๋„ํ–ˆ์ง€๋งŒ ๊ฝค
.egg-link๋ฅผ ์ œ๊ฑฐํ•˜๊ณ  easy-install.pth๋ฅผ ์—…๋ฐ์ดํŠธํ•˜๋„๋ก ํ•ฉ๋ฆฌ์ ์œผ๋กœ ์ œ์•ˆ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๊ทธ๊ฒƒ์€
ํŒจํ‚ค์ง€๋ฅผ ํ•ฉ๋ฆฌ์ ์œผ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•  ์ˆ˜ ์—†์—ˆ์œผ๋ฏ€๋กœ can_uninstall์€ ๋‹ค์†Œ
can_upgrade์™€ ๋‹ค๋ฆ…๋‹ˆ๋‹ค.


Original Comment By: Ian Bicking

์˜ˆ, can_uninstall๊ณผ can_upgrade๊ฐ€ ๋‹ค๋ฅด๋‹ค๋Š” ๊ฒƒ์ด ๋งž์Šต๋‹ˆ๋‹ค.

"pip import"๊ฐ€ ์žˆ์œผ๋ฉด ์—ฌ์ „ํžˆ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๊ณ  ์‹ถ์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.
๊ฐ€์ ธ์˜จ ๊ธ€๋กœ๋ฒŒ ํŒจํ‚ค์ง€; ๊ทธ๋Ÿฌ๋‚˜ (ํŽธ์ง‘ ๊ฐ€๋Šฅ ํ•ญ๋ชฉ๊ณผ ํ•จ๊ป˜) "๊ทธ๋ ‡์ง€ ์•Š์€
์ด" ๊ฒฝ๊ณ ๋ฅผ ์ฝ˜์†”์— ์—…๊ทธ๋ ˆ์ด๋“œํ•ฉ๋‹ˆ๋‹ค.


Original Comment By: Carl Meyer

์ด ๋ฒ„๊ทธ์— ๋Œ€ํ•ด +1


Original Comment By: smyrman

๋ฌธ์ œ #167 ์€ ์ด ๋ฌธ์ œ์˜ ์ค‘๋ณต์œผ๋กœ ํ‘œ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.


Original Comment By: Carl Meyer

1

(echo pip; pip freeze | awk 'BEGIN{FS="=="}{print $1}') | xargs sudo pip

์„ค์น˜ -U

์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ์„ค์น˜๋œ ๋ชจ๋“  ํŒจํ‚ค์ง€(pip ์ž์ฒด ํฌํ•จ)๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋งŒ์•ฝ์—
virtualenv์—์„œ ์‹คํ–‰ํ•˜๋ฉด sudo๋ฅผ ์‚ฌ์šฉํ•  ํ•„์š”๊ฐ€ ์—†์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋ฌผ๋ก  ์‹คํŒจ ์œ„ํ—˜์ด ๋†’์Šต๋‹ˆ๋‹ค. ํŒจํ‚ค์ง€ ์ค‘ ํ•˜๋‚˜๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋Š” ๊ฒฝ์šฐ
์‹คํŒจํ•˜๋ฉด ์ „์ฒด ํ”„๋กœ์„ธ์Šค๊ฐ€ ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค( port upgrade outdated ์™€ ์œ ์‚ฌํ•ฉ๋‹ˆ๋‹ค.
๋งฅํฌํŠธ).


Original Comment By: Tomasz Elendt

์—…๊ทธ๋ ˆ์ด๋“œ๋ฅผ ์œ„ํ•ด +1 --๋ชจ๋‘

์™œ ํ˜„์žฌ ๋ชจ๋“  Python ๋ชจ๋“ˆ ๊ด€๋ฆฌ ๊ธฐ๋Šฅ์ด ํ˜•ํŽธ์—†๋‚˜์š”? ์™œ ์•ˆ๋ผ
ํ•˜๋‚˜๋Š” ๊ฐ„๋‹จํ•œ ์—…๊ทธ๋ ˆ์ด๋“œ + ์—…๊ทธ๋ ˆ์ด๋“œ --all ๋ช…๋ น์„ ์ œ๊ณตํ•ฉ๋‹ˆ๊นŒ?


Original Comment By: Anonymous

๊ตฌํ˜„์„ ํ•œ ๋ฒˆ ํ•ด๋ณด๊ณ  ์‹ถ์ง€๋งŒ ๋จผ์ € ๋ช‡ ๊ฐ€์ง€ ์งˆ๋ฌธ์„ ๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค.

'--all'์„ ์ง€์›ํ•˜๋Š” ์ƒˆ๋กœ์šด "์—…๊ทธ๋ ˆ์ด๋“œ" ๋ช…๋ น์— ๋Œ€ํ•œ ์ผ๋ฐ˜์ ์ธ ํ•ฉ์˜์ž…๋‹ˆ๋‹ค.
์˜ต์…˜์ด pip์— ์ถ”๊ฐ€๋ฉ๋‹ˆ๊นŒ?

pip upgrade๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ์€ ๊ทธ๊ฒƒ์ด ์‹คํ–‰๋˜๊ณ  ์žˆ๋Š” ํ™˜๊ฒฝ์—๋งŒ ์˜ํ–ฅ์„ ๋ฏธ์ณ์•ผ ํ•ฉ๋‹ˆ๋‹ค.
virtualenv์—์„œ ์‹คํ–‰ํ•˜๋ฉด ํ•ด๋‹น ํ™˜๊ฒฝ์— ๋กœ์ปฌ์ธ ํŒจํ‚ค์ง€๋งŒ ์—…๊ทธ๋ ˆ์ด๋“œ๋ฉ๋‹ˆ๋‹ค.
non-virtualenv์˜ ๊ฒฝ์šฐ์—๋„ ๋™์ผ


Original Comment By: Kelsey Hightower

Kelsey: ์œ„์˜ ํ† ๋ก ์„ ์ฝ์€ ๊ฒฐ๊ณผ ์‹ค์ œ
๊ทธ๊ฒƒ์— ๋Œ€ํ•œ ๋ฐ˜๋Œ€. ์ถ”๊ฐ€ํ•˜๊ธฐ ์ข‹์€ ๊ฒƒ ๊ฐ™์•„์š”. ๋ฉ”์ธ ์—ฃ์ง€ ์ผ€์ด์Šค๋Š”
ํŽธ์ง‘ ๊ฐ€๋Šฅํ•œ VCS ์„ค์น˜ - Ian์ด ์ œ์•ˆํ•œ ๋Œ€๋กœ "์—…๊ทธ๋ ˆ์ด๋“œ" ๋ช…๋ น์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.
๊ทธ๊ฒƒ๋“ค์„ ๋งŒ์ง€๋ฉด ์•ˆ๋ฉ๋‹ˆ๋‹ค. ๋ชจ๋“  ์ƒํ™ฉ์—์„œ "์—…๊ทธ๋ ˆ์ด๋“œ"์˜ ์˜๋ฏธ ์ •์˜
ํŽธ์ง‘ ๊ฐ€๋Šฅํ•œ ๊ฐ€๋Šฅ์„ฑ(์„ค์น˜๋œ ํŽธ์ง‘ ๊ฐ€๋Šฅํ•œ ๋กœ์ปฌ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ํฌํ•จ
origin)์€ ๋ถˆ๊ฐ€๋Šฅ์— ๊ฐ€๊นŒ์šธ ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.
์ •์˜๋ฅผ ์ข…ํ•ฉํ•˜๋ฉด ์œ ์ง€ ๊ด€๋ฆฌ๊ฐ€ ์ฆ๊ฐ€ํ•  ๋ฟ์ž…๋‹ˆ๋‹ค.
์ด๋ฏธ ์ทจ์•ฝํ•œ VCS ๋ฐฑ์—”๋“œ์˜ ๋ถ€๋‹ด. ๊ทธ๋Ÿฌ๋‚˜ ํŽธ์ง‘ํ•  ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ -- ์ด๋™
๊ทธ๊ฒƒ!


Original Comment By: Carl Meyer

Carl: ์ข‹์Šต๋‹ˆ๋‹ค. ์‹œ์ž‘ํ•˜๊ณ  ์ด ํ‹ฐ์ผ“์„ ๊ฒฐ๊ณผ๋กœ ์—…๋ฐ์ดํŠธํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.


Original Comment By: Kelsey Hightower

์—…๊ทธ๋ ˆ์ด๋“œ ๋ช…๋ น์„ ์ž‘์—…ํ•˜๋Š” ๋™์•ˆ ๋‹ค์Œ ์งˆ๋ฌธ์ด ๋‚˜ํƒ€๋‚ฌ์Šต๋‹ˆ๋‹ค.

  • ์–ด๋–ค ํŒจํ‚ค์ง€๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œ ํ•  ๊ฒƒ์ธ์ง€ ์ง€์ •ํ•˜๊ธฐ ์œ„ํ•ด
    ์—…๊ทธ๋ ˆ์ด๋“œ? ์š”๊ตฌ ์‚ฌํ•ญ ํŒŒ์ผ์„ ์ง€์›ํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ?
  • pip ์—…๊ทธ๋ ˆ์ด๋“œ ๋Š” ์•„์ง ์„ค์น˜๋˜์ง€ ์•Š์€ ํŒจํ‚ค์ง€๋ฅผ ์–ด๋–ป๊ฒŒ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ?
    ๋ˆ„๋ฝ๋œ ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ?
pip ์—…๊ทธ๋ ˆ์ด๋“œ ์‚ฌ์šฉ ์‚ฌ๋ก€ ๋ฐ ์ฒ˜๋ฆฌ ๋ฐฉ๋ฒ•:
# pip upgrade some_installed_package

Try and locate a package that satisfies the requirement. If the

์š”๊ตฌ ์‚ฌํ•ญ์ด ์ถฉ์กฑ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์š”์ฒญํ•œ ๋ฒ„์ „์œผ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜์‹ญ์‹œ์˜ค. ์—ฌ๊ธฐ์—๋Š” ๋‹ค์Œ์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.
์ด์ „ ๋ฒ„์ „์œผ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œ.

# pip upgrade --all

Locate all installed packages (non-editables) and update them to a new

๊ฐ€๋Šฅํ•œ ๊ฒฝ์šฐ ๋ฒ„์ „.

# pip upgrade some_other_package

Warning: some_other_package not installed, use pip install

some_other_package.

๋‚ด ๋ชฉํ‘œ๋Š” ์—…๊ทธ๋ ˆ์ด๋“œ ๋ช…๋ น์„ ์ •๋ง ๊ฐ„๋‹จํ•˜๊ฒŒ ์œ ์ง€ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋‹น์‹ ์€ ์—…๊ทธ๋ ˆ์ด๋“œ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค
ํŠน์ • ํŽธ์ง‘ ๋ถˆ๊ฐ€๋Šฅํ•œ ํŒจํ‚ค์ง€๋ฅผ ์ƒˆ ๋ฒ„์ „ ๋˜๋Š” ์ด์ „ ๋ฒ„์ „์œผ๋กœ; ๋˜๋Š” ์—…๊ทธ๋ ˆ์ด๋“œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
ํŽธ์ง‘ํ•  ์ˆ˜ ์—†๋Š” ๋ชจ๋“  ํŒจํ‚ค์ง€๋ฅผ ์ตœ์‹  ๋ฒ„์ „์œผ๋กœ.

์ƒ๊ฐ?


Original Comment By: Kelsey Hightower

"pip upgrade"๋Š” "pip install --upgrade"์˜ ์ •ํ™•ํ•œ ๋ณ„์นญ์ด์–ด์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.
์ง€๊ธˆ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, ์š”์ฒญ๋œ ํŒจํ‚ค์ง€๊ฐ€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ ์„ค์น˜๋ฉ๋‹ˆ๋‹ค.
์„ค์น˜๋˜์ง€ ์•Š์•˜์œผ๋ฉฐ ์˜ˆ, -r์ด ์žˆ๋Š” ์š”๊ตฌ ์‚ฌํ•ญ ํŒŒ์ผ์„ ์ˆ˜๋ฝํ•ฉ๋‹ˆ๋‹ค. ๊ทธ์˜ ํ•ด์•ผ
๊ฑฐ์˜ ์ƒˆ๋กœ์šด ์ฝ”๋“œ ์—†์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

์—…๊ทธ๋ ˆ์ด๋“œ --all์€ ํ˜„์žฌ ๋ชฉ๋ก์„ ์ฐพ๊ธฐ ์œ„ํ•ด ์ผ๋ถ€ ์ฝ”๋“œ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
์„ค์น˜๋œ ์—…๊ทธ๋ ˆ์ด๋“œ ๊ฐ€๋Šฅํ•œ ํŒจํ‚ค์ง€; ๊ทธ๋Ÿฐ ๋‹ค์Œ ํ•ด๋‹น ๋ชฉ๋ก์„ ์ „๋‹ฌํ•˜์—ฌ ์„ค์น˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
-- ์œ„์™€ ๊ฐ™์ด ์—…๊ทธ๋ ˆ์ด๋“œ ํ•ฉ๋‹ˆ๋‹ค.


Original Comment By: Carl Meyer

์นผ, ๋‹ต๋ณ€ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” ๋‹น์‹ ์ด ๊ฐ€์ง„ ๊ธธ์„ ๊ฝค ๋งŽ์ด ๊ฑธ์—ˆ์Šต๋‹ˆ๋‹ค.
์„ค๋ช…ํ–ˆ๋‹ค. ์˜ค๋Š˜ ๋Šฆ๊ฒŒ ๋‚˜๋Š” ๋ช‡ ๊ฐ€์ง€ ์˜ˆ์ œ ์‹คํ–‰์„ ๊ฒŒ์‹œํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.


Original Comment By: Kelsey Hightower

๋Œ€๋ถ€๋ถ„์˜ ์ฝ”๋“œ๋ฅผ ์™„๋ฃŒํ–ˆ์œผ๋ฉฐ ์ฝ”๋“œ๋ฅผ ๊ฒŒ์‹œํ•˜๊ธฐ ์ „์— ์•ฝ๊ฐ„์˜ ์ˆ˜์ •๋งŒ ๋‚จ์•˜์Šต๋‹ˆ๋‹ค.
๊ฒ€ํ† ๋ฅผ ์œ„ํ•ด.

ํ•  ๊ฒƒ:

  • ํ…Œ์ŠคํŠธ
  • ํ•„ํ„ฐ ์š”๊ตฌ ์‚ฌํ•ญ ํŒŒ์ผ; ํŒจํ‚ค์ง€ ๋ชฉ๋ก์— ํŽธ์ง‘ํ•  ์ˆ˜ ์—†๋Š” ํ•ญ๋ชฉ ์ถ”๊ฐ€
    ์—…๊ทธ๋ ˆ์ด๋“œ.
์—…๊ทธ๋ ˆ์ด๋“œ ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ pip ์‹คํ–‰
# pip upgrade --all

All packages up-to-date


# pip upgrade --all -v

Packages installed at latest version:

  pip: 0.8.2 (latest)

  distribute: 0.6.14 (latest)

  Python: 2.7.1 (latest)

  wsgiref: 0.1.2 (latest)

All packages up-to-date


# pip upgrade PyYAML

Package updates available:

  PyYAML: N/A (installed) 3.09 (latest)

Downloading/unpacking PyYAML

  Downloading PyYAML-3.09.tar.gz (238Kb): 238Kb downloaded

....

Successfully installed PyYAML

Cleaning up...


# pip upgrade --all -v

Packages installed at latest version:

  pip: 0.8.2 (latest)

  distribute: 0.6.14 (latest)

  PyYAML: 3.09 (latest)

  Python: 2.7.1 (latest)

  wsgiref: 0.1.2 (latest)

All packages up-to-date


# pip upgrade PyYAML==3.08

Downloading/unpacking PyYAML==3.08

....

Successfully installed PyYAML

Cleaning up...


# pip upgrade --all -v

Packages installed at latest version:

  pip: 0.8.2 (latest)

  distribute: 0.6.14 (latest)

  Python: 2.7.1 (latest)

  wsgiref: 0.1.2 (latest)

Package updates available:

  PyYAML: 3.08 (installed) 3.09 (latest)

Downloading/unpacking PyYAML

...

Successfully installed PyYAML

Cleaning up...

  Removing temporary dir /root/upgrade_env/build...

Original Comment By: Kelsey Hightower

๋งˆ์ง€๋ง‰ ์งˆ๋ฌธ ์„ธํŠธ(ํฌ๋ง):

  • pip ์—…๊ทธ๋ ˆ์ด๋“œ ๊ฐ€ ์š”๊ตฌ ์‚ฌํ•ญ ํŒŒ์ผ์„ ๊ตฌ๋ฌธ ๋ถ„์„ํ•˜๊ณ  ํ•„ํ„ฐ๋งํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
    ํŽธ์ง‘ ๊ฐ€๋Šฅ? URL ์š”๊ตฌ ์‚ฌํ•ญ์€ ์–ด๋–ป์Šต๋‹ˆ๊นŒ?

์š”๊ตฌ ์‚ฌํ•ญ ํŒŒ์ผ์˜ ํŽธ์ง‘ํ•  ์ˆ˜ ์—†๋Š” ๊ฐ ํ•ญ๋ชฉ์— ๋Œ€ํ•ด ๋‹ค์Œ์„ ํ™•์ธํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.
์ดํ›„ ๋ฒ„์ „์— ๋Œ€ํ•œ ์ธ๋ฑ์Šค. ์ด๋ ‡๊ฒŒ ํ•˜๋ ค๋ฉด ์ˆ˜์ง‘ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
์š”๊ตฌ ์‚ฌํ•ญ ํŒŒ์ผ์˜ ๊ฐ ์ค„์—์„œ ํŒจํ‚ค์ง€ ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.

๋ชจ๋“  ํŒ์„ ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค(ํ˜„์žฌ pip.req.parse_requirements ๋ณด๊ณ 

  • pip upgrade ๊ฐ€ ์„ค์น˜ํ•  ์ตœ์‹  ๋ฒ„์ „์˜ ์ธ๋ฑ์Šค๋ฅผ ๊ฒ€์ƒ‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ?
    (์ด๊ฒƒ์ด ๋‚ด๊ฐ€ ์ง€๊ธˆ ํ•˜๊ณ  ์žˆ๋Š” ์ผ์ž…๋‹ˆ๋‹ค). ๊ทธ๋ ‡์ง€ ์•Š์€ ๊ฒฝ์šฐ ์—…๊ทธ๋ ˆ์ด๋“œ ๋ช…๋ น์€ ๋‹ค์Œ์„ ๊ฒฐ์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
    ์—…๊ทธ๋ ˆ์ด๋“œ๊ฐ€ ์žˆ๋‹ค๋ฉด?

์ง€๊ธˆ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ์—๋งŒ ์—…๊ทธ๋ ˆ์ด๋“œ ๋ชฉ๋ก์— ํŒจํ‚ค์ง€๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

  • ํŒจํ‚ค์ง€๊ฐ€ ์„ค์น˜๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค
  • ์—…๊ทธ๋ ˆ์ด๋“œ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋ฉฐ(์ธ๋ฑ์Šค์˜ ์ตœ์‹  ๋ฒ„์ „) ๋ช…์‹œ์ 
    ๋ฒ„์ „์ด ์š”์ฒญ๋˜์—ˆ์Šต๋‹ˆ๋‹ค
  • ์š”์ฒญํ•œ ๋ฒ„์ „์ด ์„ค์น˜๋œ ๋ฒ„์ „๊ณผ ๋‹ค๋ฆ…๋‹ˆ๋‹ค(๋ฒ„์ „ ๋ˆ„๋ฝ
    ์„ฑ๋ƒฅ).
  • ํ•„ํ„ฐ๋งํ•  ๋•Œ๊นŒ์ง€ ์š”๊ตฌ ์‚ฌํ•ญ ํŒŒ์ผ์„ ์„ค์น˜ ๋ช…๋ น์œผ๋กœ ์—ฐ๊ธฐํ•ฉ๋‹ˆ๋‹ค.
    ํŽธ์ง‘ํ•  ์ˆ˜ ์—†๋Š” ์š”๊ตฌ ์‚ฌํ•ญ์„ ์ œ์™ธํ•ฉ๋‹ˆ๋‹ค.

Original Comment By: Kelsey Hightower

Carl์€ ๊ท€ํ•˜์˜ ๊ฒŒ์‹œ๋ฌผ์„ ๋‹ค์‹œ ์ฝ์€ ํ›„ ํ˜„์žฌ๋ณด๋‹ค ๋” ๋งŽ์€ ์ผ์„ ํ•˜๊ณ  ์žˆ๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.
ํ•„์ˆ˜์˜. ๋‚ด ์ง€์ ์„ ์—…๋กœ๋“œํ•˜์—ฌ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ”์„์ง€๋„ ๋ชฐ๋ผ
์ดํ›„ ๋ฒ„์ „์— ๋Œ€ํ•ด PyPi๋ฅผ ํ™•์ธํ•˜์—ฌ ์˜ค๋ฒ„๋ณด๋“œํ•ฉ๋‹ˆ๋‹ค.


Original Comment By: Kelsey Hightower

Carl์€ ๊ท€ํ•˜์˜ ๊ฒŒ์‹œ๋ฌผ์„ ๋‹ค์‹œ ์ฝ์€ ํ›„ ํ˜„์žฌ๋ณด๋‹ค ๋” ๋งŽ์€ ์ผ์„ ํ•˜๊ณ  ์žˆ๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.
ํ•„์ˆ˜์˜. ๋‚ด ์ง€์ ์„ ์—…๋กœ๋“œํ•˜์—ฌ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ”์„์ง€๋„ ๋ชฐ๋ผ
์ดํ›„ ๋ฒ„์ „์— ๋Œ€ํ•ด PyPi๋ฅผ ํ™•์ธํ•˜์—ฌ ์˜ค๋ฒ„๋ณด๋“œํ•ฉ๋‹ˆ๋‹ค.


Original Comment By: Kelsey Hightower

์˜ˆ, ํ•„์š” ์ด์ƒ์œผ๋กœ ํ•˜๊ณ  ์žˆ๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ํ• ์„ค์น˜
--upgrade๋Š” ์ด๋ฏธ ๋…ผ์˜ ์ค‘์ธ ๋ชจ๋“  ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค(์ตœ์‹ 
๋ฒ„์ „ ๋“ฑ); ๋ชจ๋“  "pip ์—…๊ทธ๋ ˆ์ด๋“œ"๋Š” 2์ค„ ํ†ต๊ณผ์™€ ๊ฐ™์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค.
pip install --upgrade์— ๋Œ€ํ•œ ๋ชจ๋“  ๊ฒƒ.

์—ฌ๊ธฐ์— ์ž‘์„ฑ๋˜๋Š” ์œ ์ผํ•œ ์‹ค์ œ ์ฝ”๋“œ๋Š” "upgrade --all"์— ๋Œ€ํ•œ ์ฝ”๋“œ์ž…๋‹ˆ๋‹ค.
ํ™˜๊ฒฝ์— ์„ค์น˜๋œ ์—…๊ทธ๋ ˆ์ด๋“œ ๊ฐ€๋Šฅํ•œ ํŒจํ‚ค์ง€์˜ ์ „์ฒด ๋ชฉ๋ก์ž…๋‹ˆ๋‹ค.


Original Comment By: Carl Meyer

์˜ˆ, ์•Œ๊ณ  ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๊ธ€์Ž„, ๋‚˜๋Š” ๋งŽ์€ ๊ฒƒ์„ ๋ฐฐ์› ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด ํ•„์š”ํ•˜์ง€ ์•Š๋”๋ผ๋„
์ž‘์—… ์ค‘์— ์„ค์น˜ ๋ฐ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ํ•ญ๋ชฉ์„ ํ‘œ์‹œํ•˜๋Š” ๊ธฐ๋Šฅ์ด ๋งˆ์Œ์— ๋“ญ๋‹ˆ๋‹ค.
์—…๊ทธ๋ ˆ์ด๋“œ ํ”„๋กœ์„ธ์Šค(์œ„์˜ ํ…Œ์ŠคํŠธ ์‹คํ–‰ ์ฐธ์กฐ).

๋‹ค์‹œ ํŒฉํ„ฐ๋งํ•˜๊ณ  ์ •๋ฆฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ๋‚ด ํฌํฌ์˜ ํ˜„์žฌ ๋ณ€๊ฒฝ ์‚ฌํ•ญ
์—…๊ทธ๋ ˆ์ด๋“œ ๋ช…๋ น ๋ถ„๊ธฐ.

https://bitbucket.org/khightower/pip/changeset/2bdc202b446c


Original Comment By: Kelsey Hightower

๋‚˜๋Š” Carl์˜ ์ œ์•ˆ์— ๋”ฐ๋ผ ์—…๊ทธ๋ ˆ์ด๋“œ ๋ช…๋ น์„ ์ œ๊ฑฐํ–ˆ์Šต๋‹ˆ๋‹ค.
์šฐ์„ ). ๊ฒฐ๊ณผ๊ฐ€ ๋งˆ์Œ์— ๋“ค์ง€๋Š” ์•Š์ง€๋งŒ ๋ฏธ๋Ÿฌ ์„ค์น˜๋Š” ๋ฉ๋‹ˆ๋‹ค.-- ๊ธฐ๋Šฅ

pip๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ์—๋„ ํŒจํ‚ค์ง€๋ฅผ ๋‹ค์šด๋กœ๋“œํ•˜๊ณ  ๋‹ค์‹œ ์„ค์น˜ํ•˜๋ ค๊ณ  ์‹œ๋„ํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.
ํŒจํ‚ค์ง€๊ฐ€ ์ด๋ฏธ ์„ค์น˜๋˜์–ด ์žˆ๊ณ  ์ตœ์‹  ์ƒํƒœ์ž…๋‹ˆ๋‹ค. ์—…๊ทธ๋ ˆ์ด๋“œ๋กœ ๋”์šฑ ์•…ํ™”--all , pip๋Š” pip ์ž์ฒด๋ฅผ ํฌํ•จํ•œ ๋ชจ๋“  ๊ฒƒ์„ ๋‹ค์‹œ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค. ํ•์ด ์ด๋Ÿฐ๊ฑด๊ฐ€
์—…๊ทธ๋ ˆ์ด๋“œ๊ฐ€ ์ž‘๋™ํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ? ๊ทธ๋ ‡๋‹ค๋ฉด ๊ฑฐ์˜ ์™„๋ฃŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค :)

pip ์—…๊ทธ๋ ˆ์ด๋“œ ๋ช…๋ น ์‹คํ–‰
# pip upgrade Mako


Downloading/unpacking Mako

  Running setup.py egg_info for package Mako


    warning: no files found matching '*.jpg' under directory 'doc'

    warning: no files found matching '*.sty' under directory 'doc'

    warning: no files found matching 'autohandler' under directory 'doc'

    warning: no files found matching '*.xml' under directory 'examples'

    warning: no files found matching '*.mako' under directory 'examples'

    warning: no files found matching '*.dat' under directory 'test'

    warning: no files found matching 'ez_setup.py'

Downloading/unpacking MarkupSafe>=0.9.2 (from Mako)

  Running setup.py egg_info for package MarkupSafe


Installing collected packages: Mako, MarkupSafe

  Found existing installation: Mako 0.3.6

    Uninstalling Mako:

      Successfully uninstalled Mako

  Running setup.py install for Mako

    changing mode of build/scripts-2.7/mako-render from 644 to 755


    warning: no files found matching '*.jpg' under directory 'doc'

    warning: no files found matching '*.sty' under directory 'doc'

    warning: no files found matching 'autohandler' under directory 'doc'

    warning: no files found matching '*.xml' under directory 'examples'

    warning: no files found matching '*.mako' under directory 'examples'

    warning: no files found matching '*.dat' under directory 'test'

    warning: no files found matching 'ez_setup.py'

    changing mode of /root/upgrade_env/bin/mako-render to 755

  Found existing installation: MarkupSafe 0.11

    Uninstalling MarkupSafe:

      Successfully uninstalled MarkupSafe

  Running setup.py install for MarkupSafe


    building 'markupsafe._speedups' extension

    gcc -pthread -fno-strict-aliasing -g -O2 -DNDEBUG -g -fwrapv -O3 -Wall

-Wstrict-prototypes -fPIC -I/opt/OpenPython-2.7.1/include/python2.7 -c
markupsafe/_speedups.c -o build/temp.linux-x86_64-2.7/markupsafe/_speedups.o

    gcc -pthread -shared

build/temp.linux-x86_64-2.7/markupsafe/_speedups.o -o
build/lib.linux-x86_64-2.7/markupsafe/_speedups.so

Successfully installed Mako MarkupSafe

Cleaning up...

Original Comment By: Kelsey Hightower

Kelsey - ์˜ˆ, install --upgrade์— ๋ช‡ ๊ฐ€์ง€ ๋ฒ„๊ทธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ํŠนํžˆ ๋‹น์‹ 
์‹๋ณ„๋œ #13 , ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํŒจํ‚ค์ง€๋„ ๋‹ค์‹œ ๋‹ค์šด๋กœ๋“œํ•˜๊ณ  ๋‹ค์‹œ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.
์ด๋ฏธ ์ตœ์‹  ์ƒํƒœ์ž…๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ์ผ์„ ํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์ด ํ•ด๊ฒฐ์ฑ…
์ƒˆ๋กœ์šด ์—…๊ทธ๋ ˆ์ด๋“œ ๋ช…๋ น์œผ๋กœ install --upgrade์˜ ๋ฒ„๊ทธ๋ฅผ ์ˆ˜์ •ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

upgrade --all์„ ์‚ฌ์šฉํ•˜๋ฉด pip๊ฐ€ ์ž์ฒด์ ์œผ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋Š” ๊ฒƒ์ด ํ•ฉ๋ฆฌ์ ์œผ๋กœ ๋ณด์ž…๋‹ˆ๋‹ค.
์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์—…๊ทธ๋ ˆ์ด๋“œ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ์—๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ž…๋‹ˆ๋‹ค. (๊ฐœ์ธ์ ์œผ๋กœ ๋‚˜๋Š” ์—…๊ทธ๋ ˆ์ด๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.
--all, ๊ทธ๋ž˜์„œ ๋‚˜๋Š” ๊ทธ๊ฒƒ์„ ์‚ฌ์šฉํ•  ์‚ฌ๋žŒ๋“ค์ด ์–ด๋–ค ํ–‰๋™์„ ์›ํ• ์ง€ ๋ชจ๋ฆ…๋‹ˆ๋‹ค.
์—ฌ๊ธฐ). ๋ถ„๋ช…ํžˆ ๋‹ค์‹œ # 13 ์ด ์ˆ˜์ •๋˜๋ฉด ๋” ์ž˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.


Original Comment By: Carl Meyer

Carl์—๊ฒŒ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ธ€์„ ๋งˆ๋ฌด๋ฆฌํ•˜๊ณ  #13 ๋ถ€ํ„ฐ ์‚ดํŽด


Original Comment By: Kelsey Hightower

์‹œ๊ฐ„์ด ์žˆ๋Š” ์‚ฌ๋žŒ์ด ์žˆ์œผ๋ฉด ๋‚ด ์—…๊ทธ๋ ˆ์ด๋“œ ๋ช…๋ น ๋ถ„๊ธฐ๋ฅผ ๊ฒ€ํ† ํ•˜์‹ญ์‹œ์˜ค. ํ•œํŽธ
๋‚˜๋Š” ๊ธฐ์กด์˜ ๊ฒƒ์„ ๋ณต์ œํ•˜์ง€ ์•Š์œผ๋ ค๋Š” ๋‹จ์œ„ ํ…Œ์ŠคํŠธ์—์„œ ์ž‘์—…ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.
์„ค์น˜ ๋ช…๋ น.

https://bitbucket.org/khightower/pip/src/fa7b2a6d2bf1/pip/commands/upgrade.py


Original Comment By: Kelsey Hightower

@vababiy : ์—…๊ทธ๋ ˆ์ด๋“œ ๋ช…๋ น์„ ์‹œ๋„ํ–ˆ์ง€๋งŒ ์ œ๋Œ€๋กœ ์ž‘๋™ํ•˜์ง€ ์•Š๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค... ๊ทธ๋ž˜์„œ ์ง์ ‘ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.

https://github.com/pypa/pip/pull/313
https://github.com/jedie/pip/commit/7a31d70dabe0e809184fe1b5280c5a7ccf420dd5

@jedie @khightower ์—์„œ ์˜๊ฒฌ์„ ๋ณด๋‚ด๋ ค๊ณ  ํ–ˆ๋˜ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. @vbabiy๋Š” ๊ทธ๋…€์˜ ์˜๊ฒฌ์„ ์—ฌ๊ธฐ๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ–ˆ์ง€๋งŒ ์—…๊ทธ๋ ˆ์ด๋“œ ๋ช…๋ น์„ ์ž‘์„ฑํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

+1

@kelseyhightower ์–ด๋–ค ์ง„์ „์ด ์žˆ์Šต๋‹ˆ๊นŒ?

+1

+1!

+1

+1

"+1"๋งŒ์œผ๋กœ ๋ฌธ์ œ์— ๋Œ€ํ•œ ๋Œ“๊ธ€์„ ๋‹ฌ์ง€ ๋งˆ์„ธ์š”. ์šฐ๋ฆฌ๋Š” ์ด ๊ธฐ๋Šฅ์ด ํ•„์š”ํ•˜๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ์ง€๋งŒ ๋ฐ›์€ ํŽธ์ง€ํ•จ์— ์ŠคํŒธ์„ ๋ณด๋‚ด๋Š” ๊ฒƒ์€ ๋„์›€์ด ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋Œ€์‹  "ํŒจ์น˜ ์™„๋ฃŒ!"๋ผ๋Š” ๋Œ“๊ธ€์„ ๋ณด๊ฒŒ ๋˜์–ด ๊ธฐ์ฉ๋‹ˆ๋‹ค. ;)

+1

์—…๋ฐ์ดํŠธ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ? ์ถ”๊ฐ€ํ•  ๊ณ„ํš์€ ์—†๋Š”์ง€, ์ด์ œ 3๋…„์ฐจ..

@pradyun ์ฐธ์กฐ https://github.com/pypa/pip/issues/59#issuecomment -9418336

+1

๋‚˜๋Š” ์ด๊ฒƒ์ด ์ด๋ฏธ ๋ณ‘ํ•ฉ๋˜์—ˆ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‚ด ํŒŒ์ด์ฌ ๊ธฐ์ˆ ์„ ํ„ธ์–ด๋‚ด๊ณ  ๋‹ค์‹œ ์‹œ๋„ํ•ด ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ๊ธฐ๋Šฅ์ด 1.5์— ํฌํ•จ๋  ์˜ˆ์ •์ธ๊ฐ€์š”? 1.5 ๋ฌธ์„œ์—์„œ ์ด์— ๋Œ€ํ•œ ์ฐธ์กฐ๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค...

+1

์ด ๋ฌธ์ œ์˜ ์ƒํƒœ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

#988์— ์˜ํ•ด ์ฐจ๋‹จ๋ฉ๋‹ˆ๋‹ค.

๊ทธ๊ฒƒ์ด ์ •๋ง๋กœ ์ค‘์š”ํ•œ ๊ฒฝ์šฐ ๋ชจ๋“  ํŒจํ‚ค์ง€๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๊ธฐ ์œ„ํ•œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ด๊ฒƒ์„ ๋ณ‘๋ ฌ๋กœ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ์Šคํฌ๋ฆฝํŠธ๋ฅผ ํ•จ๊ป˜ ๋˜์กŒ๊ณ (https://github.com/ariccio/update-pip-packages), ์ธํ„ฐ๋„ท์˜ ๋‹ค๋ฅธ ๊ณณ์— ๋งŽ์€ ๋‹ค๋ฅธ ๊ตฌํ˜„์ด ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ์—๋Š” ๋‘ ๋ถ€๋ถ„์ด ์žˆ์Šต๋‹ˆ๋‹ค. upgrade-all ๋Š” gh-988์— ์˜ํ•ด ์ฐจ๋‹จ๋  ์ˆ˜ ์žˆ์ง€๋งŒ upgrade ์ด ์ฐจ๋‹จ๋˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. pip upgrade ๋Š” pip install -U --no-deps ๋Œ€ํ•œ ๊ฐ„๋‹จํ•œ ๋ณ„์นญ์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ setup.py ํŒŒ์ผ์—์„œ install_requires ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ฃผ์š” ๋ฌธ์ œ ์ค‘ ํ•˜๋‚˜๋ฅผ ํ•ด๊ฒฐํ•ฉ๋‹ˆ๋‹ค. ์กฐ๋งŒ๊ฐ„ ํ•  ์ˆ˜ ์—†์„๊นŒ์š”?

pip upgrade๋Š” pip install -U --no-deps์˜ ๊ฐ„๋‹จํ•œ ๋ณ„์นญ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์„ค๋ช…์—์„œ :

pip upgrade ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ์žฌ๊ท€์ ์ด์ง€ ์•Š๊ณ  --recursive ์˜ต์…˜์„ ์ œ๊ณตํ•œ๋‹ค๋Š” ์ ์„ ์ œ์™ธํ•˜๊ณ ๋Š” pip install --upgrade ์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค. ํ˜„์žฌ์˜ ์žฌ๊ท€์  ๊ธฐ๋ณธ ๋™์ž‘์€ ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์—๊ฒŒ ์Šฌํ””์„ ์•ˆ๊ฒจ์ฃผ์—ˆ์Šต๋‹ˆ๋‹ค(#304). ์ง€๊ธˆ ๋น„์žฌ๊ท€์  ์—…๊ทธ๋ ˆ์ด๋“œ๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ์—ฌ๊ธฐ๋ฅผ ์ฐธ์กฐ

pip install -U --no-deps ๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค.

์ด ์ปจํ…์ŠคํŠธ์—์„œ "๋น„์žฌ๊ท€์ "์€ ๋‹จ์ˆœํžˆ โ€“no-deps ๋ฅผ ์˜๋ฏธํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋น„์žฌ๊ท€์  ์—…๊ทธ๋ ˆ์ด๋“œ๋Š” ์ข…์†์„ฑ์„ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜์ง€๋งŒ ์ƒ์œ„ ์š”๊ตฌ ์‚ฌํ•ญ์„ ์ถฉ์กฑํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ๊ฒฝ์šฐ์—๋งŒ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

@qwcode ์„ค๋ช… ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿผ ๊ทธ๊ฑด ๋‚ด๊ฐ€ ์‹ ๊ฒฝ์“ฐ๋Š” ๊ฒŒ ์•„๋‹ˆ์•ผ. ์ด๊ฒƒ์„ "๋น„์žฌ๊ท€์ "์ด๋ผ๊ณ  ๋ถ€๋ฅด๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ์—ฌ์ „ํžˆ ์žฌ๊ท€์ ์ด์ง€๋งŒ ์กฐ๊ธˆ ๋” ๋˜‘๋˜‘ํ•˜๊ณ  ๋‹ค๋ฆ…๋‹ˆ๋‹ค.

๋‚˜๋Š” gh-571์˜ ํ† ๋ก ์—์„œ ์ •๋ง ๋น„์žฌ๊ท€์ (non-recursive)์ด ์›ํ•˜๋Š” ๊ธฐ๋ณธ๊ฐ’์ด๋ผ๋Š” ์ธ์ƒ์„ ๋ฐ›์•˜์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ํ™•์‹คํžˆ ์˜๋ฏธ๊ฐ€ ์žˆ์œผ๋ฉฐ ํ•ญ์ƒ https://github.com/scipy/scipy/commit/8e7ee0c4b3c16 ๊ณผ ๊ฐ™์€ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜์ง€ ์•Š์•„๋„ ๋ฉ๋‹ˆ๋‹ค

#571์—์„œ "non-recursive"๋Š” --no-deps ๊ฐ€ ์•„๋‹ˆ๋ผ "smarter/different" ์žฌ๊ท€์ ์ž…๋‹ˆ๋‹ค.
ํ•ด๋‹น PR์—์„œ test_upgrade_with_needed_recursive_upgrades() ํ…Œ์ŠคํŠธ๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

์กฐ๊ฑด์— ์–ฝ๋งค์ด์ง€ ์•Š๊ณ  3๊ฐ€์ง€๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

  1. "๋” ๋˜‘๋˜‘ํ•œ/๋‹ค๋ฅธ ์—…๊ทธ๋ ˆ์ด๋“œ", ์ฆ‰ ์ข…์†์„ฑ ์—…๊ทธ๋ ˆ์ด๋“œ๋ฅผ ์•”์‹œํ•  ์ˆ˜๋„ ์žˆ๋Š” OS ํŒจํ‚ค์ง•์—์„œ ๋ฐœ์ƒํ•˜๋Š” ์ข…๋ฅ˜์ž…๋‹ˆ๋‹ค(๊ทธ๋Ÿฌ๋‚˜ ์‹ค์ œ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œ๊ฐ€ _ํ•„์š”ํ•œ_ ๊ฒฝ์šฐ์—๋งŒ).
  2. pip๊ฐ€ ์ง€๊ธˆ ํ•˜๋Š” ์ผ์€ ํ•„์š” ๋˜๋Š” ์ถฉ๋Œ ํ•ด๊ฒฐ์— ๊ด€๊ณ„์—†์ด ๋ชจ๋“  ์ข…์†์„ฑ์„ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
  3. --no-deps

#1๊ณผ #2๋ฅผ ๊ตฌ๋ณ„ํ•˜๋Š” ๋ช‡ ๊ฐ€์ง€ ๊ฐ€๋Šฅํ•œ ๋ฐฉ๋ฒ•

  1. "๋น„์žฌ๊ท€์ " vs "์žฌ๊ท€์ "
  2. "์ •์ƒ์ ์ธ" vs "์žฌ๊ท€์ ์ธ"
  3. "ํ•„์š”ํ•œ ๊ฒฝ์šฐ์—๋งŒ ์žฌ๊ท€" vs "์žฌ๊ท€์— ๊ด€๊ณ„์—†์ด ์ˆ˜ํ–‰"

๋‚˜๋Š” ์ตœ๊ณ ์˜ ์šฉ์–ด๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐ ์—ด๋ ค ์žˆ์Šต๋‹ˆ๋‹ค ... ๊ทธ๊ฒƒ์ด ๋ฌด์—‡์ธ์ง€ ํ™•์‹คํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ์ด "ํ•„์š”ํ•œ ๊ฒฝ์šฐ์—๋งŒ ์žฌ๊ท€์ "์ด๋ผ๋Š” ๋ฌธ๊ตฌ๋ฅผ ์ข‹์•„ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์•„๋งˆ๋„ ์—ฌ๊ธฐ ๋ฌธ์„œ์—์„œ ์‚ฌ์šฉํ•ด์•ผ ํ• 

๋‚˜๋„ ์ข‹์•„ํ•ด. ์„ธ ๊ฐ€์ง€ ์˜ต์…˜์„ ๋ชจ๋‘ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์„ค๋ช…ํ•œ๋‹ค๋ฉด

a. non-recursive
b. only if needed recursive
c. recursive (or "do it regardless recursive")

๊ทธ๊ฑด ๋ถ„๋ช…ํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋Ÿฐ ๋‹ค์Œ ์ข‹์€ ๊ธฐ๋ณธ๊ฐ’์„ ์„ ํƒํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. upgrade ๋ฐ install -U ์— ๋Œ€ํ•ด (a) ๋˜๋Š” (b)๊ฐ€ ์˜๋ฏธ๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” (a)๋ฅผ ๊ฐ•๋ ฅํžˆ ์„ ํ˜ธํ•˜์ง€๋งŒ (b)๋Š” OS ํŒจํ‚ค์ง•์ด ํ•˜๋Š” ์ผ์ด๋ผ๋Š” ์ ์„ ๊ฐ์•ˆํ•  ๋•Œ ๋„ˆ๋ฌด ์˜๋ฏธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

(c) ๊ธฐ๋ณธ์ ์œผ๋กœ ์˜๋ฏธ๊ฐ€ ์—†์œผ๋ฏ€๋กœ install -U ๋ฅผ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š๊ธฐ๋กœ ํ•œ ๊ฒฐ์ •์„ ์žฌ๊ณ ํ•˜์‹ญ์‹œ์˜ค.

๋‚ด๊ฐ€ (a)๋ฅผ ๊ฐ•๋ ฅํ•˜๊ฒŒ ์„ ํ˜ธํ•˜๋Š” ์ด์œ ๋ฅผ ๋ช…ํ™•ํžˆ ํ•˜๊ธฐ ์œ„ํ•ด: (b)๋ฅผ ์›ํ•˜๊ณ  (a)๋ฅผ ๋ฐ›๋Š” ์ˆœ์ง„ํ•œ ์‚ฌ์šฉ์ž๋Š” "non-recursive upgrade can't satisfy all dependencies, please use only-if-needed recursive" ๋ผ๋Š” ๋ฉ”์‹œ์ง€๋ฅผ ์ฝ์–ด์•ผ ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๋Š” ๊ทธ๋‹ค์ง€ ํฐ ๋ฌธ์ œ๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’์ด (b)์ธ ๊ฒฝ์šฐ ์˜์‹ฌํ•˜์ง€ ์•Š๋Š” ์‚ฌ์šฉ์ž๋Š” ๊ฒฐ๊ตญ ๊ฑด๋“œ๋ฆฌ๊ณ  ์‹ถ์ง€ ์•Š์€ ํŒจํ‚ค์ง€๊ฐ€ ์—…๊ทธ๋ ˆ์ด๋“œ๋˜๊ฑฐ๋‚˜ ์„ค์น˜๊ฐ€ ์†์ƒ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ณต๊ตฌํ•˜๋Š” ๋ฐ ๋ช‡ ์‹œ๊ฐ„ ๋˜๋Š” ๋ฉฐ์น ์ด ๊ฑธ๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

(c) ๊ธฐ๋ณธ์ ์œผ๋กœ ์˜๋ฏธ๊ฐ€ ์—†์œผ๋ฏ€๋กœ install -U๋ฅผ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š๊ธฐ๋กœ ํ•œ ๊ฒฐ์ •์„ ์žฌ๊ณ ํ•˜์‹ญ์‹œ์˜ค.

install -U ๋ฅผ ๊ทธ๋Œ€๋กœ ๋‘๋Š” ์ด์œ ๋Š” ํ˜ธํ™˜์„ฑ์„ ์œ„ํ•œ ๊ฒƒ์ด๋ฉฐ ๊ฒฐ๊ตญ์—๋Š” ๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๊ธฐ๋ณธ๊ฐ’์ด (b)์ธ ๊ฒฝ์šฐ ์˜์‹ฌํ•˜์ง€ ์•Š๋Š” ์‚ฌ์šฉ์ž๋Š” ์—…๊ทธ๋ ˆ์ด๋“œ๋กœ ๋๋‚  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๋˜๋Š” ๊ทธ๊ฐ€ ์ •๋ง๋กœ ๊ฑด๋“œ๋ฆฌ๊ณ  ์‹ถ์ง€ ์•Š์€ ํŒจํ‚ค์ง€์˜ ๊นจ์ง„ ์„ค์น˜์กฐ์ฐจ๋„

์‚ฌ์šฉ์ž๊ฐ€ ํ•„์š”ํ•œ ์ข…์†์„ฑ ์—…๊ทธ๋ ˆ์ด๋“œ๋ฅผ ์ˆ˜ํ–‰ํ•˜์ง€ ์•Š์œผ๋ ค๋ฉด ํŠนํžˆ --no-deps ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์š”์ฒญํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋‚ด ๋งˆ์Œ์— ๊ทธ๊ฒƒ์ด ๊ธฐ๋ณธ๊ฐ’์ด ๋  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์€ ์—†์Šต๋‹ˆ๋‹ค. ๊ทธ ํ–‰๋™์€ ๋‹น์‹ ์ด ๊ณ ๋ คํ•˜๊ณ  ์žˆ๋Š” ๊ฒƒ๋ณด๋‹ค ๋” ๋งŽ์€ ํ”ผํ•ด๋ฅผ ์ž…ํž ๊ฒƒ์ž…๋‹ˆ๋‹ค(์ด์ƒ์น˜์ธ ๊ฒฝ์šฐ). ๊ณ„์†ํ•ด์„œ ์‚ฌ์šฉ์ž๋Š” ํ•„์š”ํ•œ ์ข…์†์„ฑ ์—…๊ทธ๋ ˆ์ด๋“œ๋ฅผ ๋ฐ›์ง€ ๋ชปํ•œ ์ฑ„ ๋‚จ๊ฒจ์งˆ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

install -U ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

(b)๊ฐ€ (a)๋ณด๋‹ค ๋” ์ผ๋ฐ˜์ ์ด๋ผ๋Š” ๋ฐ ๋™์˜ํ•ฉ๋‹ˆ๋‹ค. 100๋ฐฐ๋Š” ๋” ํ”ํ•œ๋ฐ, ๊ทธ๋ ‡์ง€ ์•Š๋‹ค๊ณ  ํ•ด๋„ ํ”ผํ•ด๊ฐ€ ๋” ๋งŽ๋‹ค๋Š” ๊ฒƒ์€ ์‚ฌ์‹ค์ด ์•„๋‹ˆ๋‹ค. ์„ค์น˜๊ฐ€ ์‹œ์ž‘๋˜๊ธฐ ์ „์— ๋ช…ํ™•ํ•œ ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๋ฅผ ์ฝ๋Š” ๊ฒƒ์ด ์˜ˆ๋ฅผ ๋“ค์–ด ์ค‘๊ฐ„์— ์ปดํŒŒ์ผ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ํ›จ์”ฌ ๋‚ซ๊ธฐ ๋•Œ๋ฌธ์— imho(a)๊ฐ€ ์—ฌ์ „ํžˆ ๋” ๋‚˜์€ ๊ธฐ๋ณธ๊ฐ’์ž…๋‹ˆ๋‹ค.

--no-deps ์— ์˜์กดํ•˜๋Š” ๊ฒƒ์€ ๊ฒฝํ—˜์ด ๋งŽ์€ ์‚ฌ์šฉ์ž์—๊ฒŒ๋Š” ๊ดœ์ฐฎ์„ ์ˆ˜ ์žˆ์ง€๋งŒ ์ƒˆ๋กœ์šด ์‚ฌ์šฉ์ž๋Š” ์ƒํ™ฉ์ด ์ž˜๋ชป๋œ ํ›„์—์•ผ ์•Œ๊ฒŒ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์–ด์จŒ๋“ , ๋‹น์‹ ์„ ์„ค๋“ํ•  ์ˆ˜ ์—†์„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ์„ค๋ช…์„œ๋กœ ๋Œ์•„๊ฐ€์„œ

try:
   import dependency
except ImportError:
    install_requires.append('dependency')
else:
    if dependency.version < 'x.y.z':
        raise ValueError('Please upgrade dependency to x.y.z')

๊ทธ๊ฒƒ์€.

@qwcode ์ž์„ธํ•œ ์„ค๋ช… ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ด๊ฒƒ์ด ๊ฐ€๊นŒ์šด ์žฅ๋ž˜์— ์ง„ํ–‰๋˜๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค - ํ•„์š”ํ•œ ๊ฒฝ์šฐ์—๋งŒ ์žฌ๊ท€๊ฐ€ ํ˜„์žฌ ๋™์ž‘์— ๋Œ€ํ•œ ์—„์ฒญ๋‚œ ๊ฐœ์„ ์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ด๋ฒˆ ์ฃผ์— install_requires ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐ ๋‹ค์‹œ ๋งŽ์€ ์‹œ๊ฐ„์„ ํ• ์• ํ•˜์—ฌ ํ˜„์žฌ ํ–‰๋™์—์„œ ๋ฒ—์–ด๋‚˜๊ธฐ ์œ„ํ•ด :+1: ์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ์— ๋Œ€ํ•œ ์—…๋ฐ์ดํŠธ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ?

์ง€๊ธˆ์€ 2015๋…„์ด๊ณ  pip freeze --local | grep -v '^\-e' | cut -d = -f 1 | xargs -n1 pip install -U stackoverflow ์—์„œ ๋ณต์‚ฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋„ค, ๊ธฐ๋ณธ์ ์œผ๋กœ ๋ชจ๋“  ์ง„ํ–‰ ์ƒํ™ฉ์ด ์ด ๋ฌธ์ œ์™€ ๊ด€๋ จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

pip_upgrade_github

GitHub๋Š” ์ƒํ˜ธ ์ฐธ์กฐ ์ž‘์—…์„ ์•„์ฃผ ์ž˜ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋‘ ํด๋ฆญ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค! (์ด๊ฑฐ ์•„์‹ค๊บผ ๊ฐ™์€๋ฐ์š”?)

๋„ค, ํ•˜์ง€๋งŒ ์ด "๋‹จ์ˆœํ•œ" ๊ธฐ๋Šฅ์ด ์™œ ๊ทธ๋ ‡๊ฒŒ ์ง€์—ฐ๋˜๋Š”์ง€ ์ดํ•ด๊ฐ€ ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๊ทธ ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

Am 16.04.2015 um 05:28 schrieb Alexander Riccio [email protected] :

๋„ค, ๊ธฐ๋ณธ์ ์œผ๋กœ ๋ชจ๋“  ์ง„ํ–‰ ์ƒํ™ฉ์ด ์ด ๋ฌธ์ œ์™€ ๊ด€๋ จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

GitHub๋Š” ์ƒํ˜ธ ์ฐธ์กฐ ์ž‘์—…์„ ์•„์ฃผ ์ž˜ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋‘ ํด๋ฆญ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค! (์ด๊ฑฐ ์•„์‹ค๊บผ ๊ฐ™์€๋ฐ์š”?)

โ€”
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ํšŒ์‹ ํ•˜๊ฑฐ๋‚˜ GitHub์—์„œ ํ™•์ธํ•˜์„ธ์š”.

pip upgrade-all , ์—ฌ์ „ํžˆ ๊ถ๊ทน์ ์œผ๋กœ ๊ฒฐํ•จ์ด ์žˆ๊ณ  ์ž‘์—… ํ™˜๊ฒฝ์— ์œ„ํ—˜ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐ˜์ง์ด๋Š” ์ƒˆ ๋ช…๋ น์„ ๋ฆด๋ฆฌ์Šคํ•˜๊ธฐ ์ „์— #988๊ณผ ๊ด€๋ จ๋œ ์ž‘์—…์„ ๊ธฐ๋‹ค๋ฆฌ๋Š” ๊ฒƒ์ด ํ•ฉ์˜์ธ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์š”๊ตฌ ์‚ฌํ•ญ์„ ์ ์ ˆํ•˜๊ฒŒ ํ•ด๊ฒฐํ•˜์ง€ ๋ชปํ•˜๋Š” upgrade-all ์˜ ๊ฐ„๋‹จํ•œ ๋ฒ„์ „์€ ๊ธฐ์กด ํŒจํ‚ค์ง€๋ฅผ ์‰ฝ๊ฒŒ ์†์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

+1

4๋…„๋™์•ˆ ๋ญํ•ด?

+1

+1

+1

@muhasturk ํ˜„์žฌ ๋Œ€๊ธฐ ์ค‘... https://github.com/pypa/pip/issues/59#issuecomment -93646462

+1

+1

+1

+1

+1

+1

+1

+1

+1

+1

+1 ...์ŠคํŒธ ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ pip freeze --local | grep -v '^\-e' | cut -d = -f 1 | xargs -n1 pip install -U ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ์€ ๊ณ ํ†ต์Šค๋Ÿฝ์Šต๋‹ˆ๋‹ค!

+1

๋ˆ„๊ตฐ๊ฐ€ ์ด ์ž‘์—…์— ๊ด€์‹ฌ์ด ์žˆ๋Š” ๊ฒฝ์šฐ ์œ„์˜ ์„ค๋ช…์ด ๋‹ค์†Œ ํ˜ผ๋ž€์Šค๋Ÿฝ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. AFAICT ์‹ค์ œ ์ƒํƒœ๋Š” ํ˜„์žฌ pip upgrade-all ๊ฐ€ ์ ์ ˆํ•œ ์ข…์†์„ฑ ํ•ด๊ฒฐ ์‹œ์Šคํ…œ์˜ ํ•„์š”์„ฑ์œผ๋กœ ์ธํ•ด ์ฐจ๋‹จ๋˜์–ด ์žˆ์ง€๋งŒ pip upgrade ๋Š” ์–ธ์ œ๋“ ์ง€ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ๊ทธ ๋ถ€๋ถ„์—์„œ ์ผํ•˜๊ธฐ๋ฅผ ์›ํ•œ๋‹ค๋ฉด ๊ทธ๊ฒƒ์€ ๋งค์šฐ ๊ต‰์žฅํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค :-).

( ์—ฌ๊ธฐ์—์„œ ์‹œ์ž‘ ํ•˜๋Š” ์Šค๋ ˆ๋“œ์™€ @dstufft ์˜ ํšŒ์‹ ๋„ ์—ฌ๊ธฐ ์—์„œ ์ฐธ์กฐํ•˜๊ณ  ์œ„์˜ ํ‰๊ฐ€์— ๋™์˜ํ•˜๋Š” ๋Œ“๊ธ€์„ ์—ฌ๊ธฐ์—์„œ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค .)

์—ฌ๊ธฐ์— 1๋…„ ์ „์˜ pypa-dev ๋ชฉ๋ก์˜ ๋˜ ๋‹ค๋ฅธ ํ† ๋ก ์ด ์žˆ์Šต๋‹ˆ๋‹ค( pip upgrade FOO ๊ฐ€ ์ง€๊ธˆ ์ˆ˜ํ–‰๋  ์ˆ˜ ์žˆ๋‹ค๋Š” ๋ฐ ๋™์˜ํ•จ) https://groups.google.com/forum/#!searchin/pypa -dev/pip$20 ์—…๊ทธ๋ ˆ์ด๋“œ/pypa-dev/vVLmo1PevTg/oBkHCPBLb9YJ

@qwcode ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค! ๋˜ํ•œ ๋ฐฉ๊ธˆ https://pip.pypa.io/en/latest/user_guide/#only -if-needed-recursive-upgrade์—์„œ ์ƒˆ๋กœ์šด ์„ค๋ช…์„ ๋ณด์•˜๋Š”๋ฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.

+1

๋‚ด๊ฐ€ ํ‹€๋ฆฌ์ง€ ์•Š๋Š” ๊ฒฝ์šฐ:

xxx๊ฐ€ ์„ค์น˜๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ:

  • pip upgrade xxx ๋Š” pip install xxx
  • pip upgrade xxx --recursive ๋Š” pip install xxx --upgrade

xxx๊ฐ€ ์„ค์น˜๋œ ๊ฒฝ์šฐ:

  • pip upgrade xxx --recursive ๋Š” ์—ฌ์ „ํžˆ pip install xxx --upgrade (์„ค๊ณ„์ƒ).
  • ๊ทธ๋Ÿฌ๋‚˜ ํ˜„์žฌ pip upgrade xxx ์— ํ•ด๋‹นํ•˜๋Š” ํ•ญ๋ชฉ์ด ์—†์œผ๋ฉฐ pip install xxx --upgrade-only-if-needed/--upgrade-lazy ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

pip install ์ƒˆ ์˜ต์…˜์„ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ์ƒˆ ๋ช…๋ น์˜ ์ถ”๊ฐ€ ๊ฐ€์น˜๊ฐ€ ๋ฌด์—‡์ธ์ง€ ๋ช…ํ™•ํ•˜์ง€ ์•Š์Šต๋‹ˆ๊นŒ?

pip install ์ƒˆ ์˜ต์…˜์„ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ์ƒˆ ๋ช…๋ น์˜ ์ถ”๊ฐ€ ๊ฐ€์น˜๊ฐ€ ๋ฌด์—‡์ธ์ง€ ๋ช…ํ™•ํ•˜์ง€ ์•Š์Šต๋‹ˆ๊นŒ?

๊ธฐ๋ณธ pip install -U ๋™์ž‘์€ ๋งŽ์€ ํ”„๋กœ์ ํŠธ์—์„œ ํ—ˆ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์œ„์˜ ๋‚ด ์˜๊ฒฌ์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค(https://github.com/pypa/pip/issues/59#issuecomment-52434862). ๊ทธ๋ฆฌ๊ณ  ์—ฌ๊ธฐ์— ๋” ๊ธด ์„ค๋ช…์ด ์žˆ์Šต๋‹ˆ๋‹ค: http://article.gmane.org/gmane.comp.python.distutils.devel/24218

ํ—ˆ์šฉ๋˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ pip install --upgrade ์‚ฌ์šฉ์„ pip upgrade ๋กœ ๋ณ€๊ฒฝํ•  ๊ณ„ํš์ž…๋‹ˆ๊นŒ?
ํ˜„์žฌ pip install --upgrade ์‚ฌ์šฉ๋ฒ•์„ pip install --upgrade-only-needed ๋กœ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?
์ƒˆ ๋ช…๋ น์€ ์ƒˆ ์˜ต์…˜์ด ์ œ๊ณตํ•  ์ˆ˜ ์—†๋Š” ๋ฌด์—‡์„ ์ œ๊ณตํ•ฉ๋‹ˆ๊นŒ?

์˜จํ†ต ์†Œ์˜ ๊ธธ์„ ํฌ์žฅํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฐ€ ๊ฑฑ์ •ํ•˜๋Š” ๊ฒƒ์€ @rgommers์˜ ๊ฐœ์ธ์ ์ธ ์‚ฌ์šฉ์ด ์•„๋‹ˆ๋ผ ๊ทธ์˜ ์‚ฌ์šฉ์ž์ž…๋‹ˆ๋‹ค. ์‚ฌ๋žŒ๋“ค์€ ๊ทธ๋“ค์ด ๋” ์ž˜ ์•Œ์ง€ ๋ชปํ•œ๋‹ค๋ฉด "๋ช…๋ฐฑํ•œ" ๋‹ต์— ๋„๋‹ฌํ•  ๊ฒƒ์ด๊ณ  ์ง€๊ธˆ ๋‹น์žฅ์€ ๋ช…๋ฐฑํ•œ ๋‹ต์ด Python ์ƒํƒœ๊ณ„์˜ ์ผ๋ถ€ ์ฃผ์š” ๋ถ€๋ถ„์— ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฌผ๋ก . ์‚ฌ๋žŒ๋“ค์€ ๋ฌธ์„œ๋ฅผ ์ฝ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ ์šฐ๋ฆฌ๋Š” ์šฐ๋ฆฌ๊ฐ€ ์ฐพ์„ ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“  ์„ค์น˜ ๋ฌธ์„œ๋ฅผ ์ˆ˜์ •ํ•  ๊ฒƒ์ด์ง€๋งŒ ์‚ฌ์šฉ์ž๊ฐ€ -U ๋˜๋Š” --upgrade ๋ฅผ ๋ณด๋Š” ์ฆ‰์‹œ ์‚ฌ์šฉํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์‚ฌ๋žŒ๋“ค์ด --no-deps ๋˜๋Š” --only-as-needed ๋˜๋Š” ๋ฌด์—‡์ด๋“  ๊ฐ„์— ์‹ฌ๊ฐํ•˜๊ฒŒ ๋ฌผ๋ฆฐ ์ ์ด ์žˆ๊ธฐ ์ „์— ์‚ฌ์šฉํ•  ๊ฐ€๋Šฅ์„ฑ์€ ํฌ๋ฐ•ํ•ฉ๋‹ˆ๋‹ค.

ํ˜„์žฌ pip install --upgrade ์‚ฌ์šฉ๋ฒ•์„ pip install --upgrade-only-needed ๋กœ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

๊ทธ๋ฆฌ๊ณ  ๋ถ„๋ช…ํžˆ ํ•˜์ž๋ฉด, ์šฐ๋ฆฌ๋Š” ์ง€๊ธˆ pip install --upgrade ํ”ผํ•˜๊ณ  _๊ทธ๋ฆฌ๊ณ _ ์ด๊ฒƒ ๋•Œ๋ฌธ์— install_requires ์‚ฌ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒŒ ์–ผ๋งˆ๋‚˜ ๋‚˜์œ์ง€.

์—ฌ๊ธฐ์— ์•ฝ๊ฐ„์˜ ์˜คํ•ด๊ฐ€ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. IIUC @xavfernandez๋Š” ๋น„์žฌ ๊ท€์  ์—…๊ทธ๋ ˆ์ด๋“œ ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•˜๋Š” ๋ฐ ๋™์˜ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋“ค์˜ ์งˆ๋ฌธ์€ ์™œ ํ•ด๋‹น ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ UI๊ฐ€ pip install ์— ๋Œ€ํ•œ ์ƒˆ๋กœ์šด ์˜ต์…˜ ๋Œ€์‹ ์— ์ƒˆ๋กœ์šด ์ตœ์ƒ์œ„ ๋ช…๋ น์ด์–ด์•ผ ํ•˜๋Š”์ง€์ž…๋‹ˆ๋‹ค

@xavfernandez : ํ˜„์žฌ #3194์—์„œ ์ด ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ๊ฐ€์žฅ ๋ช…ํ™•ํ•œ UI๊ฐ€ ๋ฌด์—‡์ธ์ง€์— ๋Œ€ํ•œ ๋…ผ์˜๊ฐ€ ์ง„ํ–‰ ์ค‘์ž…๋‹ˆ๋‹ค.

(๊ทธ๋ฆฌ๊ณ  pip install -U ๋Š” ๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š์œผ๋ฉฐ ์ œ๊ฑฐ๋  ์˜ˆ์ •์ด๋ฏ€๋กœ ์‚ฌ์šฉ์ž๊ฐ€ ์ด๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๊ฒƒ์„ ์–ด๋–ป๊ฒŒ ์•Œ ์ˆ˜ ์žˆ๋Š”์ง€์— ๋Œ€ํ•œ ์งˆ๋ฌธ์— ๋Œ€ํ•œ ๋‹ต๋ณ€์ž…๋‹ˆ๋‹ค :-).)

์—ฌ๊ธฐ์— ์•ฝ๊ฐ„์˜ ์˜คํ•ด๊ฐ€ ์žˆ๋Š” ๊ฒƒ ๊ฐ™์•„์š”

๋‚˜๋Š” ๊ทธ๊ฒƒ์ด ์—†๋‹ค๊ณ  ํ™•์‹ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์˜ˆ, ์šฐ๋ฆฌ๋Š” UI์— ๋Œ€ํ•ด์„œ๋งŒ ํ† ๋ก ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๊ทธ๊ฒŒ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.

๋„ค, UI์— ๋Œ€ํ•ด์„œ๋งŒ ํ† ๋ก ํ•˜๊ณ  ๊ทธ๊ฒƒ์ด ์ค‘์š”ํ•˜๋‹ค๋Š” ๋ฐ ๋™์˜ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋‚ด๊ฐ€ ๋ณผ ์ˆ˜์žˆ๋Š” ๊ฒƒ์€ pip ์—…๊ทธ๋ ˆ์ด๋“œ๊ฐ€ ๋๋‚˜๋ฉด pip install์„ ๊ณ„์† ์‚ฌ์šฉํ•  ์ด์œ ๊ฐ€ ์—†๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค ...
๊ทธ๋ฆฌ๊ณ  ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•˜๋Š” UI๋Š” "pip upgrade foo"๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.

pip install์„ ๊ณ„์† ์‚ฌ์šฉํ•  ์ด์œ ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

์–ด๋–ค ๊ฒƒ์ด ์™œ ๋ฌธ์ œ์ธ๊ฐ€? pip install --upgrade ๋ฅผ ์˜ฌ๋ฐ”๋ฅธ ๋™์ž‘์œผ๋กœ ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒƒ๊ณผ ๊ด€๋ จ๋œ ๋ฌธ์ œ(์ตœ์†Œํ•œ ์œ„์˜ ์ฃผ์„์—์„œ @qwcode ์— ๋Œ€ํ•ด)๋Š” ์ด์ „ ๋ฒ„์ „๊ณผ์˜ ํ˜ธํ™˜์„ฑ์„ ๊นจ๋œจ๋ฆฌ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ pip upgrade ๋Š” ์ค‘๋‹จ์„ ํ”ผํ•˜๊ณ  ์˜ฌ๋ฐ”๋ฅธ ๊ธฐ๋ณธ๊ฐ’์„ ์–ป๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.

@rgommers : ๊ณต์ •ํ•˜๊ฒŒ foo ์„ค์น˜๋˜์ง€ ์•Š์€ ์ƒํƒœ์—์„œ ์™œ ์ €์—๊ฒŒ pip upgrade foo ๋ฅผ ์‹คํ–‰ํ•˜๋ผ๊ณ  ๋งํ–ˆ๋Š”์ง€์— ๋Œ€ํ•ด 0์ด ์•„๋‹Œ ๋ช‡ ๊ฐ€์ง€ ํ˜ผ๋ž€์Šค๋Ÿฌ์šด ์งˆ๋ฌธ์„ ๋ฐ›์„_ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ž‘๋™ํ•˜์ง€ ์•Š์Œ(์ž‘๋™ํ•˜์ง€ ์•Š์„ ๊ฒƒ์ด๋ผ๊ณ  ๊ฐ€์ •ํ•˜๊ณ  ์‹คํ–‰ํ•œ ์ฒ™ํ•˜๋Š” ๋Œ€์‹  ์‹ค์ œ๋กœ ๋ช…๋ น์„ ์‹คํ–‰ํ•˜๋ ค๊ณ  ํ•  ๋•Œ๊นŒ์ง€ ์•ž๋’ค๋กœ ๋…ผ์Ÿ)

#3194์—์„œ ๋‚˜๋Š” ์•„๋งˆ๋„ ์˜ฌ๋ฐ”๋ฅธ ๋ฐฉ๋ฒ•์€ --upgrade ์—์„œ pip install --upgrade ๋ฅผ ์ œ๊ฑฐํ•˜๊ณ  pip install ํ•ญ์ƒ ๋ช…์‹œ์ ์œผ๋กœ ๋ช…๋ช…๋œ ํ•ญ๋ชฉ์˜ ์—…๊ทธ๋ ˆ์ด๋“œ๋ฅผ ์ˆ˜ํ–‰ํ•˜๋„๋ก ํ•˜๊ณ  ๊ธฐ๋ณธ์ ์œผ๋กœ --recursive ํ”Œ๋ž˜๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ข…์†์„ฑ์— ๋Œ€ํ•œ ์ตœ์†Œ ์—…๊ทธ๋ ˆ์ด๋“œ ์ „๋žต์œผ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œ ์‹œ ํ˜„์žฌ ๋™์ž‘์„ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.

๋‚˜๋Š” # 3194๋กœ ๊ธฐ๋ณธ UX๊ฐ€ ๋  ๊ฒƒ ๊ฐ™์€ ๋Š๋‚Œ ๋™์˜ ์ƒ๊ฐ pip upgrade foo ๋Œ€์‹  pip install [-U] foo . ๋‚ด๊ฐ€ ๊ฐ€์ง„ ์œ ์ผํ•œ ๋ฌธ์ œ๋Š” ๋‘ ๊ฐœ์˜ ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ผ์ข…์˜ ํ˜ผ๋ž€์Šค๋Ÿฝ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๊ณ  pip upgrade ๊ฐ€ ์‚ฌ๋žŒ๋“ค์ด ์‚ฌ์šฉํ•˜๊ธฐ์— "์˜ฌ๋ฐ”๋ฅธ" ๋ช…๋ น์ด๋ผ๊ณ  ์ƒ๊ฐํ•œ๋‹ค๋Š” ์ ์„ ๊ฐ์•ˆํ•  ๋•Œ ๋ช…๋ฐฑํ•œ ์ด๋ฆ„์€ ์ž˜๋ชป๋œ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค.

๋‚˜๋Š” ํŽธ๋‘ํ†ต์ด ์žˆ์–ด์„œ ์™„์ „ํžˆ ์˜ณ๋‹ค๊ณ  ์ƒ๊ฐํ•˜์ง€ ์•Š์„ ์ˆ˜๋„ ์žˆ์ง€๋งŒ, ๊ทธ ์ œ์•ˆ์— ๋Œ€ํ•œ ์‚ฌ์šฉ ์ค‘๋‹จ ๊ฒฝ๋กœ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ฐพ๋Š” ๊ฒƒ์ด ์˜ฌ๋ฐ”๋ฅธ ๋ฐฉ๋ฒ•์ผ ์ˆ˜ ์žˆ๋‹ค๋Š” ๋Š๋‚Œ์ด ๋“ญ๋‹ˆ๋‹ค.

๊ธ€์Ž„, ๋‚˜๋Š” ์—ฌ๊ธฐ์„œ ํ•˜์œ„ ํ˜ธํ™˜์„ฑ์ด ์ค‘์š”ํ•˜๋‹ค๊ณ  ์ฃผ์žฅํ•˜์ง€ ์•Š์„ ๊ฒƒ์ด๋‹ค. ๋‚˜๋Š” ํ•ญ์ƒ pip install --upgrade ์˜ ๋™์ž‘์„ ๋ณ€๊ฒฝํ•˜๋Š” ๋ฐ ์ฐฌ์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ฐ€์žฅ ๊นจ๋—ํ•˜๊ณ  ๋น„์šฉ์ด ์ ๊ฒŒ ๋“œ๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๊ทธ๊ฒƒ์€ @qwcode ์— ์˜ํ•ด ๊ฑฐ๋ถ€๋œ pip upgrade ๊ฐ€ ์ฐจ์„ ์ฑ…์ด์—ˆ์Šต๋‹ˆ๋‹ค.

์ด์ œ pip install ๋Œ€ํ•œ ๊ธฐ๋ณธ๊ฐ’/๋™์ž‘ ๋ณ€๊ฒฝ์œผ๋กœ ๋Œ์•„๊ฐ€๊ณ  ์‹ถ๋‹ค๋ฉด ์ข‹์Šต๋‹ˆ๋‹ค.

๋‚˜์—๊ฒŒ ์™„์ „ํžˆ ์˜๋ฏธ๊ฐ€์žˆ๋Š” @dstufft - ๋‘ํ†ต์ด ๊ทธ๋ ‡๊ฒŒ ๋‚˜์˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. :)

--upgrade ์‚ฌ์šฉ์„ ์ค‘๋‹จํ•˜๋Š” ๋ฐ ๋™์˜ํ•˜๋ฏ€๋กœ ์ด๋ฅผ ์œ ์ง€ํ•˜๊ณ  pip install์— ๋‘ ๊ฐ€์ง€ ์˜ต์…˜์„ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. --upgrade-only-needed ๋ฐ --upgrade-eager ๋‘ ๋ฒˆ์งธ ์˜ต์…˜์€ ์‚ฌ์šฉ ์ค‘๋‹จ๋œ --upgrade์˜ ๋ณ„์นญ์ž…๋‹ˆ๋‹ค.

@xavfernandez ์‚ฌ์šฉ์ž์—๊ฒŒ ๊ฒฐ์ •์„ ๊ฐ•์š”ํ•˜๋Š” ๊ฒƒ์€ ์ œ ์ƒ๊ฐ์— --upgrade-only-needed ๋ฐ --upgrade-eager ์›ํ•˜๋Š”์ง€ ์ •๋ง ์•Œ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

@xavfernandez ๊ทธ๋ž˜์„œ ๋‹น์‹ ์€ ์ตœ์ข… ์ƒํ™ฉ์—์„œ ๋ช…๋ น์ด pip install --upgrade-only-needed ๋  ๊ฒƒ์ด๋ผ๊ณ  ์ œ์•ˆํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ? ๋ชป์ƒ๊ธด ๊ฒƒ ๊ฐ™๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด npm , hex ๋˜๋Š” Cargo ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์‹œ๋งจํ‹ฑ ๋ฒ„์ „ ๊ณ ์ •์— ํ•ด๋‹นํ•˜๋Š” ๋งคํ•‘์„ ๊ฐ–๋Š” ๊ฒƒ์ด ํ›จ์”ฌ ๋” ์ข‹์Šต๋‹ˆ๋‹ค. (a) PEP 440 ๋ฒ„์ „์€ ์˜๋ฏธ๋ก ์  ๋ฒ„์ „ ๊ด€๋ฆฌ์— ์ •ํ™•ํ•˜๊ฒŒ ๋งคํ•‘๋˜์ง€ ์•Š๊ณ  ๋งคํ•‘๋  ์ˆ˜ ์—†๊ณ  (b) ์ „์ฒด Python ์ปค๋ฎค๋‹ˆํ‹ฐ๋Š” ํ•ด๋‹น ๋ฆด๋ฆฌ์Šค์—์„œ ์˜๋ฏธ๋ก ์  ๋ฒ„์ „ ๊ด€๋ฆฌ์— ๋ฐ˜๋“œ์‹œ ์˜ํ–ฅ์„ ๋ฏธ์น˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— Python ์ปจํ…์ŠคํŠธ์—์„œ ์กฐ์ •์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. PEP 440.

๊ทธ๋Ÿผ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ํŠน์ • ๋ฒ„์ „์„ ๊ณ ์ •ํ•œ๋‹ค๋Š” ๊ฐœ๋…๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์ด๋Ÿฌํ•œ ๋ผ์ธ์„ ๋”ฐ๋ฅด๋Š” ๊ฒƒ์ด ๋งค์šฐ ๋„์›€์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ œ์•ฝ ์กฐ๊ฑด์„ ๊ฐ์•ˆํ•  ๋•Œ ๋‹จ๊ธฐ์ ์œผ๋กœ ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ์˜ต์…˜ ์ค‘ ํ•˜๋‚˜๋Š” homebrew์˜ upgrade ๋ฐ upgrade --all ๋ช…๋ น๊ณผ ์œ ์‚ฌํ•œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒƒ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ).

๊ทธ๋Ÿฌ๋‚˜ ์žฅ๊ธฐ์ ์œผ๋กœ ๋ณด๋ฉด Python ํŒจํ‚ค์ง• ์ปค๋ฎค๋‹ˆํ‹ฐ์—์„œ ๋ฒ„์ „์ด ๋ฌด์—‡์„ ์˜๋ฏธํ•˜๋Š”์ง€์— ๋Œ€ํ•œ ๊ณต์œ  ๊ทœ์น™์„ ๋งŒ๋“ค๊ณ  ์ด์— ๋Œ€ํ•œ pip ์ง€์›์„ ๊ตฌ์ถ•ํ•˜๋Š” ๊ฒƒ์ด ํฐ ๋ถ€๋ถ„์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ช…๋ฐฑํ•œ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ๊ฒฝ๋กœ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

ํ• ๋ฒ„์ „ X:

  • ์ถ”๊ฐ€ ์˜ต์…˜ pip install --eager , pip install --no-eager , ์—ฌ๊ธฐ์„œ --eager ๋Š” ๋ฒ„์ „ ์ œํ•œ์ด ์—†๋Š” ์š”๊ตฌ ์‚ฌํ•ญ์— ๋Œ€ํ•ด ์ด๋ฏธ ์„ค์น˜๋œ ๋ฒ„์ „์ด ์žˆ๋”๋ผ๋„ ์ตœ์‹  ๋ฒ„์ „์„ ์„ค์น˜ํ•˜๋ ค๊ณ  ์‹œ๋„ํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. --no-eager ๋Š” ์„ค์น˜๋œ ๋ฒ„์ „์ด ์žˆ์œผ๋ฉด ๋งŒ์กฑํ•œ๋‹ค๋Š” ์˜๋ฏธ์ž…๋‹ˆ๋‹ค.
  • ๋˜ํ•œ ํ˜„์žฌ -U ์˜๋ฏธ ์ฒด๊ณ„๋กœ pip install --eager-recursive ์˜ต์…˜์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.
  • --no-eager ๋Š” ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ ์œ ์ง€๋ฉ๋‹ˆ๋‹ค.
  • ์ด๋Ÿฌํ•œ ์˜ต์…˜์ด ์ง€์ •๋˜์ง€ ์•Š๊ณ  pip install ์— ๋ฒ„์ „ ๋ฒˆํ˜ธ๊ฐ€ ์ฒจ๋ถ€๋˜์ง€ ์•Š์€ ์š”๊ตฌ ์‚ฌํ•ญ์ด ์ „๋‹ฌ๋˜๊ณ  ์ด ์š”๊ตฌ ์‚ฌํ•ญ์ด ์ด๋ฏธ ์ถฉ์กฑ๋˜๋ฉด ํŒจํ‚ค์ง€๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜์ง€ ์•Š์•˜์ง€๋งŒ ์•ž์œผ๋กœ๋Š” ์—…๊ทธ๋ ˆ์ด๋“œํ•  ๊ฒƒ์ด๋ผ๋Š” ๊ฒฝ๊ณ ๋ฅผ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค. ํ˜„์žฌ ๋™์ž‘์„ ์œ ์ง€ํ•˜๋ ค๋ฉด --no-eager ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • pip install -U ์— ๋Œ€ํ•œ ์‚ฌ์šฉ ์ค‘๋‹จ ๊ฒฝ๊ณ  ์ถ”๊ฐ€ pip install --eager-recursive

ํ• ๋ฒ„์ „ Y:

  • pip install ์˜ ๊ธฐ๋ณธ๊ฐ’์„ --eager

ํ• ๋ฒ„์ „ Z:

  • pip install -U ์ œ๊ฑฐ

๋‚˜๋Š” --eager ์—ด๋งํ•˜๊ธฐ ๋•Œ๋ฌธ์— Y์™€ Z๋ฅผ ๋‹ค๋ฅธ ๋ฒ„์ „์œผ๋กœ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์•„๋งˆ๋„ ์šฐ๋ฆฌ๋Š” ๋” ๊ณต๊ฒฉ์ ์ธ ์ผ์ •์œผ๋กœ ๊ทธ ๋ณ€๊ฒฝ์„ ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ๋งŽ์€ ๋ฌธ์„œ๊ฐ€ ์ด๋ฏธ ์ฐธ์กฐํ•˜๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— pip install -U ์ž ์‹œ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค. ํ•ด๋ฅผ ๋ผ์น˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋ถ„๋ช…ํžˆ Y = Z๋Š” ์˜ต์…˜์ž…๋‹ˆ๋‹ค :-)

@chriskrycho : ๋ชจ๋“  ๊ฒƒ์ด ์ข‹์€ ๊ฒƒ ๊ฐ™์ง€๋งŒ ์ด ๋…ผ์˜๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ๋ช…์‹œ์ ์œผ๋กœ ์ตœ์‹  ๋ฒ„์ „์˜ ํŒจํ‚ค์ง€๋กœ ์—…๊ทธ๋ ˆ์ด๋“œ๋ฅผ ์š”์ฒญํ•˜๋ ค๊ณ  ํ•˜๋Š” ์ƒํ™ฉ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๋Š” ์˜ค๋Š˜๋‚  ์ด๋ฏธ ์ผ๋ฐ˜์ ์œผ๋กœ ๋ฐœ์ƒํ•˜๋Š” ์ƒํ™ฉ์ด๋ฉฐ ์šฐ๋ฆฌ๋Š” ์ข‹์€ ๋Œ€๋‹ต์ด ์—†์Šต๋‹ˆ๋‹ค. ์•„์ง ๊ณ ์ • ์ง€์›์„ ์š”์ฒญํ•˜๋Š” ๋ฒ„๊ทธ๊ฐ€ ์—ด๋ ค ์žˆ๋Š”์ง€ ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ ๊ทธ๋ ‡์ง€ ์•Š์€ ๊ฒฝ์šฐ ์‹œ์ž‘ํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ?

์ „์ ์œผ๋กœ; ๋‚ด ์š”์ (์ด์ œ ๋‚˜๋Š” ์™„์ „ํžˆ ๋ช…์‹œํ•˜์ง€ ๋ชปํ–ˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค!)์€ ์—ฌ๊ธฐ์„œ ์ฑ„ํƒ๋œ ์†”๋ฃจ์…˜์ด ๋ฏธ๋ž˜์— ๊ทธ๋Ÿฐ ์ข…๋ฅ˜์˜ ์••์ •์„ ์ทจํ•˜๋Š” ๊ฒƒ๊ณผ ์ถฉ๋Œํ•˜์ง€ ์•Š์•„์•ผ ํ•œ๋‹ค๋Š” ์ ์— ์ฃผ๋ชฉํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

pip์˜ ์ผ๋ฐ˜์ ์ธ ์‚ฌ์šฉ ์ค‘๋‹จ ๊ฒฝ๋กœ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ์‹œ๊ฐ„/๋ฒ„์ „ ๊ธฐ๋ฐ˜? ์ œ๊ฑฐํ•˜๊ธฐ ์ „์— ์–ด๋–ค ๊ฒƒ์ด ๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š์•„์•ผ ํ•ฉ๋‹ˆ๊นŒ?

๊ทธ๊ฑด ๊ทธ๋ ‡๊ณ , "์—ด์‹ฌํžˆ"๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์ดํ•ดํ•˜์ง€ ๋ชปํ•˜๋Š” ๋‹จ์–ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. recursive / only-as-needed recursive / always recursive๊ฐ€ ํ›จ์”ฌ ๋” ๋ช…ํ™•ํ•ฉ๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ๋‘ ๊ฐ€์ง€ ๋ฒ„์ „์˜ ์‚ฌ์šฉ ์ค‘๋‹จ ์ฃผ๊ธฐ๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

๋‚ด๊ฐ€ ๊ฐ€์ •ํ•˜๋Š” ์ฃผ์š” ๋ฒ„์ „? ๋ถ€ ๋ฒ„์ „์€ ์ •๋ง ๋น ๋ฆ…๋‹ˆ๋‹ค(7.0 -> 7.1์€ ํ•œ ๋‹ฌ์ด์—ˆ์Šต๋‹ˆ๋‹ค). ์ผ๋ฐ˜์ ์œผ๋กœ ์ฃผ์š” ๋ฒ„์ „ ์‚ฌ์ด์— ๋ฐ˜๋…„์ด ์žˆ์œผ๋ฏ€๋กœ ์‚ฌ์šฉ ์ค‘๋‹จ ๊ฒฝ๊ณ ๋Š” 1๋…„์ž…๋‹ˆ๊นŒ?

๋„ค, ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค. ์ฃผ์š” ๋ฒ„์ „. 8.x์—์„œ ๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š” ํ•ญ๋ชฉ์ด ์žˆ์œผ๋ฉด ๋‚˜๋จธ์ง€ 8.x์—๋Š” ๋…ธ๋ž€์ƒ‰ ๊ฒฝ๊ณ , 9.x์—๋Š” ๋นจ๊ฐ„์ƒ‰ ๊ฒฝ๊ณ , 10.x์—์„œ๋Š” ์ œ๊ฑฐ๋ฉ๋‹ˆ๋‹ค.

๊ฐ์‚ฌ ํ•ด์š”.

์—์„œ @dstufft์˜ ์ฝ”๋ฉ˜ํŠธ๋ฅผ ๋ณต์‚ฌ https://github.com/pypa/pip/pull/3194#issuecomment -152357835 ์—ฌ๊ธฐ,์ด ์ƒํ™ฉ์˜ ๊ฐ€์žฅ ์š”์•ฝ ๋•Œ๋ฌธ์— :

๋‚ด ์ƒ๊ฐ์— tl;dr์€ "๊ธฐ๋ณธ" ๋™์ž‘์„ ์ˆ˜์ •ํ•ด์•ผ ํ•œ๋‹ค๊ณ  ์™„์ „ํžˆ ์ƒ๊ฐํ•˜๊ณ  ์ˆ˜์ •ํ•˜๋Š” ํŠน์ • ๊ตฌํ˜„์„ ํ•ด๊ฒฐํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

  1. UX๋ฅผ โ€‹โ€‹pip install --upgrade๋กœ ์œ ์ง€ํ•˜๊ณ  ๊ธฐ๋ณธ๊ฐ’์„ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค.
  2. "์˜ฌ๋ฐ”๋ฅธ" ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ UX๋ฅผ pip ์—…๊ทธ๋ ˆ์ด๋“œ๋กœ ์ด๋™ํ•˜๊ณ  --recursive ํ”Œ๋ž˜๊ทธ๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.
  3. UX๋ฅผ โ€‹โ€‹pip install๋กœ ์ด๋™ํ•˜๊ณ  --upgrade๋ฅผ ์ œ๊ฑฐํ•˜๊ณ  --recursive ํ”Œ๋ž˜๊ทธ๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

๋‚ด 2c:

(1) UX๊ฐ€ ์ข‹๊ณ  ์ง€๊ธˆ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
(2) ์กฐ๊ธˆ ๋” ๋‚˜์œ UX( install ๋ฐ upgrade ), ์ง€๊ธˆ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Œ
(3) ๋‘ ๋ฒˆ์งธ๋กœ ์ข‹์€ UX, pip install ์€ ์ง€๊ธˆ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ --upgrade ์ œ๊ฑฐ๋Š” 10.0์—์„œ๋งŒ ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค(8.0 ๋ฐ 9.0์—์„œ ๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š์Œ).

(1)์— ๋Œ€ํ•œ ํ•˜์œ„ ํ˜ธํ™˜์„ฑ ๋ฌธ์ œ(์–ด๋Š ์ชฝ์ด๋“  ์‚ฌ์†Œํ•ด์•ผ ํ•จ)๊ฐ€ (3)์— ๋Œ€ํ•œ ๊ฒƒ๋ณด๋‹ค ์™œ ๋‚˜์œ์ง€ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ (1)์ด ๊ฐ€์žฅ ์ข‹์€ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. bw compat๊ฐ€ ์ •๋ง ๊ฑฑ์ •๋œ๋‹ค๋ฉด (2)๋ฅผ ์„ ํƒํ•˜์‹ญ์‹œ์˜ค.

์–ด์จŒ๋“ , ๊ทธ๊ฒƒ์„ ๋ฐค์ด๋ผ๊ณ  ๋ถ€๋ฅผ ์‹œ๊ฐ„.

(3)๊ณผ (1)์˜ ์ฐจ์ด์ ์€ ์„ค์น˜ ๋˜๋Š” ์—…๊ทธ๋ ˆ์ด๋“œ๊ฐ€ ์‚ฌ๋žŒ๋“ค์ด ์›ํ•˜๋Š” ๊ฐ€์žฅ ์ผ๋ฐ˜์ ์ธ ์ž‘์—…์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜๋Š”์ง€ ์—ฌ๋ถ€์— ๋‹ฌ๋ ค ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด (3)๊ณผ ๊ฐ™์ด ์งง์€ ๋ช…๋ น์œผ๋กœ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด ๊ฐ€์žฅ ์ข‹์Šต๋‹ˆ๋‹ค. ์–ด๋Š ์ชฝ์ด๋“  ํฐ ๋ฌธ์ œ๋Š” ์•„๋‹™๋‹ˆ๋‹ค.

๊ทธ๊ฑด ๊ทธ๋ ‡๊ณ , "์—ด์‹ฌํžˆ"๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์ดํ•ดํ•˜์ง€ ๋ชปํ•˜๋Š” ๋‹จ์–ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. recursive / only-as-needed recursive / always recursive๊ฐ€ ํ›จ์”ฌ ๋” ๋ช…ํ™•ํ•ฉ๋‹ˆ๋‹ค.

๋‚˜๋Š” "์—ด์‹ฌํžˆ" ์ฒ ์ž๋ฒ•์— ์ „ํ˜€ ๊ด€์‹ฌ์ด ์—†์ง€๋งŒ ์žฌ๊ท€๋Š” ์—…๊ทธ๋ ˆ์ด๋“œ๋ฅผ ์ผœ๊ณ  ๋„๋Š” ์ฃผ์š” ๋‹จ์–ด๋กœ ์ดํ•ด๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. --upgrade-non-recursive (๋ฏธ๋ž˜์˜ ๊ธฐ๋ณธ๊ฐ’), --upgrade-recursive , --upgrade-none ์ •๋„๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•˜์ง€๋งŒ ์—ฌ์ „ํžˆ ํ˜ผ๋ž€์Šค๋Ÿฌ์šด ์žฌ๊ท€ ๋™์ž‘์ด ์ „๊ฒฝ์— ์žˆ์Šต๋‹ˆ๋‹ค( --upgrade-non-recursive ๋Š” ๋‚ด๊ฐ€ ์ด๋ฏธ ๋ ˆ๊ฑฐ์‹œ -U ์˜ต์…˜์˜ ์ด์ƒํ•œ ์žฌ๊ท€ ๋™์ž‘์— ์ต์ˆ™ํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ๋ฅผ ์˜๋ฏธํ•˜๋ฉฐ --upgrade-none ๋Š” ์ž์ฒด ์œ ์ง€๋ฅผ ์œ„ํ•ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ์—๋„ ํŒจํ‚ค์ง€๊ฐ€ ์—…๊ทธ๋ ˆ์ด๋“œ๋˜์ง€ ์•Š๋„๋ก ํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ์ž˜๋ชป ๋“ค๋ฆฝ๋‹ˆ๋‹ค. ์ผ๊ด€์„ฑ.

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

--upgrade-non-recursive (ํ–ฅํ›„ ๊ธฐ๋ณธ๊ฐ’) ...

๋‹น์—ฐํžˆ ํ˜ผ๋ž€์Šค๋Ÿฝ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด ์Šค์œ„์น˜๋ฅผ ์ „ํ˜€ ์ œ๊ณตํ•˜์ง€ ์•Š๋Š” ๊ฐ€์žฅ ๊ฐ„๋‹จํ•œ ์˜ต์…˜์„ ๋ฌด์‹œํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ ๋™์ž‘๊ณผ ๋™์ผํ•˜๋‹ค๋ฉด ์™œ ํ•„์š”ํ• ๊นŒ์š”?

(3)๊ณผ (1)์˜ ์ฐจ์ด์ ์€ ์„ค์น˜ ๋˜๋Š” ์—…๊ทธ๋ ˆ์ด๋“œ๊ฐ€ ์‚ฌ๋žŒ๋“ค์ด ์›ํ•˜๋Š” ๊ฐ€์žฅ ์ผ๋ฐ˜์ ์ธ ์ž‘์—…์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜๋Š”์ง€ ์—ฌ๋ถ€์— ๋‹ฌ๋ ค ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

"์„ค์น˜"๋ฅผ ๊ธฐ๋Œ€ํ•ฉ๋‹ˆ๋‹ค. ์ ์–ด๋„ ๋‚˜๋Š” ์ผ๋ถ€๋Ÿฌ ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š” ํŒจํ‚ค์ง€๋งŒ ์—…๊ทธ๋ ˆ์ด๋“œํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ์ง€๋งŒ ํฅ๋ฏธ๋กญ๊ณ  ์œ ์šฉํ•œ ๊ฒƒ์„ ๋ณผ ๋•Œ๋งˆ๋‹ค ๋‹จ์ˆœํžˆ pip install pkgname ๋–จ์–ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค.

(์ผ๋ฐ˜ ์‚ฌ์šฉ์ž๋Š” ์•„๋‹ˆ๋ฏ€๋กœ ๋‚ด ์˜ˆ์ƒ์ด ํ‹€๋ฆด ์ˆ˜ ์žˆ์Œ)

๋‚˜๋Š” ๋‚ด๊ฐ€ ์ฐฌ์„ฑํ•  ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•œ๋‹ค:

  • pip install ์˜ ๋ณ„์นญ์ด ๋  ์ƒˆ pip upgrade ์—†์Œ
  • pip install ( --upgrade* ์˜ต์…˜ ์—†์Œ) ๋™์ž‘์ด ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์Œ
  • pip install --some_name ๋Š” ์ข…์†์„ฑ์ด ์•„๋‹Œ ๋ช…๋ น์ค„์— ์ง€์ •๋œ ํŒจํ‚ค์ง€๋งŒ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.
  • pip install --some_other_name ์ด์ „ --upgrade ๋™์ž‘์„ ๊ณ„์† ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‹ค์Œ ๋‘ ๊ฐ€์ง€ ์˜ต์…˜์ด ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์šฐ๋ฆฌ๋Š” ์‚ฌ์šฉ ์ค‘๋‹จ ๊ฒฝ๋กœ๊ฐ€ ํ•„์š”ํ•˜์ง€ ์•Š๊ฑฐ๋‚˜ ์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด --some_name ๋Š” --upgrade ์žˆ๊ณ  --some_other_name ๋Š” ๊ฐ€์žฅ ์ข‹์•„ ๋ณด์ด๋Š” ๊ฒƒ์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋น„์ถ”์ฒœ ๊ฒฝ๋กœ๊ฐ€ ํ•„์š”ํ•˜๋ฉด pip8์˜ --upgrade ๋Š” ๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๊ฒฝ๊ณ ๋ฅผ ํ‘œ์‹œํ•˜๋ฉฐ ์ด์ „ ๋™์ž‘์„ ์œ ์ง€ํ•˜๊ฑฐ๋‚˜ ๋” ์•ˆ์ „ํ•œ --some_name ์ „ํ™˜ํ•˜๋ ค๋ฉด --some_other_name ๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ํ•„์š”ํ•œ ๊ฒฝ์šฐ์—๋งŒ ์ง€์ •๋œ ํŒจํ‚ค์ง€ ๋ฐ ํ•ด๋‹น ์ข…์†์„ฑ์„ ์—…๊ทธ๋ ˆ์ด๋“œํ•ฉ๋‹ˆ๋‹ค.

์ด ๋‘ ๋ฒˆ์งธ ๊ฒฝ์šฐ์—๋Š” --some_name ๊ฐ€ --upgrade ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค . ๋”ฐ๋ผ์„œ --some_name ๋ฐ --some_other_name ๋Œ€ํ•œ ๋‘ ๊ฐœ์˜ ์ƒˆ ์˜ต์…˜ ์ด๋ฆ„์„ ์ฐพ์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋ช…๋ฐฑํ•œ "์ตœ๊ณ " ์†”๋ฃจ์…˜์€ pip install ๋ฅผ ๋ช…๋ น์œผ๋กœ ์œ ์ง€ํ•˜๊ณ  --upgrade ์˜ ๋™์ž‘์„ ๋ณ€๊ฒฝํ•˜์—ฌ ์ข…์†์„ฑ์„ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜์ง€ ์•Š๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์œ ์ผํ•œ ์ง„์งœ ๋ฌธ์ œ๋Š” ์ด์ „ ๋ฒ„์ „๊ณผ์˜ ํ˜ธํ™˜์„ฑ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ํ˜„์žฌ ๋™์ž‘์— ์˜์กดํ•œ๋‹ค๊ณ  ์ฃผ์žฅํ•˜๋Š” _any_ ์‚ฌ์šฉ์ž๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ?

๊ฐœ์ธ์ ์œผ๋กœ, ๋‚˜๋Š” "์ด์ „ ๋ฒ„์ „๊ณผ์˜ ํ˜ธํ™˜์„ฑ์„ ์œ„ํ•ด ๋…ธ๋ ฅํ•œ๋‹ค"๋Š” ๊ฒฌํ•ด๋ฅผ ์„ ํ˜ธํ•ฉ๋‹ˆ๋‹ค. ํ˜„์žฌ ๋™์ž‘์€ ์‹ค์ œ๋กœ ๋ฒ„๊ทธ์ด๋ฉฐ ์ด ๋ณ€๊ฒฝ์€ ๋ฒ„๊ทธ ์ˆ˜์ •์ด ๋  ๊ฒƒ์ด๋ผ๊ณ  ์ฃผ์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์–ด๋Š ์‹œ์ ์—์„œ ์šฐ๋ฆฌ๋Š” ์ข‹์€ ์ง€์ ์— ๋„๋‹ฌํ–ˆ๋‹ค๊ณ  ๋งํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์šฐ๋ฆฌ๋Š” ์ด์ „ ๋ฒ„์ „๊ณผ์˜ ํ˜ธํ™˜์„ฑ์— ๋Œ€ํ•ด ํ›จ์”ฌ ๋” ์—„๊ฒฉํ•œ ๊ด€์ ์„ ์ทจํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๊ฐ€ ์•„์ง ๊ทธ ์‹œ์ ์— ์žˆ์ง€ ์•Š๋‹ค๊ณ  ์ƒ๊ฐํ•˜์ง€๋งŒ, ๊ทธ ์‹œ์ ์— ๋„๋‹ฌํ•˜๊ธฐ ์œ„ํ•ด ์•„์ง ํ•ด์•ผ ํ•  ์ผ์ด ๋ฌด์—‡์ธ์ง€ ์ปค๋ฎค๋‹ˆํ‹ฐ์— ์•Œ๋ฆฌ๊ธฐ ์‹œ์ž‘ํ•ด์•ผ ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

์„ค์น˜๋œ ๋ชจ๋“  ํŒจํ‚ค์ง€๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋ ค๋ฉด ์ผ์ข…์˜ pip install --upgrade :all: ๋ช…๋ น์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค(IMO). ๊ทธ๋Ÿฌ๋‚˜ ๊ทธ๊ฒƒ์€ ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์ด๋ฏ€๋กœ ์—ฌ๊ธฐ์„œ๋Š” ๊ด€๋ จ์ด ์—†์Šต๋‹ˆ๋‹ค.

ํ˜„์žฌ ๋™์ž‘์€ ํŠนํžˆ ๋‹จ์ผ ํ”„๋กœ์ ํŠธ๊ฐ€ ์•„๋‹ˆ๋ผ ์‹ค์ œ๋กœ ํ”„๋กœ์ ํŠธ ๋ชจ์Œ์ธ ํ”ผ๋ผ๋ฏธ๋“œ์™€ ๊ฐ™์€ ํ”„๋กœ์ ํŠธ์— ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค. ํ”ผ๋ผ๋ฏธ๋“œ์™€ ๋ชจ๋“  ์ข…์†์„ฑ์„ ์ตœ์‹  ๋ฒ„์ „์œผ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๊ธฐ ์œ„ํ•ด pip install --upgrade-recursive Pyramid ์™€ ๊ฐ™์€ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์œผ๋ฉด ์œ ์šฉํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์žฌ๊ท€ ํ•ญ๋ชฉ์„ ๋ชจ๋‘ ์ œ๊ฑฐํ•˜๋ฉด ๋ชจ๋“  ์ข…์†์„ฑ์„ ์ˆ˜๋™์œผ๋กœ ์ถ”์ ํ•˜๊ณ  pip install --upgrade Pyramid dep1 dep2 dep3 dep4 (์ „์ฒด ์ข…์†์„ฑ ํŠธ๋ฆฌ ํฌํ•จ)๋ฅผ ์ˆ˜ํ–‰ํ•˜๊ฑฐ๋‚˜ ๊ฐ€์ƒ์˜ pip install --upgrade :all: ํ•˜๊ณ  ์ถ”๊ฐ€ ์—…๊ทธ๋ ˆ์ด๋“œ๋ฅผ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ์‹ค์ œ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๊ณ  ์‹ถ์€ ๊ฒƒ๋ณด๋‹ค. #3194์—์„œ ์ตœ์†Œํ•œ ํ•œ ๋ช…์˜ ์‚ฌ์šฉ์ž๊ฐ€ ํ”Œ๋ž˜๊ทธ๋ฅผ ํ†ตํ•ด ํ˜„์žฌ ๋™์ž‘์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ธฐ๋ฅผ ์›ํ•œ๋‹ค๊ณ  ์–ธ๊ธ‰ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ๊ฒฝ์šฐ์— ๋”ฐ๋ผ ์œ ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

pip install ์•”๋ฌต์ ์œผ๋กœ "์ตœ์†Œ" ์—…๊ทธ๋ ˆ์ด๋“œ๋ฅผ ์ˆ˜ํ–‰ํ•˜๋„๋ก ๋งŒ๋“ค์ง€ ์•Š๋Š” ์ด์œ (์ด์ „ ๋ฒ„์ „๊ณผ์˜ ํ˜ธํ™˜์„ฑ ์ œ์™ธ)๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ? ์–ด๋–ค ์ƒํ™ฉ์—์„œ ์‹ค์ œ๋กœ ์„ค์น˜๋งŒ ํ•˜๊ณ  ์—…๊ทธ๋ ˆ์ด๋“œ๋Š” ํ•˜์ง€ ์•Š๊ธฐ๋ฅผ ์›ํ•˜๋Š”์ง€ ์•Œ์•„๋‚ด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค(IOW, ์ตœ์‹  ๋ฒ„์ „์ด ์•„์ง ์„ค์น˜๋˜์–ด ์žˆ์ง€ ์•Š์€ ๊ฒฝ์šฐ์—๋„ ์ข‹์ง€๋งŒ ์„ค์น˜๋˜์–ด ์žˆ๋Š” ๊ฒฝ์šฐ์—๋Š” ๊ทธ๋ ‡์ง€ ์•Š์€ ๊ฒฝ์šฐ). ์„ค์น˜๋จ) ํ˜„์žฌ ๋™์ž‘์„ ์›ํ•˜๋Š” ๊ฒฝ์šฐ์— ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” #3194์—์„œ์™€ ๊ฐ™์ด _new_ pip upgrade [--recursive] ๋ช…๋ น์— ๋Œ€ํ•œ ์•„์ด๋””์–ด๋ฅผ ์ข‹์•„ํ•ฉ๋‹ˆ๋‹ค( install --upgrade ์‚ฌ์šฉ ์ค‘๋‹จ)

ํ˜ธํ™˜์„ฑ์„ ๊นจ๋œจ๋ฆฌ๊ฑฐ๋‚˜ ๋ณต์žกํ•œ ์‚ฌ์šฉ ์ค‘๋‹จ์ด ์žˆ๊ฑฐ๋‚˜ ๋” ๋งŽ์€ ๋ณ€๊ฒฝ ๋˜๋Š” ๋ณต์žก์„ฑ์œผ๋กœ ์ด๋ฏธ ์˜ต์…˜์ด ๋งŽ์€ pip install ๋ถ€๋‹ด์„ ์ฃผ๋Š” ์„ ํƒ์— ๋Œ€ํ•ด ์šฐ๋ คํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ์ €๋Š” ๊ฐœ์ธ์ ์œผ๋กœ "์—…๊ทธ๋ ˆ์ด๋“œ" ๋ช…๋ น์— ๋งค๋ ฅ์„ ๋Š๋‚๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ๋ฐฐํฌํŒ ๋„๊ตฌ๊ฐ€ ์ž‘๋™ํ•˜๋Š” ๋ฐฉ์‹๊ณผ ์œ ์‚ฌํ•˜๊ฒŒ ์—…๊ทธ๋ ˆ์ด๋“œ๋ฉ๋‹ˆ๋‹ค. "์„ค์น˜" ์„ค์น˜ ๋ฐ "์—…๊ทธ๋ ˆ์ด๋“œ" ์—…๊ทธ๋ ˆ์ด๋“œ...

๋‚˜๋Š” "๊ทธ๊ฒƒ์„ ์ถ”๊ตฌํ•˜๊ณ  ์ด์ „ ๋ฒ„์ „๊ณผ์˜ ํ˜ธํ™˜์„ฑ์„ ์ถ”๊ตฌ"ํ•˜๋Š” ๊ฒฝํ–ฅ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ์•„๋‹™๋‹ˆ๋‹ค :) ์ ์–ด๋„ ์ด์™€ ๊ฐ™์€ ํ•ต์‹ฌ ๋…ผ๋ฆฌ์— ๋Œ€ํ•ด์„œ๋Š”.

pip install์ด ์•”์‹œ์ ์œผ๋กœ "์ตœ์†Œ" ์—…๊ทธ๋ ˆ์ด๋“œ๋ฅผ ์ˆ˜ํ–‰ํ•˜๋„๋ก ๋งŒ๋“ญ๋‹ˆ๋‹ค.

์ €์—๊ฒŒ๋Š” ์ด๊ฒƒ์ด ์‹œ์ž‘์ด ์•„๋‹Œ ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ž…๋‹ˆ๋‹ค. ๋งž์Šต๋‹ˆ๊นŒ? ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ์ž๋™ํ™”๋œ ๋นŒ๋“œ ์†์ƒ์˜ ์ˆ˜๋ฅผ ๊ณ ๋ คํ•˜์‹ญ์‹œ์˜ค. ๋˜ํ•œ ์‚ฌ๋žŒ๋“ค์€ pip install ๊ฐ€ ๋ฌด์—‡์ธ์ง€์— ๋Œ€ํ•œ ํŠน์ • ์‹œ์ ์—์„œ ๊ฐœ๋…์  ๋ชจ๋ธ์— ๊ฐ‡ํžˆ๊ฒŒ ๋˜๋ฉฐ ์ด๋Š” ์ƒˆ๋กœ์šด ๋ฉ˜ํƒˆ ๋ชจ๋ธ์„ ๋‹ค์‹œ ๋กœ๋“œํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ๋žŒ๋“ค์€ ๊ทธ๊ฒƒ์„ ์ข‹์•„ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

@qwcode ์ž˜ ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ pip upgrade ์˜ ์ฃผ์š” ๋ฌธ์ œ๋Š” ์‚ฌ๋žŒ๋“ค์ด "์„ค์น˜ ์—ฌ๋ถ€์— ๊ด€๊ณ„์—†์ด ์ตœ์‹  ๋ฒ„์ „์„ ์ œ๊ณตํ•˜์‹ญ์‹œ์˜ค"๋ผ๊ณ  ๋งํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ œ๊ฑฐํ•˜๊ฑฐ๋‚˜ ๊ฑฐ์˜ ์™„์ „ํžˆ ๋™์ผํ•œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋‘ ๊ฐœ์˜ ๋ช…๋ น( pip install ๋ฐ pip upgrade ). ์ด ๋‹จ๊ธฐ์ ์œผ๋กœ ์ผ๋ถ€ ํŒŒ์†์ด ๋ ,ํ•˜์ง€๋งŒ ๋‚œ ์กฐ๊ธˆ์˜ ์‹ค์ œ ์ •์‹  ๋ชจ๋ธ ๊ฑฑ์ • ์ˆ˜๋„ pip upgrade I๊ฐ€์—์„œ ์ž์‹ ์˜ ์„ค์น˜ ์ง€์นจ์„ ๋Œ€์ฒดํ•˜๋Š” ์‚ฌ๋žŒ๋“ค์ด ๋น—๋‚˜ ํ™•์‚ฐ์„ ๋ณผ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— pip install foo ๋กœ pip upgrade foo (ํ•˜์ง€๋งŒ ๋‚ด๊ฐ€ ์•„์ง ์„ค์น˜ํ•˜์ง€ ์•Š์€ ๊ฒƒ์„ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?!).

์–ด, ๋‚ด ๋ง์€ ๊ดœ์ฐฎ์„ ๊ฒƒ ๊ฐ™์•„์š”.

์„ค์น˜ ์ง€์นจ์„ pip install foo ์—์„œ pip upgrade foo ๋Œ€์ฒดํ•˜๋Š” ๋„๋ฆฌ ํผ์ง

roger, ๊ทธ๋ž˜์„œ upgrade ๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œํ•ด์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. "๋˜ฅ" --fill-in-missing ์— ๊ด€ํ•ด์„œ๋Š”, ๋‚˜๋Š” ๊ทธ๊ฒƒ์— ์ง‘์ฐฉํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ ๋‚ด๊ฐ€ ๊ทธ๊ฒƒ์„ ๊ฐ€์ ธ์•ผ ํ•œ๋‹ค๋Š” ์˜๋ฏธ๋กœ ๋ฐ›์•„๋“ค์ด์ง€ ๋ง๊ณ  ์•„๋ž˜๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

"์„ค์น˜ ์—ฌ๋ถ€์— ๊ด€๊ณ„์—†์ด ์ตœ์‹  ๋ฒ„์ „์„ ์•Œ๋ ค์ฃผ์„ธ์š”"

  • FOO ๊ฐ€ ์—†์œผ๋ฉด pip install FOO ์ด๊ณ  ์ตœ์‹  ๋ฒ„์ „์„ ์–ป์Šต๋‹ˆ๋‹ค.
  • FOO ๊ฐ€ ์žˆ์œผ๋ฉด pip upgrade FOO ์ด๊ณ  ์ตœ์‹  ๋ฒ„์ „์„ ์–ป์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ์šฐ๋ฆฌ๊ฐ€ 2๊ฐ€์ง€ ๊ฒฝ์šฐ์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•˜๊ณ  ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

  1. FOO ๊ฐ€ ์žˆ๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ๋ชจ๋ฅด๊ฒ  ์œผ๋ฉฐ _one_ ๋ช…๋ น์ด ์ตœ์‹  FOO ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋Š”์ง€ ์—ฌ๋ถ€์— ๊ด€๊ณ„์—†์ด ๊ฐ€์ ธ์˜ค๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.
  2. _one_ ๋ช…๋ น์ด FOO ๋ฐ BAR ์ค‘ ์ตœ์‹  ์ •๋ณด๋ฅผ ์–ป๊ธฐ๋ฅผ ์›ํ•ฉ๋‹ˆ๋‹ค. FOO ์„ค์น˜ํ–ˆ์ง€๋งŒ BAR ์„ค์น˜ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

์‚ฌ์šฉ์ž์—๊ฒŒ _one_ ๋ช…๋ น์ด ํ•„์š”ํ•ฉ๋‹ˆ๊นŒ? ๋‚˜๋Š” ์‚ฌ๋žŒ๋“ค์—๊ฒŒ ๋‹จ์ถ•ํ‚ค๋ฅผ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ๋ช…๋ น์˜ ๋‹จ์ˆœ์„ฑ๊ณผ ๋ช…ํ™•์„ฑ์„ ์„ ํ˜ธํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์‚ฌ์šฉ์ž๊ฐ€ ์š”๊ตฌํ•˜๋ฉด --fill-in-missing ์™€ ๊ฐ™์€ ๊ฒƒ์ด ๋“ค์–ด์˜ต๋‹ˆ๋‹ค.

๋˜ํ•œ ์ €๋Š” ๊ฐœ์ธ์ ์œผ๋กœ "์—…๊ทธ๋ ˆ์ด๋“œ" ๋ช…๋ น์— ๋งค๋ ฅ์„ ๋Š๋‚๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ๋ฐฐํฌํŒ ๋„๊ตฌ๊ฐ€ ์ž‘๋™ํ•˜๋Š” ๋ฐฉ์‹๊ณผ ์œ ์‚ฌํ•˜๊ฒŒ ์—…๊ทธ๋ ˆ์ด๋“œ๋ฉ๋‹ˆ๋‹ค. "์„ค์น˜" ์„ค์น˜ ๋ฐ "์—…๊ทธ๋ ˆ์ด๋“œ" ์—…๊ทธ๋ ˆ์ด๋“œ...

์„ค๋ช… ์š”์ : ์„ธ ๊ฐ€์ง€ ์ธ๊ธฐ ์žˆ๋Š” ๋ฐฐํฌํŒ ๋„๊ตฌ์™€ AFAICT์˜ ์ž‘๋™ ๋ฐฉ์‹์„ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค(๋ถ€๋ถ„์ ์œผ๋กœ ์ด๊ฒƒ์€ ๋งค๋‰ด์–ผ ํŽ˜์ด์ง€ b/c๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค. ์ €๋Š” ์ด ๋ชจ๋“  ๊ฒƒ์„ ์ง์ ‘ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค).

  • ์ ์ ˆํ•œ:

    • apt install <pkg> ๋Š” "์—…์Šคํ†จ"์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฏธ ์„ค์น˜๋˜์—ˆ๋Š”์ง€ ์—ฌ๋ถ€์— ๋”ฐ๋ผ ์—…๊ทธ๋ ˆ์ด๋“œ ๋˜๋Š” ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.

    • apt upgrade ์„ค์น˜๋œ ๋ชจ๋“  ํŒจํ‚ค์ง€ ์—…๊ทธ๋ ˆ์ด๋“œ

    • apt upgrade <pkg> ์ด(๊ฐ€) ์กด์žฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋‹จ์ผ ํŒจํ‚ค์ง€๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋Š” ์œ ์ผํ•œ ๋ฐฉ๋ฒ•์€ apt install <pkg> (๋‹ค์–‘ํ•œ ์ข…๋ฅ˜์˜ ๋ฒ„์ „ ์ง€์ •์ž๋ฅผ ํ—ˆ์šฉํ•จ).

  • ๋ƒ :

    • yum install <pkg> ๋Š” "์—…์Šคํ†จ"์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

    • yum upgrade ์„ค์น˜๋œ ๋ชจ๋“  ํŒจํ‚ค์ง€ ์—…๊ทธ๋ ˆ์ด๋“œ

    • yum upgrade <pkg> ๋Š” ์ง€์ •๋œ ํŒจํ‚ค์ง€ ๋ชฉ๋ก์„ ์—…๊ทธ๋ ˆ์ด๋“œํ•ฉ๋‹ˆ๋‹ค. ์•„์ง ์„ค์น˜๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ์–ด๋–ป๊ฒŒ ๋˜๋Š”์ง€ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค.

  • ํ™ˆ๋ธŒ๋ฅ˜:

    • brew install <pkg> ๋Š” "์—…์Šคํ†จ"์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

    • brew upgrade ๋ชจ๋“  ํŒจํ‚ค์ง€ ์—…๊ทธ๋ ˆ์ด๋“œ

    • brew upgrade <pkg> ๋Š” ์ง€์ •๋œ ํŒจํ‚ค์ง€ ๋ชฉ๋ก์„ ์—…๊ทธ๋ ˆ์ด๋“œํ•ฉ๋‹ˆ๋‹ค. ์•„์ง ์„ค์น˜๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ์–ด๋–ป๊ฒŒ ๋˜๋Š”์ง€ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ ์—…๊ทธ๋ ˆ์ด๋“œ๋ฅผ ์œ„ํ•ด install์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์€ ์‹ค์ œ๋กœ ๋ฐฐํฌ ๋„๊ตฌ๊ฐ€ ํ•˜๋Š” ์ผ์ž…๋‹ˆ๋‹ค :-). ์šฐ๋ฆฌ๋„ ๊ทธ๋ž˜์•ผ ํ•œ๋‹ค๋Š” ๋œป์€ ์•„๋‹™๋‹ˆ๋‹ค. ๊ทธ๋ƒฅ ๋ฐ์ดํ„ฐ ํฌ์ธํŠธ.

๋‚˜๋Š” ๋‚ด๊ฐ€ FOO๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ์•Œ์ง€ ๋ชปํ•˜๋ฉฐ, ๋‚ด๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋Š”์ง€ ์—ฌ๋ถ€์— ๊ด€๊ณ„์—†์ด ์ตœ์‹  FOO๋ฅผ ์–ป๊ธฐ ์œ„ํ•ด ํ•˜๋‚˜์˜ ๋ช…๋ น์„ ์›ํ•ฉ๋‹ˆ๋‹ค.

์ด์— ๋Œ€ํ•œ ๊ฐ€์žฅ ๋ถ„๋ช…ํ•œ ์œ ์Šค ์ผ€์ด์Šค๋Š” ๋ฌธ์„œํ™”์— ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ: ์‚ฌ๋žŒ๋“ค์—๊ฒŒ pip install -U <some package> ๋ฅผ ์‹คํ–‰ํ•˜๋„๋ก ์ง€์‹œํ•˜๋Š” ๋‹ค๋ฅธ ์Šค๋ ˆ๋“œ์—์„œ ๋งํฌํ•œ django ๋ฌธ์„œ. ๋‹น์‹ ์€ ์‚ฌ๋žŒ๋“ค ๋งํ•˜๊ณ  ์‹ถ์–ดํ•˜์ง€ ์•Š๋Š”๋‹ค "์‹คํ–‰์„ pip install <pkg> ๋ฅผ ์ œ์™ธํ•˜๊ณ  ๋‹น์‹ ์€ ์ด๋ฏธ ์‹คํ–‰ ์„ค์น˜ ํ•œ ๊ฒฝ์šฐ pip upgrade <pkg> "๊ทธ๊ฒƒ์€ ๋„ˆ๋ฌด ์ดˆ๋ณด์ž๋ฅผ์œ„ํ•œ ํ˜ผ๋ž€ ๋ฐฉ๋ฒ•์€,ํ•˜์ง€๋งŒ ๋งŒ์•ฝ ๋•Œ๋ฌธ์— install ์•„๋ฌดํŠผ ' ์—…๊ทธ๋ ˆ์ด๋“œํ•œ ๋‹ค์Œ ์‚ฌ๋žŒ๋“ค์—๊ฒŒ pip install <pkg> ๋ฅผ ์‹คํ–‰ํ•˜๋ผ๊ณ  ๋งํ•˜๋Š” ๊ฒƒ ๋˜ํ•œ ์‚ฌ๋žŒ๋“ค์ด ์ด์ „ ๋ฒ„์ „์ด ์„ค์น˜๋œ ํŠœํ† ๋ฆฌ์–ผ์„ ํ†ตํ•ด ์ž‘์—…์„ ์‹œ์ž‘ํ•˜๊ณ  ์ œ๋Œ€๋กœ ์ž‘๋™ํ•˜์ง€ ์•Š๋Š” ์ด์œ ๋ฅผ ๋ชจ๋ฅด๊ณ  ์‚ฌ์šฉ์ž๋ฅผ ๋น„๋‚œํ•˜๋Š” ํ˜ผ๋ž€์„ ์•ผ๊ธฐํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋‹จ์ผ "์—…์Šคํ†จ" ๋ช…๋ น์ด ํ•„์š”ํ•˜๋ฉฐ ๋ฌธ์„œ์— ํฌํ•จํ•˜๋ ค๋ฉด ๊ฐ„๋‹จํ•˜๊ณ  ๋ช…ํ™•ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋น„๊ต๋ฅผ ์œ„ํ•œ Homebrew์˜ ๋™์ž‘์— ๋Œ€ํ•œ ํ›„์† ์กฐ์น˜: ์„ค์น˜๋˜์ง€ ์•Š์€ ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•˜๋ ค๊ณ  ํ•˜๋ฉด brew upgrade ์‹คํŒจ:

$ brew upgrade git
Error: No such file or directory - /usr/local/Cellar/git

๋˜ํ•œ ํ˜„์žฌ brew upgrade ๋™์ž‘์ด ๋ณ€๊ฒฝ๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค( ์—ฌ๊ธฐ์—์„œ ํ† ๋ก  --all ๋ฅผ ์š”๊ตฌํ•˜๋„๋ก ์ „ํ™˜๋ฉ๋‹ˆ๋‹ค.

์„ค๋ช… ํฌ์ธํŠธ

๋‚˜๋Š” ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ์ด๊ฒƒ์„ ์„ ํƒ ํ•  ๊ฒƒ์ด๋ผ๋Š” ๊ฒƒ์„ ์•Œ๊ณ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. : )
๋‚˜๋Š” ๊ฑฐ์˜ ๋‚˜ ์ž์‹ ์—๊ฒŒ ๋Œ€๋‹ตํ–ˆ๋‹ค. ์—…๊ทธ๋ ˆ์ด๋“œ์— ์ง‘์ค‘ํ–ˆ์Šต๋‹ˆ๋‹ค.

๋ƒ  ์—…๊ทธ๋ ˆ์ด๋“œ[...] ์•„์ง ์„ค์น˜๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ์–ด๋–ป๊ฒŒ ๋˜๋Š”์ง€ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค.

๊ทธ๊ฒƒ์€ ์•„๋ฌด๊ฒƒ๋„ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค

์–Œ ์„ค์น˜"์—…์Šคํ†จ"์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

true์ด์ง€๋งŒ ๊ธฐ๋ณธ ๋™์ž‘์€ ํ™•์ธ์„ ์š”์ฒญํ•˜๋Š” ๊ฒƒ์ธ๋ฐ pip์—๋Š” ์—†์Šต๋‹ˆ๋‹ค.

๋‹ค๋ฅธ ์Šค๋ ˆ๋“œ์—์„œ ๋งํฌํ•œ django ๋ฌธ์„œ

๋ถ„๋ช…ํžˆ ๋งํ•ด์„œ, ๊ทธ๊ฒƒ๋“ค์€ ์‹ค์ œ Django ๋ฌธ์„œ๊ฐ€ ์•„๋‹ˆ์—ˆ์Šต๋‹ˆ๋‹ค. Django ๋ฌธ์„œ๋Š” pip install Django ๋ผ๊ณ  ๋งํ•ฉ๋‹ˆ๋‹ค. (https://docs.djangoproject.com/en/1.8/topics/install/)

-U ํ˜„์žฌ ์ž‘๋™ํ•˜๋Š” ๋ฐฉ์‹์„ ๊ณ ๋ คํ•  ๋•Œ ์‚ฌ๋žŒ๋“ค์ด install -U ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์Šต๊ด€์„ ๊ฐ–๋„๋ก ํ•˜๋Š” ๊ฒƒ์€ ์‹ค์ œ๋กœ ๋‚˜์œ ์ผ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

์—ฐ๊ฒฐ๋œ ์˜ˆ์—์„œ๋Š” ์ข…์†์„ฑ์ด ์—†๋Š” redis ๋Œ€ํ•œ ๊ฒƒ์ด๋ฏ€๋กœ ์ด ๊ฒฝ์šฐ์—๋Š” ๊ดœ์ฐฎ์Šต๋‹ˆ๋‹ค.

์‚ฌ๋žŒ๋“ค์ด ํŠœํ† ๋ฆฌ์–ผ์„ ํ†ตํ•ด ์ž‘์—…์„ ์‹œ์ž‘ํ•˜๋Š” ๊ณณ์—์„œ ํ˜ผ๋ž€์„ ์•ผ๊ธฐํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.
์ด์ „ ๋ฒ„์ „์œผ๋กœ [...] ๋”ฐ๋ผ์„œ ๋‹จ์ผ "์—…์Šคํ†จ" ๋ช…๋ น์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

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

๋‚˜๋Š” ํŠœํ† ๋ฆฌ์–ผ์ด ์‚ฌ๋žŒ๋“ค์—๊ฒŒ "์—…์Šคํ†จ"(ํ›Œ๋ฅญํ•œ ์šฉ์–ด์ž…๋‹ˆ๋‹ค!)์ด๋ผ๊ณ  ๋งํ•ด์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ๊ทธ๋“ค ์ค‘ ์ƒ๋‹น์ˆ˜๋Š” ํ”„๋กœ์ ํŠธ ์ž์ฒด์— ์˜ํ•ด ์ž‘์„ฑ๋˜์—ˆ๊ณ  ์‚ฌ๋žŒ๋“ค์ด ํŠœํ† ๋ฆฌ์–ผ์„ ๋ณผ ๋•Œ ๊ธฐ์กด ๋ฒ„์ „์˜ FOO๊ฐ€ ๋ฌด์—‡์ธ์ง€ ๋ณด๊ธฐ ์œ„ํ•ด ๋จผ์ € ๋ณด๋Š” ๊ฒฝ์šฐ๋Š” ๊ฑฐ์˜ ์—†์—ˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ์„ค์น˜ํ•œ ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์ตœ์‹  ๋ฌธ์„œ๊ฐ€ ๋ฌด์—‡์ด๋“  ์‚ดํŽด๋ณด๋Š” ๊ฒฝํ–ฅ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

์ €๋„ ํ˜„์žฌ -U ์ž‘๋™ํ•˜๋Š” ๋ฐฉ์‹์ด ๋ฌด๋ถ„๋ณ„ํ•˜๊ฒŒ ์‚ฌ์šฉํ•˜๋Š” ์Šต๊ด€์„ ๋“ค์ด๊ฒŒ ํ•˜๋Š” ๊ฒƒ์€ ๋‚˜์œ ์Šต๊ด€์ด๋ผ๋Š” ์ ์— ์ €๋„ ๋™์˜ํ•ฉ๋‹ˆ๋‹ค๋งŒ, ์ œ๊ฐ€ ์ƒ๊ฐํ•˜๋Š” ํ•ต์‹ฌ์€ ์ œ์•ˆ๋œ ํ–‰๋™์„ ์ž์ œํ•˜๋Š” ๊ฒƒ์ด ๋‚˜์œ ์Šต๊ด€์€ ์•„๋‹ˆ๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค , ํ•˜์ง€๋งŒ ์˜คํžˆ๋ ค ์ข‹์€ ์ผ์ž…๋‹ˆ๋‹ค. ํŠน์ • ๋ฒ„์ „์ด ์„ค์น˜๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ ์ด๋ฏธ == ํ•˜๊ณ  ์žˆ์–ด์•ผ ํ•˜๋ฉฐ ๋‹ค์Œ์„ ํ™•์ธํ•ด์•ผ ํ•˜๋Š” ์‚ฌ๋žŒ๋“ค์„ ์œ„ํ•ด ๊ธฐ๋ณธ "์—…์Šคํ†จ"์„ ์ผ๋ฐ˜ "์„ค์น˜"๋กœ ๋˜๋Œ๋ฆฌ๋Š” ํ”Œ๋ž˜๊ทธ๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ˜„์žฌ ์„ค์น˜๋œ ๋ฒ„์ „ ๋˜๋Š” ์ตœ์‹  ๋ฒ„์ „์ด ์„ค์น˜๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค(์•„์ง๋„ ์ด๊ฒƒ์ด ์‹ค์ œ๋กœ ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ์›ํ•˜๋Š” ์‹œ๋‚˜๋ฆฌ์˜ค๋ฅผ ์ƒ๊ฐํ•ด๋‚ผ ์ˆ˜๋Š” ์—†์ง€๋งŒ).

๋‚˜๋Š” ํŠœํ† ๋ฆฌ์–ผ์ด ์‚ฌ๋žŒ๋“ค์—๊ฒŒ "์—…์Šคํ†จ"ํ•˜๋ผ๊ณ  ๋งํ•ด์•ผํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

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

์—ฌ๊ธฐ์„œ ์š”์ ์€ PyPI๊ฐ€ ๋ฐฐํฌ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์™€ ๊ฐ™์ด "ํ๋ ˆ์ดํŠธ๋œ" ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๊ฐ€ ์•„๋‹ˆ๋ผ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. "์—…์Šคํ†จ"์ด ๊ธฐ๋ณธ ๋ฐฐํฌ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์—์„œ ์•ˆ์ „ํ•˜๋‹ค๋Š” ๊ฒƒ์„ ์ƒ๋‹นํžˆ ํ™•์‹ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. PyPI์—์„œ๋Š” ์ด๋ฅผ ๋ชจ๋ฆ…๋‹ˆ๋‹ค. ๋ชจ๋“  ์—…๊ทธ๋ ˆ์ด๋“œ๋Š” ๋‹ค์†Œ ๋„๋ฐ•์ž…๋‹ˆ๋‹ค. "์„ค์น˜"๋Š” ๊ทธ๋Œ€๋กœ ๋ณด์ˆ˜์ ์ž…๋‹ˆ๋‹ค.

pip install #988์„ ์ˆ˜์ •ํ•˜์ง€ ์•Š๊ณ  "์—…์Šคํ†จ"์ฒ˜๋Ÿผ ์ž‘๋™ํ•˜๊ฒŒ ํ•˜๋ฉด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค๋Š” ์ ์„ ๋ช…์‹ฌํ•˜์‹ญ์‹œ์˜ค.

A ๋ฐ B ๊ฐ€ ์„ค์น˜๋˜๊ณ  A ์— B<2 . ์ด์ œ ์ƒˆ๋กœ์šด pip install B ์‹คํ–‰ํ•˜์—ฌ B ๋ฅผ v3 ๋˜๋Š” ๋ฌด์—‡์ด๋“ (์„ค์น˜๋œ ์ œ์•ฝ ์กฐ๊ฑด์„ ๊ณ ๋ คํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์—) ์—…์Šคํ†จํ•ฉ๋‹ˆ๋‹ค. ์ด์ œ ๋‚ด ํ™˜๊ฒฝ์ด ์ค‘๋‹จ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

ํ˜„์žฌ ์„ค์น˜๋œ ๋ฒ„์ „ ๋˜๋Š” ์ตœ์‹  ๋ฒ„์ „์ด ์„ค์น˜๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธํ•ด์•ผ ํ•˜๋Š” ์‚ฌ๋žŒ๋“ค์„ ์œ„ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค(์•„์ง๋„ ์ด๊ฒƒ์ด ์‹ค์ œ๋กœ ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ์›ํ•˜๋Š” ์‹œ๋‚˜๋ฆฌ์˜ค๋ฅผ ์ƒ๊ฐํ•ด๋‚ผ ์ˆ˜๋Š” ์—†์ง€๋งŒ).

๊ทธ๋Ÿฌํ•œ ์‹œ๋‚˜๋ฆฌ์˜ค๋ฅผ ์ƒ๊ฐํ•ด๋‚ด๋Š” ๊ฒƒ์€ ์‚ฌ์†Œํ•œ ์ผ์ž…๋‹ˆ๋‹ค. ์˜ˆ(๋ถˆํ–‰ํ•˜๊ฒŒ๋„ ๊ตฌ์„ฑ๋˜์ง€ ์•Š์Œ): ํ˜„์žฌ statsmodels ๋Š” ์ตœ์‹  pandas (0.17.0)๋กœ ๋‚˜๋‰ฉ๋‹ˆ๋‹ค. ์ €๋Š” ๋‘˜ ๋‹ค ์‚ฌ์šฉ์ž์ž…๋‹ˆ๋‹ค. ๋งŽ์€ Python ๋ฒ„์ „์ด ์„ค์น˜๋˜์–ด ์žˆ๊ณ  venvs๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๋‚˜๋Š” ๋ชจ๋“  Python/venv์— ๋Œ€ํ•ด pandas ๊ฐ€ ์•„์ง ์—†๋Š” ๊ฒฝ์šฐ์—๋งŒ ์„ค์น˜ํ•˜๊ณ  ์‹ถ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด ์•„๋งˆ๋„ statsmodels ๋„ ์žˆ์„ ๊ฒƒ์ด๊ณ  "์—…์Šคํ†จ"์€ ๊ทธ๊ฒƒ์„ ๊นจ๋œจ๋ฆด ๊ฒƒ์ž…๋‹ˆ๋‹ค.

@rgommers ํ , ๊ทธ๋ž˜์„œ ๊ฐ€์ƒ ํ™˜๊ฒฝ ์–ด๋””์—๋„ pandas 0.17.0์ด ์—†๋‹ค๊ณ  ์ ˆ๋Œ€์ ์œผ๋กœ ํ™•์‹ ํ•˜์‹ญ๋‹ˆ๊นŒ? pip install pandas!=0.17.0 ๋˜๋Š” pip install pandas<0.17 ํ•˜๋ฉด ์•„๋งˆ ๊ทธ๋Ÿฐ ์ผ์ด ์ผ์–ด๋‚  ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•˜์ง€๋งŒ ์ด๋ฏธ ์„ค์น˜ํ•œ ๊ฒƒ์— ์˜์กดํ•˜๋Š” ๊ฒƒ์ด ์™„์ „ํžˆ ๋ถˆํ•ฉ๋ฆฌํ•œ ๊ฒƒ์€ ์•„๋‹ˆ๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

ํ , ๊ทธ๋ž˜์„œ ๊ฐ€์ƒ ํ™˜๊ฒฝ ์–ด๋””์—๋„ ํŒฌ๋” 0.17.0์ด ์—†๋‹ค๊ณ  ์ ˆ๋Œ€์ ์œผ๋กœ ํ™•์‹ ํ•ฉ๋‹ˆ๊นŒ?

๋‚ด๊ฐ€ ํ•œ ๋ง์€ ๊ทธ๊ฒŒ ์•„๋‹ˆ์•ผ. ๋‚˜๋Š” pandas 0.17.0์ด ์žˆ๋Š” venv๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋Š”๋ฐ, statsmodels๊ฐ€ ์—†๋Š” ๊ฒƒ๋ฟ์ž…๋‹ˆ๋‹ค. pip install pandas<0.17 ์ด ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜์ง€๋งŒ ๊ทธ๊ฒƒ์„ ์‚ฌ์šฉํ•  ์ƒ๊ฐ์€ ์—†์—ˆ์Šต๋‹ˆ๋‹ค(์ฃผ๋กœ ํ•„์š”ํ•˜์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์— ํ˜„์žฌ install ๋ช…๋ น์ด ์ด ๋ชฉ์ ์œผ๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค).

์–ด์จŒ๋“ , ๋‚˜๋Š” upstall์— ๋Œ€ํ•ด ์„ ํ˜ธํ•˜๊ฑฐ๋‚˜ ๋ฐ˜๋Œ€ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๋‹น์‹ ์ด ํ•˜๋‚˜์˜ ์‹œ๋‚˜๋ฆฌ์˜ค๋ฅผ ์ƒ๊ฐํ•ด ๋‚ผ ์ˆ˜ ์—†๋‹ค๊ณ  ๋งํ–ˆ์„ ๋•Œ ํ˜„์‹ค์ ์ธ ์‹œ๋‚˜๋ฆฌ์˜ค๋ฅผ ์ง€์ ํ•˜๊ณ  ์‹ถ์—ˆ์Šต๋‹ˆ๋‹ค.

+1

์ด ๋…ผ์˜๋Š” ๊ฒฐ๋ก ์„ ๋‚ด๋ฆฌ์ง€ ๋ชปํ•œ ์ฑ„ ๊ต์ฐฉ ์ƒํƒœ์— ๋น ์ง„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ํ…Œ์ด๋ธ”์˜ ๋ชจ๋“  ์˜ต์…˜์€ ํ˜„์žฌ ์ƒํƒœ์— ๋Œ€ํ•œ ์ฃผ์š” ๊ฐœ์„  ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค. ๊ด€๋ จ๋œ ์žฅ๋‹จ์ ์ด ๋ชจ๋‘ ๊ณ ๋ ค๋œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์—ญ๋ฐฉํ–ฅ ํ˜ธํ™˜์„ฑ ๋Œ€ ์ตœ์  API์˜ ์ƒ๋Œ€์  ์ค‘์š”์„ฑ์— ๋Œ€ํ•œ ์˜๊ฒฌ์˜ ์ฐจ์ด๋งŒ ์žˆ์„ ๋ฟ์ž…๋‹ˆ๋‹ค. pip ๊ฐœ๋ฐœ์ž๊ฐ€ ๊ฒฐ์ •์„ ๋งˆ๋ฌด๋ฆฌํ•˜๋ ค๊ณ  ์‹œ๋„ํ•  ์ˆ˜ ์žˆ์„๊นŒ์š”?

@rgommers ๊ทธ๋“ค์€ ์•„๋งˆ๋„ ๊ฒฐ์ •์„ ํ–ˆ์Šต๋‹ˆ๊นŒ? https://pip.pypa.io/en/stable/user_guide/#only -if-needed-recursive-upgrade

@rgommers ๊ทธ๋“ค์€ ์•„๋งˆ๋„ ๊ฒฐ์ •์„ ํ–ˆ์Šต๋‹ˆ๊นŒ? https://pip.pypa.io/en/stable/user_guide/#only -if-needed-recursive-upgrade

@Liso77 ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์•„๋‹™๋‹ˆ๋‹ค. ์ด ์Šค๋ ˆ๋“œ์— ๋Œ€ํ•œ ํ† ๋ก ์„ ๋งˆ๋ฌด๋ฆฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋งํฌํ•œ ๋ฌธ์„œ๋Š” ๋ฐ”๋กœ ์—ฌ๊ธฐ๋ฅผ ๊ฐ€๋ฆฌํ‚ต๋‹ˆ๋‹ค.

์œ„์— ๊ฒŒ์‹œํ•œ ๋งํฌ์˜ @rgommers ์—์„œ ๊ฐœ๋ฐœ์ž๊ฐ€ ์—…๊ทธ๋ ˆ์ด๋“œ ๋ช…๋ น์„ ๋‚ด๋ฆด ๊ฒƒ์ด๋ผ๊ณ  ์ฝ์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์„ค์น˜ ๋ช…๋ น์— "ํ•„์š”ํ•œ ๊ฒฝ์šฐ์—๋งŒ" ์˜ต์…˜์„ ์ถ”๊ฐ€ํ•  ๊ณ„ํš์€ ์—†์Šต๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์— ๋Œ€ํ•œ ์šฉ์–ด๋ฅผ ์ƒ์„ฑํ•˜์ง€ ์•Š๊ณ  ์ธ์šฉ ๋ถ€ํ˜ธ๋กœ ์„ค๋ช…๋งŒ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ 10์›” 30์ผ์— ๋Œ€ํ•œ ๊ท€ํ•˜(๋˜๋Š” dstuff์˜) ์˜๊ฒฌ์—์„œ - ๊ทธ๊ฒƒ์€: _2์ž…๋‹ˆ๋‹ค. "์˜ฌ๋ฐ”๋ฅธ" ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ UX๋ฅผ pip ์—…๊ทธ๋ ˆ์ด๋“œ๋กœ ์ด๋™..._ (btw ์ €๋Š” ์ด๊ฒƒ์„ ์„ ํ˜ธํ•ฉ๋‹ˆ๋‹ค)
๋‚˜๋Š” ๋‹น์‹ ์ด ์ด ์ฃผ์ œ์— ๋Œ€ํ•ด ๋” ๋งŽ์ด ์ƒ๊ฐํ•˜๊ณ  ์žˆ๋‹ค๊ณ  ํ™•์‹ ํ•˜๊ณ  ๋‚ด๊ฐ€ ํ•˜๋Š” ๋” ๋ฏธ๋ฌ˜ํ•œ ์ผ์„ ๋ณด๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‹ˆ (๋ญ”๊ฐ€ ๊ทธ๋ ‡๊ฒŒ ์ƒ๊ฐํ•œ๋‹ค๋ฉด) ์•„์ง ์—ด๋ ค ์žˆ๋Š” ๊ฒƒ์„ ์“ฐ์‹ญ์‹œ์˜ค. ๊ฐœ๋ฐœ์ž๊ฐ€ ์—ฌ๊ธฐ์— ์ž์‹ ์˜ ๊ฒฐ์ •์„ ๋ช…์‹œ์ ์œผ๋กœ ์ž‘์„ฑํ•˜๊ณ  ๊ฒฐ๊ตญ ์ด ๋ฌธ์ œ๋ฅผ ์ข…๊ฒฐํ•˜๋Š” ๊ฒƒ์ด ์ข‹์„ ์ˆ˜ ์žˆ๋‹ค๋Š” ์˜๋ฏธ์˜€๋‹ค๋ฉด ๋™์˜ํ•ฉ๋‹ˆ๋‹ค.

ใ…‹ ์ƒํ™ฉ์ด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ ํ›จ์”ฌ ๋œ ๋ฌธ์ œ๊ฐ€ ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

pip freeze > checkpoint.txt
pip checkout checkpoint.txt

"๊ฒ€์‚ฌ์ "์œผ๋กœ ๋˜๋Œ๋ฆฌ๊ธฐ ์„ค์น˜๋ฅผ ๋ณด์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. (pip install -r์€ ํ˜„์žฌ๋กœ์„œ๋Š” ์ข‹์ง€ ์•Š์Šต๋‹ˆ๋‹ค.) ์ด ์ œ์•ˆ์„ ์ƒˆ ํ˜ธ์— ์ถ”๊ฐ€ํ•˜๋ ค๊ณ  ์ƒ๊ฐํ–ˆ์ง€๋งŒ ์ •๋ง ์œ ์šฉํ•œ ์ œ์•ˆ์„ ๊ฐ€์ ธ์˜ค๋ ค๋ฉด ๋” ๋งŽ์ด ์—ฐ๊ตฌํ•˜๊ณ  ๋ถ„์„ํ•ด์•ผ ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ฃผ์˜ ์‚ฌํ•ญ์ด ๋งŽ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ์ง€๋งŒ

pip checkout git+https://github.com/somebody_trusted/pip_distro4ubuntu<strong i="12">@bleeding_egde_branch</strong>
#or
pip checkout git+https://github.com/somebody_trusted/pip_distro4ubuntu<strong i="13">@stable</strong>

์œ„์—์„œ ์„ค๋ช…ํ•œ pandas ๋ฐ statsmodels ๋ฌธ์ œ์™€ ๊ฐ™์€ ๋ฌธ์ œ๋ฅผ ( someone_trusted(๋˜๋Š” ๋งŽ์€ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ๊ฐ€ ์žˆ๋Š” ์ปค๋ฎค๋‹ˆํ‹ฐ) ๋„์›€์œผ๋กœ) ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์˜๋ฏธ์ž…๋‹ˆ๋‹ค.

(์ด ์ฃผ์ œ๋ฅผ ํ™•์ธํ•˜๋Š” ๋ฐ ์œ ์šฉํ•œ ์ •๋ณด: https://pypi.python.org/pypi/peep)

@Liso77 ๊ฐ„๋‹จํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ์— ๋Œ€ํ•œ ํ† ๋ก ์ด ๋๋‚˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. upgrade ๋ช…๋ น์ด ๊ตฌํ˜„๋œ ์ƒํƒœ์—์„œ ๋Œ€๊ธฐ ์ค‘์ธ PR์ด ์žˆ์Šต๋‹ˆ๋‹ค(gh-3194). ํ•˜์ง€๋งŒ pip ๊ฐœ๋ฐœ์ž(์ ์–ด๋„ qwcode ๋ฐ @dstufft , ๊ทธ๋ฆฌ๊ณ  ์•„๋งˆ๋„ @xavfernandez ๋ฐ @pfmoore)๋Š” pip install ์˜ ๋™์ž‘์„ ๋ณ€๊ฒฝํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡๊ฒŒ ๋˜๊ธฐ ์ „๊นŒ์ง€๋Š” ์•„๋ฌด ๊ฒƒ๋„ ๋ฐ”๋€Œ์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

+1

๋”ฐ๋ผ์„œ ์ƒˆ๋กœ์šด ์—…๊ทธ๋ ˆ์ด๋“œ ๋ช…๋ น์„ ๋„์ž…ํ•˜๋Š” ๋ฐ ๋™์˜ํ•œ ๊ฒƒ์œผ๋กœ ๋ณด์ด๋ฉฐ ๊ฐ€์žฅ ์ตœ๊ทผ์˜ ๋ถˆ์•ˆ์ •ํ•œ ๋…ผ์Ÿ์€ "์—…์Šคํ†จ" ๋ช…๋ น์ด ์žˆ์–ด์•ผ ํ•˜๋Š”์ง€ ์—ฌ๋ถ€์™€ ๋งŒ์•ฝ ๊ทธ๋ ‡๋‹ค๋ฉด ์–ด๋–ค ์ฃผ ๋ช…๋ น(์„ค์น˜ ๋˜๋Š” ์—…๊ทธ๋ ˆ์ด๋“œ)์ด ์ด๋ฅผ ์Šค์œ„์น˜ ๋˜๋Š” ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ ๊ฐ€์ ธ์™€์•ผ ํ•˜๋Š”์ง€์— ๋Œ€ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. .

๋‚ด ๊ฐœ์ธ์ ์ธ ์˜๊ฒฌ์„ ๋˜์ง€๋ฉด :

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

์ฆ‰, ์ด "์—…์Šคํ†จ" ๋ช…๋ น์€ ๋‘ ๋ช…๋ น(์„ค์น˜/์—…๊ทธ๋ ˆ์ด๋“œ)์˜ ๊ธฐ๋ณธ๊ฐ’์ด ์•„๋‹ˆ๋ฏ€๋กœ ์˜ต์…˜์„ ํ˜ธ์ถœํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์˜๋ฏธ์ ์œผ๋กœ ๋ช…ํ™•ํ•˜๊ฒŒ ์ •์˜๋œ "์„ค์น˜" ๋ฐ "์—…๊ทธ๋ ˆ์ด๋“œ" ๋™์‚ฌ์— ๋ช…ํ™•์„ฑ์„ ๋”ํ•ด์ฃผ๊ณ , ์ œ ์ƒ๊ฐ์—๋Š” ์ด๋“ค ์ค‘ ํ•˜๋‚˜์— ๊ธฐ๋ณธ์ ์œผ๋กœ ์„ค์น˜ํ•˜๋Š” ๋ชจ๋“  ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž๊ฐ€ ์ž˜๋ชปํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์กฐ์น˜๋ฅผ ์š”์ฒญํ•˜๋Š” ๋ฉ”์‹œ์ง€( yum ํ‘œ์‹œ๋จ)๋Š” ๊ดœ์ฐฎ์Šต๋‹ˆ๋‹ค.

์ด๋ ‡๊ฒŒ ํ•˜๋ฉด upgrade --install ( --install-missing ๋ณด๋‹ค ์งง์Œ ) ๋ฐ install --upgrade ๋‚จ์Šต๋‹ˆ๋‹ค. ์˜๋ฏธ์ƒ "์ตœ์‹ ์œผ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œ[์กด์žฌํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ ์„ค์น˜]" ๋ฐ "์ตœ์‹  ์„ค์น˜[๋˜๋Š” ์ด๋ฏธ ์กด์žฌํ•˜๋Š” ๊ฒฝ์šฐ ์ตœ์‹ ์œผ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œ]". ์—ฌ๊ธฐ๊นŒ์ง€๋Š” ๋ณ„๋กœ ์ฐจ์ด๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. install --upgrade ๋Š” ์ด๋ฏธ ์กด์žฌํ•˜๋Š” ๋ฒ„์ „์ด๋ฉฐ ์ธ์‹ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์ด์ „ ๋ฒ„์ „๊ณผ ํ˜ธํ™˜๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
๋‹ค์Œ์€ ํ˜ผํ•ฉ์— ๋Œ€ํ•œ ๋˜ ๋‹ค๋ฅธ ๋ช…๋ น์ž…๋‹ˆ๋‹ค. install-upgrade (๋˜๋Š” upstall ?)๋ผ๋Š” ์ด๋ฆ„์˜ ์ƒˆ ๋ช…๋ น, ์—ฌ๊ธฐ์„œ ์„ค์น˜๋‚˜ ์—…๊ทธ๋ ˆ์ด๋“œ ๋ชจ๋‘ "๋‹ค๋ฅธ ์ž‘์—…๋„ ์ˆ˜ํ–‰"ํ•˜๋Š” ์˜ต์…˜์ด ์—†์ง€๋งŒ ์ƒˆ ๋ช…๋ น์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋„์ž…๋ฉ๋‹ˆ๋‹ค. ์ค‘์š”ํ•œ ์œ„์น˜์—์„œ ์˜๋ฏธ๋ฅผ ๋ช…ํ™•ํžˆ ํ•ฉ๋‹ˆ๋‹ค: ๋ช…๋ น ์ด๋ฆ„ ์ž์ฒด. ์ด๊ฒƒ์€ ๋‚ด ์ทจํ–ฅ์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

TL;DR : upgrade ๋ฐ upgrade-install , install --upgrade ์‚ฌ์šฉ ์ค‘๋‹จ. ๋ช…ํ™•ํ•œ ์˜๋ฏธ๋ฅผ ๊ฐ€์ง„ ๋ชจ๋“  ๊ธฐ๋Šฅ.
ํŒจํ‚ค์ง€๊ฐ€ ์ด๋ฏธ ์กด์žฌํ•˜๊ฑฐ๋‚˜ ์กด์žฌํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์ž‘์—…์ด ์‹คํŒจํ•˜๋Š” ๊ฒฝ์šฐ ๋ฉ”์‹œ์ง€๋ฅผ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ ์„ ํƒ์ ์œผ๋กœ ๋ช…๋ น์„ ์„ค์น˜ ๋ฐ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋ผ๋Š” ๋ฉ”์‹œ์ง€๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.

์˜ค๋Š˜ ์•„์นจ์— ์ˆ˜๋™์œผ๋กœ ๋‹ค์‹œ ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ธฐ๋Šฅ ์š”์ฒญ์— ๋Œ€ํ•œ ์†Œ์‹์ด ์žˆ์Šต๋‹ˆ๊นŒ?

+1

+1

+1

์—ฌ๋Ÿฌ๋ถ„, OP์—์„œ ์ข‹์•„์š” ๋ฐ˜์‘์„ ์‚ฌ์šฉํ•˜๊ณ  ๋ชจ๋“  ์‚ฌ๋žŒ์˜ ๋ฐ›์€ํŽธ์ง€ํ•จ ์ŠคํŒธ์„ ์ค‘์ง€ํ•˜์„ธ์š”.

pip๋Š” Linux ๋ฐฐํฌํŒ๊ณผ ๋‹ค๋ฅธ QA ๋ชจ๋ธ์„ ๊ฐ€์ง€๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋‚˜๋Š” ์ƒ๋‹นํžˆ ํ™•์‹ ํ•ฉ๋‹ˆ๋‹ค. ์ž„์˜์˜ ์—…๊ทธ๋ ˆ์ด๋“œ ๋ชจ๋“  ๋ช…๋ น์€ ์ œ์ž‘ ์ค‘ ํŒŒ์†์ผ ๋ฟ์ž…๋‹ˆ๋‹ค.

pypi์—๋Š” ์‹ค์ œ๋กœ ํ™•์ธ ๋ฐ ํ…Œ์ŠคํŠธ๋œ ํŒจํ‚ค์ง€ ๋ฒ„์ „ ๋ฐ ํ˜ธํ™˜์„ฑ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.
๋”ฐ๋ผ์„œ QA๊ฐ€ ์žˆ๋Š” ๋ฐฐํฌํŒ๊ณผ ๋‹ฌ๋ฆฌ pypi์—๋Š” ์ž์ฒด QA๊ฐ€ ๊ฑฐ์˜ ์—†์œผ๋ฉฐ ์—…๋กœ๋“œ๋œ ํ”„๋กœ์ ํŠธ(ํ’ˆ์งˆ์ด ๋‹ค๋ฆ„)์— ์ „์ ์œผ๋กœ ์˜์กดํ•ฉ๋‹ˆ๋‹ค.

ํ˜„์žฌ์˜ ์ œ์•ฝ ์กฐ๊ฑด์œผ๋กœ ๋‚˜๋Š” ๊ทธ๊ฒƒ์ด ์ถ•๋ณต๋ณด๋‹ค ์ €์ฃผ์— ๊ฐ€๊น๋‹ค๊ณ  ํ™•์‹ ํ•ฉ๋‹ˆ๋‹ค.
๊ทธ๋ฆฌ๊ณ  ๋ฐฐํฌ๋ณธ์ด ์™œ ์ด๋ ‡๊ฒŒ ๊ตฌ์‹์ธ์ง€ ๊ถ๊ธˆํ•ด ํ•˜์‹œ๋Š” ๋ถ„์ด ๊ณ„์‹œ๋‹ค๋ฉด QA์—๋Š” ์‹ค์ œ ์‹œ๊ฐ„๊ณผ ๋…ธ๋ ฅ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค^^

์—ฌ๋Ÿฌ๋ถ„, OP์—์„œ ์ข‹์•„์š” ๋ฐ˜์‘์„ ์‚ฌ์šฉํ•˜๊ณ  ๋ชจ๋“  ์‚ฌ๋žŒ์˜ ๋ฐ›์€ํŽธ์ง€ํ•จ ์ŠคํŒธ์„ ์ค‘์ง€ํ•˜์„ธ์š”.

์šฐ๋ฆฌ๋Š” ์‹ค์ œ๋กœ ์‚ฌ๋žŒ๋“ค๋กœ๋ถ€ํ„ฐ _์–ด๋–ค_ ์ข…๋ฅ˜์˜ "๋‚˜๋Š” ์ด๊ฒƒ์„ ์›ํ•œ๋‹ค"๋Š” ์‘๋‹ต์„ ํ•„์š”๋กœ ํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ์ ์— ์œ ์˜ํ•˜์‹ญ์‹œ์˜ค. ์šฐ๋ฆฌ๋Š” ์‚ฌ๋žŒ๋“ค์ด ์ด๊ฒƒ์„ ์›ํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋ถ€์กฑํ•œ ๊ฒƒ์€ ์ด๋ฏธ ์ œ๊ธฐ๋œ ๋‹ค์–‘ํ•œ ์šฐ๋ ค์™€ ๋ฌธ์ œ๋ฅผ ๋ชจ๋‘ ์ˆ˜์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ˆ˜์ • ํ”„๋กœ๊ทธ๋žจ์„ ๊ธฐ๊บผ์ด ๊ฐœ๋ฐœํ•˜๋ ค๋Š” ์‚ฌ๋žŒ์ด๋ฉฐ PR ๊ฒ€ํ†  ์ค‘์— ํ•„์—ฐ์ ์œผ๋กœ ๋‚˜ํƒ€๋‚  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ ๊ฐœ์ธ์ ์œผ๋กœ ์‚ฌ๋žŒ๋“ค์ด ์ตœ์†Œํ•œ ๊ตฌํ˜„์˜ ์‹œ์ž‘์ ์„ ์ œ๊ณตํ•˜๋Š” ์ž‘์—… ์ฝ”๋“œ๊ฐ€ ์—†๊ณ  ๊ตฌํ˜„๊นŒ์ง€ ์ด๋ฅผ ๊ธฐ๊บผ์ด ๋”ฐ๋ฅด์ง€ ์•Š๋Š” ํ•œ ์ด ๋ฌธ์ œ์— ๋Œ€ํ•œ ํ•‘์„ ์‚ผ๊ฐ€ํ•ด ์ฃผ์‹œ๋ฉด ๊ฐ์‚ฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด, ์šฐ๋ฆฌ๋Š” ์šฐ๋ฆฌ๊ฐ€ ํ•  ์ˆ˜ ์žˆ์„ ๋•Œ ๊ทธ๊ฒƒ์„ ์–ป์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ €๋Š” ๊ฐœ์ธ์ ์œผ๋กœ ์ด ๋ฌธ์ œ๋ฅผ ์ •๊ธฐ์ ์œผ๋กœ ๋‹ค๋ฃจ๋ฉฐ ํ•ต์‹ฌ pip ๊ฐœ๋ฐœ์ž์ด๋ฏ€๋กœ ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š” ์ถฉ๋ถ„ํ•œ ์‹œ๊ฐ„์ด ์žˆ๋‹ค๋ฉด ๊ทธ๋ ‡๊ฒŒ ํ•  ๊ฒƒ์ด๋ผ๊ณ  ์žฅ๋‹ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ ์‚ฌ์ด์— "์–ด๋–ค ์ง„์ „์ด ์žˆ์—ˆ์Šต๋‹ˆ๊นŒ?" ๋Œ“๊ธ€์€ ๋‚ด๊ฐ€ ์ทจ๋ฏธ๋กœ ์‹œ๊ฐ„์„ ๋ณด๋‚ด๋Š” ๋ฐฉ๋ฒ•์„ ์ง€์‹œํ•  ๊ถŒ๋ฆฌ๋ฅผ ์š”๊ตฌํ•˜๋Š” ์‚ฌ๋žŒ๋“ค์ฒ˜๋Ÿผ ๋Š๊ปด์ง€๊ธฐ ๋•Œ๋ฌธ์— ๋‹จ์ˆœํžˆ ๋‚˜๋ฅผ ์˜์š•์ ์œผ๋กœ ๋งŒ๋“œ๋Š” ๊ฒฝํ–ฅ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

๊ตฌํ˜„์˜ ์‹œ์ž‘์ 

๊ทธ๊ฒƒ์ด https://github.com/pypa/pip/pull/3194 ์˜ ๋ชฉ์ ์ด๋ผ๊ณ  ์ƒ๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค https://github.com/pypa/pip/pull/3194 ์ƒˆ๋กœ ๊ณ ์นจ์ด ํ•„์š”ํ•ฉ๋‹ˆ๊นŒ?

@friesel ๋‹น์‹ ์€ "๊ทธ๋ฆฌ๊ณ  ๊ทธ๊ฒƒ์„ ๊ธฐ๊บผ์ด ๋”ฐ๋ผ๊ฐˆ ์˜ํ–ฅ์ด ์žˆ์Šต๋‹ˆ๋‹ค"๋ฅผ ๋†“์ณค์Šต๋‹ˆ๋‹ค. ๊ทธ PR์„ ํ•œ ์‚ฌ๋žŒ์ด ์‹œ๊ฐ„์ด ๋ถ€์กฑํ•˜๊ฑฐ๋‚˜ ๊ด€์‹ฌ์ด ์—†์–ด ๋ณด์ž…๋‹ˆ๋‹ค(๊ณตํ†ต ๋ฌธ์ œ). ๊ทธ ๋‹ค์Œ ๋‹จ๊ณ„๋Š” ์•„๋งˆ๋„ OP๋‚˜ PR์˜ ์†Œ์œ ๊ถŒ์„ ์ธ์ˆ˜ํ•˜๋ ค๋Š” ๋‹ค๋ฅธ ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ํ˜„์žฌ ์œ„์น˜์— ๋Œ€ํ•œ PEP ์Šคํƒ€์ผ ์š”์•ฝ์„ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋‹ค์–‘ํ•œ ๋ฌธ์ œ์— ๋Œ€ํ•œ ํ•ด๊ฒฐ ๋ฐ ํ† ๋ก ์„ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜๊ธฐ ์œ„ํ•œ ์˜๊ฒฌ ์š”์ฒญ. ํ† ๋ก ์ด github์— ๋Œ€ํ•ด ๋„ˆ๋ฌด ํฐ ๊ฒฝ์šฐ ๋” ๋งŽ์€ ์ž…๋ ฅ์„ ์œ„ํ•ด ๋ฌธ์„œ๋ฅผ distutils-sig๋กœ ๊ฐ€์ ธ์™€์•ผ ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฐ€ ๋‹ค์–‘ํ•œ ๋ฌธ์ œ์— ๋Œ€ํ•ด ๋งŒ์กฑํ•˜๋Š” ํ•ด๊ฒฐ์ฑ…์„ ๊ฒฐ์ •ํ•  ์ˆ˜ ์—†๊ฑฐ๋‚˜ ํ† ๋ก ์—์„œ ํ•ฉ์˜๋ฅผ ์–ป์„ ์ˆ˜ ์—†๋‹ค๋ฉด ์˜ˆ, #3194๋Š” ์•„๋งˆ๋„ ์ฃฝ์—ˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค(๋‹ค๋ฅธ ์‚ฌ๋žŒ์ด ๋ฌธ์ œ๋ฅผ ๋‹ค์‹œ ์ง‘์–ด๋“ค ๋•Œ๊นŒ์ง€, ์ด ์‹œ์ ์—์„œ ์ €๋Š” ๊ทธ๋“ค์ด ์ˆ˜ํ–‰ํ•œ ๋ชจ๋“  ์ž‘์—…์„ ์ƒˆ PR์— ํ†ตํ•ฉํ•˜๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.

์ด์™€ ๊ฐ™์€ ์ œ์•ˆ์— ๋Œ€ํ•œ ์ž‘์—…์˜ 50% ์ด์ƒ์ด "๊ด€๋ฆฌ"(์ œ์•ˆ ๋ฌธ์„œํ™”, ํ† ๋ก  ๊ด€๋ฆฌ, ํ•ฉ์˜ ๋„์ถœ)์ž…๋‹ˆ๋‹ค. ์‚ฌ๋žŒ๋“ค์ด ์ข‹์•„ํ•˜๋Š” ๋ถ€๋ถ„์€ ์•„๋‹ˆ์ง€๋งŒ pip๋งŒํผ ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๋Š” ์ฝ”๋“œ๋ฒ ์ด์Šค์—์„œ๋Š” ํ•„์ˆ˜์ ์ธ ๋ถ€๋ถ„์ž…๋‹ˆ๋‹ค. (๊ทธ๋ฆฌ๊ณ  ๋„ค, ๊ทธ๊ฒŒ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. "์ €๋Š” ํ”„๋กœ์ ํŠธ ๊ด€๋ฆฌ๋ฅผ ์ทจ๋ฏธ๋กœ ํ•ฉ๋‹ˆ๋‹ค"๋ณด๋‹ค "์ทจ๋ฏธ๋กœ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค"๋ผ๊ณ  ๋งํ•˜๋Š” ๊ฒƒ์ด ํ›จ์”ฌ ์ข‹์Šต๋‹ˆ๋‹ค :-))

@pfmoore ์ „์ ์œผ๋กœ ๋™์˜ํ•ฉ๋‹ˆ๋‹ค.

์ˆ˜๋…„์— ๊ฑธ์ณ ์ด ๋ฌธ์ œ์™€ ๊ด€๋ จ๋œ ์ œ์•ˆ์˜ ์ˆ˜์™€ ํ† ๋ก ์˜ ์–‘์ด ์—ฌ๋Ÿฌ ์œ„์น˜์— ํผ์ ธ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด ๋ฌธ์ œ์— ์ ‘๊ทผ ํ•˜๊ณ  ๋‹จ๊ธฐ๊ฐ„์— ๋ช…ํ™•ํ•œ ๊ทธ๋ฆผ


@RonnyPfannschmidt

pypi์—๋Š” ํŒจํ‚ค์ง€ ๋ฒ„์ „ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

์‚ฌ์‹ค์ด์•ผ ์ด๊ฒƒ์€ (setup.py์˜) ๋Ÿฐํƒ€์ž„์— ํŒจํ‚ค์ง€์—์„œ ์ œ๊ณตํ•˜๋Š” ์ •๋ณด์ด๋ฉฐ ์ข…์†์„ฑ์„ ํ•ด๊ฒฐํ•˜๋Š” ํ”„๋กœ์„ธ์Šค์— ์•ฝ๊ฐ„ ๋” ๋ณต์žกํ•จ์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ๊ฒŒ๋‹ค๊ฐ€, ํ˜„์žฌ ๋กœ์ง์ด ์–ด๋–ป๊ฒŒ ์ž‘๋™ํ•˜๋Š”์ง€๋กœ ์ธํ•ด, ์ผ๋ถ€ ํŒจํ‚ค์ง€(scipy์™€ ๊ฐ™์€ ๋ˆˆ์— ๋„๋Š” ํŒจํ‚ค์ง€๋ผ๋„)๋Š” ๋ถˆํ•„์š”ํ•˜๊ฒŒ ๋‹ค์‹œ ์ปดํŒŒ์ผํ•˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ์„ค์น˜๋œ ๊ฒฝ์šฐ ์ข…์†์„ฑ(์˜ˆ: numpy)์„ ๋‚˜์—ดํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๊ทธ๊ฒƒ์€ ๋ฌด์—‡๋ณด๋‹ค๋„ PEP 426์— ์˜ํ•ด ํ•ด๊ฒฐ๋  ๊ฒƒ์ด์ง€๋งŒ ๊ทธ PEP์˜ ์ƒํƒœ๊ฐ€ ๋ฌด์—‡์ธ์ง€ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค.

@pf๋ฌด์–ด

์šฐ๋ฆฌ๋Š” ์‹ค์ œ๋กœ ์‚ฌ๋žŒ๋“ค๋กœ๋ถ€ํ„ฐ "๋‚˜๋Š” ์ด๊ฒƒ์„ ์›ํ•œ๋‹ค"๋Š” ์–ด๋–ค ์ข…๋ฅ˜์˜ ์‘๋‹ต๋„ ํ•„์š”๋กœ ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

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

์‚ฌ๋žŒ๋“ค์ด ์ž‘๋™ํ•˜๋Š” ์ฝ”๋“œ๊ฐ€ ์—†๋Š” ํ•œ ์ด ๋ฌธ์ œ์— ๋Œ€ํ•ด ํ•‘(ping)์„ ์‚ผ๊ฐ€ํ•ด ์ฃผ์‹œ๋ฉด ๊ฐ์‚ฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

์—„์ง€์†๊ฐ€๋ฝ์„ ์น˜์ผœ๋“ ๋‹ค๊ณ  ํ•ด์„œ ๋ˆ„๊ตฌ์—๊ฒŒ๋„ (์„ฑ๊ฐ€์‹ ) ์•Œ๋ฆผ/์ด๋ฉ”์ผ์„ ์ฃผ์ง€๋Š” ์•Š์„ ๊ฒƒ์ด๋ฉฐ ์—ฌ์ „ํžˆ ๊ด€์‹ฌ์„ ๋ณด์ธ ์‚ฌ๋žŒ๋“ค์˜ ์ˆ˜๋ฅผ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์•„๋ฌด๋„ ์‹ ๊ฒฝ์“ฐ์ง€ ์•Š์•„๋„ ๋œ๋‹ค๊ณ  ์ƒ๊ฐํ•˜์ง€๋งŒ ๋‚ด๊ฐ€ ํ‹€๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์—„์ง€์†๊ฐ€๋ฝ์„ ์น˜์ผœ๋“ ๋‹ค๊ณ  ํ•ด์„œ ๋ˆ„๊ตฌ์—๊ฒŒ๋„ (์„ฑ๊ฐ€์‹ ) ์•Œ๋ฆผ/์ด๋ฉ”์ผ์„ ์ฃผ์ง€๋Š” ์•Š์„ ๊ฒƒ์ด๋ฉฐ ์—ฌ์ „ํžˆ ๊ด€์‹ฌ์„ ๋ณด์ธ ์‚ฌ๋žŒ๋“ค์˜ ์ˆ˜๋ฅผ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์•„๋ฌด๋„ ์‹ ๊ฒฝ์“ฐ์ง€ ์•Š์•„๋„ ๋œ๋‹ค๊ณ  ์ƒ๊ฐํ•˜์ง€๋งŒ ๋‚ด๊ฐ€ ํ‹€๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์•„, ๊ทธ๋ ‡๊ฒŒ ํ•˜๋ฉด ์•Œ๋ฆผ์„ ํ”ผํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ๊นจ๋‹ซ์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ, ์ข‹์€ ์ƒ๊ฐ์ž…๋‹ˆ๋‹ค.

๊ทธ ๋‹ค์Œ ๋‹จ๊ณ„๋Š” ์•„๋งˆ๋„ OP๋‚˜ PR์˜ ์†Œ์œ ๊ถŒ์„ ์ธ์ˆ˜ํ•˜๋ ค๋Š” ๋‹ค๋ฅธ ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ํ˜„์žฌ ์œ„์น˜์— ๋Œ€ํ•œ PEP ์Šคํƒ€์ผ ์š”์•ฝ์„ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋‹ค์–‘ํ•œ ๋ฌธ์ œ์— ๋Œ€ํ•œ ํ•ด๊ฒฐ ๋ฐ ํ† ๋ก ์„ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜๊ธฐ ์œ„ํ•œ ์˜๊ฒฌ ์š”์ฒญ.

๊ทธ๋งŒํ•œ ๊ฐ€์น˜๊ฐ€ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด์ „์— ์ด๊ฒƒ๊ณผ ์ข…์†์„ฑ ํ•ด๊ฒฐ, PEP ์Šคํƒ€์ผ์— ๋Œ€ํ•œ ๊ธ€์„ ์ž‘์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๊ทธ๊ฒƒ์„ ์ชผ๊ฐœ์–ด ์ง€๊ธˆ ์—…๋ฐ์ดํŠธํ•˜๊ณ  ์ง€๋‚œ ๋ช‡ ๋‹ฌ ๋™์•ˆ ์ œ์•ˆ๋œ ๋ชจ๋“  ๊ฒƒ์„ ์ถ”๊ฐ€ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์—…๊ทธ๋ ˆ์ด๋“œ ๋ช…๋ น์„ ์œ„ํ•œ ๋ช…๋ น์€ ์™„๋ฃŒ๋˜๋ฉด (~2์ผ?) Gist๋กœ ๊ฒŒ์‹œํ•˜๊ณ  ์—ฌ๊ธฐ์—์„œ ๋งํฌํ•ฉ๋‹ˆ๋‹ค.

์ €๋Š” ์•„์ง PR ์†Œ์œ ๊ถŒ์„ ์ธ์ˆ˜ํ•  ์˜์‚ฌ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ๋…ผ์˜๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜๊ณ  ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ์ตœ์ข… ๋””์ž์ธ์— ๋„๋‹ฌํ•˜๋Š” ๋ฐ ๋„์›€์„ ์ฃผ๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ๋‚ด ์ฃผ๋ณ€์˜ ์–ด๋–ค ์ผ์ด ๊ณ„ํš๋Œ€๋กœ ๋œ๋‹ค๋ฉด, ๋‚˜๋Š” ์ด๊ฒƒ์„ ๋”ฐ๋ผ ๊ตฌํ˜„๊นŒ์ง€ ํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•˜์ง€๋งŒ ์•„์ง๊นŒ์ง€๋Š” ์ด๊ฒƒ์„ ๋”ฐ๋ผํ•˜๊ณ  ์‹ถ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

/cc @qwcode @dstufft @pfmoore @xavfernandez

๋‚ด ๊ธ€์— ๋Œ€ํ•œ ๋งํฌ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. https://gist.github.com/pradyunsg/a5abeac4af90fbdc54bb266c32c0d2d8

์ฒ˜์Œ์—๋Š” ๋…์ž๊ฐ€ ์ฐธ์กฐํ•  ์ˆ˜ ์žˆ๋„๋ก ๋‹ค์–‘ํ•œ ์œ„์น˜(~30๊ฐœ ๋งํฌ)์— ์—ฐ๊ฒฐํ•˜๊ณ  ๋ชจ๋“  ์ฃผ์„ ์Šค๋ ˆ๋“œ์— ๋งž๊ฒŒ ๋ณต์‚ฌํ•œ ๋‹ค์Œ ํŽธ์ง‘ํ•˜๋ ค๊ณ  ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ฌธ์„œ๊ฐ€ ๊ฝค ๊ธธ์–ด์„œ ๋‚ด ์˜๊ฒฌ์ด ์Šค์ณ์ง€๋‚˜๊ฐ”์Šต๋‹ˆ๋‹ค. ๊ฒฐ๊ตญ ์ฒ˜์Œ๋ถ€ํ„ฐ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ง€๊ธˆ์€ ๋” ์งง๊ณ  ์˜๊ฒฌ์ด ์—†์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜๋„ WIP๋กœ ํ‘œ์‹œํ–ˆ์Šต๋‹ˆ๋‹ค.

๋ฌธ์ œ๊ฐ€ ์žˆ์œผ๋ฉด Gist์— ๋Œ“๊ธ€์„ ๋‚จ๊ฒจ์ฃผ์„ธ์š”. ์ตœ๋Œ€ํ•œ ๋นจ๋ฆฌ ์ˆ˜์ •ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

๊ฒฝ๊ณ : _SLIGHTLY_ ์•ž์— ๊ธด ์„ค๋ช…์ด ์žˆ์Šต๋‹ˆ๋‹ค.


๊ธฐ์กด --upgrade ๋™์ž‘์„ ์ˆ˜์ •ํ•˜๋Š” ์•„์ด๋””์–ด๊ฐ€ ์ข‹์Šต๋‹ˆ๋‹ค. ์ด์ „ ๋ฒ„์ „๊ณผ์˜ ํ˜ธํ™˜์„ฑ ์™ธ์— ์ด์— ๋Œ€ํ•œ ์šฐ๋ ค ์‚ฌํ•ญ์ด ์žˆ์Šต๋‹ˆ๊นŒ? upgrade ๋ช…๋ น์„ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์€ ์„ค์น˜์™€ ์—…๊ทธ๋ ˆ์ด๋“œ๊ฐ€ ๋งŽ์ด ๊ฒน์น˜๊ธฐ ๋•Œ๋ฌธ์— ์ข‹์€ ์ƒ๊ฐ์ด ์•„๋‹Œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

FWIW, git์€ 2014๋…„ git push ๊ธฐ๋ณธ ๋™์ž‘์„ ๋ณ€๊ฒฝํ•œ --upgrade ์— ๋Œ€ํ•ด ๋…ผ์˜ํ•œ ๊ฒƒ๊ณผ ์œ ์‚ฌํ•œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค. link

pip install --upgrade ์˜ ๋™์ž‘์„ ๋ณ€๊ฒฝํ•˜๋Š” ๋ฐ ๊ด€์‹ฌ์ด ์žˆ๋Š” ๊ฒฝ์šฐ ํ•ด๋‹น ํ† ๋ก ์— ๋Œ€ํ•œ ์‹œ๋“œ ์ œ์•ˆ(P1 ์ฐธ์กฐ)์ด ์žˆ์Šต๋‹ˆ๋‹ค.

  • ๋‹ค์Œ ์ฃผ์š” ๋ฒ„์ „(9.0)๋ถ€ํ„ฐ pip install --upgrade ๋Š” ๊ฒฝ๊ณ ๋ฅผ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.

```
PipDeprecationWarning: pip๋Š” ์ข…์†์„ฑ์„ ์ตœ์‹  ๋ฒ„์ „์œผ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋Š” ๊ฒƒ์„ ์ค‘์ง€ํ•ฉ๋‹ˆ๋‹ค.
๋ฒ„์ „ 11.0๋ถ€ํ„ฐ ๊ธฐ๋ณธ์ ์œผ๋กœ ๋ฌด์กฐ๊ฑด ๋ฒ„์ „์ž…๋‹ˆ๋‹ค.

๊ธฐ๋ณธ ๋™์ž‘์ด ๋ณ€๊ฒฝ๋œ ํ›„ ํ˜„์žฌ ๋™์ž‘์„ ์œ ์ง€ํ•˜๋ ค๋ฉด
์„ค์น˜ ๋ช…๋ น์€ --upgrade-strategy eager ํ•ฉ๋‹ˆ๋‹ค.

์ƒˆ ๋™์ž‘์„ ์ฆ‰์‹œ ์‚ฌ์šฉํ•˜๊ธฐ ์‹œ์ž‘ํ•˜๋ ค๋ฉด install ๋ช…๋ น์—
--upgrade-strategy non-eager ํ†ต๊ณผ .

์ด ๋ฉ”์‹œ์ง€๋ฅผ ๋„๋ ค๋ฉด.

์ž์„ธํ•œ ๋‚ด์šฉ์€ ๋‹ค์Œ์„ ์ฐธ์กฐํ•˜์„ธ์š”..
```

๋งํฌ๋œ ๋ฌธ์„œ ํŽ˜์ด์ง€๋Š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ๊ณผ ๊ทธ ํšจ๊ณผ์— ๋Œ€ํ•œ ๊ฐ„๋žตํ•œ ๊ฐœ์š”๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ๊ฐ€์žฅ ์ผ๋ฐ˜์ ์ธ ์งˆ๋ฌธ์ธ "๋‚˜๋Š” ๋ฌด์—‡์„ ํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ?"๋ฅผ ๋‹ค๋ฃฐ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋ฐ "์–ด๋–ค ์—…๊ทธ๋ ˆ์ด๋“œ ์ „๋žต์„ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ?" ๊ฐ€์žฅ ์ง์ ‘์ ์ธ ๋ฐฉ๋ฒ•์œผ๋กœ ํ•ฉ๋ฆฌ์ ์ž…๋‹ˆ๋‹ค.

  • ๋ฉ”์‹œ์ง€์— ์ •๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์˜ต์…˜์€ ํ”Œ๋ž˜๊ทธ 2๊ฐœ, --upgrade-eager ๋ฐ --upgrade-non-eager ๋“ฑ์ผ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ์ž์ „๊ฑฐ ์ด๋™, ์ฆ‰ ๋งˆ์ง€๋ง‰ ๋‹จ๊ณ„์ž…๋‹ˆ๋‹ค.

    • ๊ณผ๊ฐํ•œ ์ผ์ด ๋ฐœ์ƒํ•˜์ง€ ์•Š๋Š” ํ•œ ๋ฒ„์ „ 11.0์—์„œ pip install --upgrade ์ข…์†์„ฑ์„ ์—…๊ทธ๋ ˆ์ด๋“œํ•  ๋•Œ ๋™์ž‘์„ ๋น„์—ด์‹ฌ์œผ๋กœ ์ „ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

ํŽธ์ง‘: ์ €๋Š” ์‚ฌ๋žŒ๋“ค์ด ์ „ํ™˜ํ•  ์‹œ๊ฐ„์„ ๋” ๋งŽ์ด ์ฃผ๊ธฐ ์œ„ํ•ด ๋ณ€๊ฒฝ ์‚ฌํ•ญ์— ๋Œ€ํ•ด 3๊ฐœ์˜ ์ฃผ์š” ๋ฒ„์ „ ์ฃผ๊ธฐ๋ฅผ ๋„ฃ์—ˆ์Šต๋‹ˆ๋‹ค. ๋ถˆํ•„์š”ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์•„๋งˆ๋„ 1๊ฐœ์˜ ์ฃผ์š” ๋ฒ„์ „์ด ๊ฒฝ๊ณ ๋ฅผ ์ธ์‡„ํ•˜๊ณ  ๋‹ค์Œ์œผ๋กœ ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒƒ์œผ๋กœ ์ถฉ๋ถ„ํ•ฉ๋‹ˆ๊นŒ?

@dstufft ๋Š” ๋น„์Šทํ•œ (๊ฐ™์€?) ์•„์ด๋””์–ด๋ฅผ ์ƒ๊ฐํ•ด ๋ƒˆ์Šต๋‹ˆ๋‹ค.


์—…๊ทธ๋ ˆ์ด๋“œ ๋ช…๋ น์ด ์•ž์œผ๋กœ ๋‚˜์•„๊ฐˆ ๊ธธ์ด๋ผ๋ฉด ๋‹ค์Œ์€ ํ•ด๋‹น ํ† ๋ก ์„ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜๊ธฐ ์œ„ํ•œ ์‹œ๋“œ ์ œ์•ˆ์ž…๋‹ˆ๋‹ค(์›ํ•˜๋Š” ๊ฒฝ์šฐ ์ด๋ฅผ P2๋กœ ์ฐธ์กฐ).

  1. pip upgrade ๋Š” pip install ๋Œ€๋ถ€๋ถ„์˜ ์˜ต์…˜๊ณผ ๋™์ž‘์„ ๋ณต์‚ฌํ•ฉ๋‹ˆ๋‹ค.
  2. --dry-run ํ”Œ๋ž˜๊ทธ๊ฐ€ install ๋ฐ upgrade ๋ช…๋ น์— ์ถ”๊ฐ€๋˜์–ด ์‹ค์ œ๋กœ ์‹คํ–‰๋˜๋Š” ๊ฒฝ์šฐ pip๊ฐ€ ์‹œ๋„ํ•  ๋‚ด์šฉ์„ ์ธ์‡„ํ•ฉ๋‹ˆ๋‹ค.
  3. pip install <out_of_date_pkg> ๋Š” ๋™์ž‘์„ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  4. pip upgrade <not_installed_pkg> ๋Š” ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค.
  5. pip upgrade <up_to_date_pkg> ๋Š” ์•„๋ฌด ๊ฒƒ๋„ ํ•˜์ง€ ์•Š๊ณ  ์™œ ์•„๋ฌด ๊ฒƒ๋„ ํ•˜์ง€ ์•Š๊ณ  ์ข…๋ฃŒ ์ฝ”๋“œ๊ฐ€ 0์ธ ์ƒํƒœ๋กœ ์ข…๋ฃŒ๋ฉ๋‹ˆ๋‹ค.
  6. pip upgrade <out_of_date_pkg> ๋Š” non-eager ์žฌ๊ท€ ์—…๊ทธ๋ ˆ์ด๋“œ๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

    • :white_check_mark: non-eager ์žฌ๊ท€์  ์—…๊ทธ๋ ˆ์ด๋“œ ๊ธฐ๋ณธ๊ฐ’

  7. pip upgrade --eager package ์€ ์˜ค๋Š˜์˜ pip install --upgrade ์ฒ˜๋Ÿผ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

    • :white_check_mark: ํ˜„์žฌ ๋™์ž‘์— ๋Œ€ํ•œ ์˜ตํŠธ์ธ ํ—ˆ์šฉ

  8. pip install --upgrade ๋Š” RemovedInPip10Warning ์ธ์‡„ํ•ฉ๋‹ˆ๋‹ค.
    ์ œ๊ฑฐ๋  ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

๋˜ํ•œ ๋‹ค์Œ ์‚ฌํ•ญ์— ๋Œ€ํ•ด ์–ด๋–ป๊ฒŒ ์ƒ๊ฐํ•˜์‹ญ๋‹ˆ๊นŒ?

  1. ์—…๊ทธ๋ ˆ์ด๋“œ ๋ช…๋ น์„ ๋Œ€ํ™”์‹์œผ๋กœ ๋งŒ๋“œ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ? (apt-get์ด ํ•˜๋Š” ๊ฒƒ๊ณผ ๊ฐ™์€ ๊ฒƒ)

    • pip install <pkg> OS ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž์˜ ์„ค์น˜ ieupstall์ฒ˜๋Ÿผ ์ž‘๋™ํ•˜๋„๋ก ํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?

  2. ์ƒˆ ์—…๊ทธ๋ ˆ์ด๋“œ ๋ช…๋ น์— ๊ธฐ๋ณธ์ ์œผ๋กœ --only-binary ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ?

    • ๊ดœ์ฐฎ์œผ์‹œ๋‹ค๋ฉด ์—…๊ทธ๋ ˆ์ด๋“œ ๋ช…๋ น์–ด์— --only-source ์™€ --no-source ๋ฅผ ์ถ”๊ฐ€ํ•˜์‹œ๋ฉด ์–ด๋–จ๊นŒ์š”?

  3. ํŒจํ‚ค์ง€ ์—…๋ฐ์ดํŠธ๋ฅผ "๋ณด๋ฅ˜"ํ•˜๋Š” ์˜ต์…˜์„ ์ถ”๊ฐ€ํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ? IMO, ์ด๊ฒƒ์€ upgrade-all ๋Œ€ํ•œ ์š”๊ตฌ ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค.
  4. ๋‹ค๋ฅธ CLI๊ฐ€ ํ•„์š”ํ•œ ๊ฒฝ์šฐ์™€ ๊ฐ™์ด ์ด๋Ÿฌํ•œ ๊ฒฝ์šฐ๋ฅผ ๊ตฌ๋ณ„ํ•˜๋Š” ๊ฒƒ์ด ์˜๋ฏธ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ?

    • ์„ค์น˜: ์„ค์น˜๋˜์ง€ ์•Š์Œ -> ์ตœ์‹ 

    • ์—…๊ทธ๋ ˆ์ด๋“œ: ๊ตฌ์‹ -> ์ตœ์‹ 

    • upstall: {์„ค์น˜๋˜์ง€ ์•Š์Œ, ๊ตฌ์‹} -> ์ตœ์‹ 

๋‚˜๋Š” ๊ทธ๊ฒƒ์— ๋Œ€ํ•ด ๊ฐ•ํ•˜๊ฒŒ ๋Š๋ผ์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— "์—…์Šคํ†จ๋กœ ์„ค์น˜"์— ๋Œ€ํ•ด ์•„๋ฌด ๊ฒƒ๋„ ์ œ์•ˆํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. OS ์ˆ˜์ค€ ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž์™€ ์ผ์น˜ํ•˜์ง€๋งŒ ์ฃผ์š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์–ผ๋งˆ๋‚˜ ์œ ์šฉํ• ์ง€ ๋˜๋Š” ์ •ํ™•ํ•œ ๋™์ž‘๊ณผ ์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ ์–ด๋–ค ๊ฒƒ์ธ์ง€ ์ž˜ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค...

์ด ์œ„์— ์ž๋Š” ๊ฒƒ์ด ๋„์›€์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฐœ์ธ์ ์œผ๋กœ ๋‚˜๋Š” ๋ช‡๋ช‡ ์‚ฌ๋žŒ๋“ค์ด ๋งŒ์กฑํ•˜๋Š” ํ–‰๋™์„ ์ผ๊ด€๋˜๊ฒŒ ์œ ์ง€ํ•˜๋Š” ๋ฐ ๋งŽ์€ ๊ฐ€์น˜๋ฅผ ๋ณด์ง€ ์•Š์Šต๋‹ˆ๋‹ค. Python 2์šฉ(์•ˆ์ •์„ฑ ์ˆ˜์šฉ)๊ณผ Python 3(๋ณ€ํ™” ์ˆ˜์šฉ)์šฉ์ด ๋” ์ข‹์„์ง€ ๋‚˜์ ์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค.

@ekevoo

Python 2์šฉ(์•ˆ์ •์„ฑ ์ˆ˜์šฉ)๊ณผ Python 3(๋ณ€ํ™” ์ˆ˜์šฉ)์šฉ์ด ๋” ์ข‹์„์ง€ ๋‚˜์ ์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค.

ํ•˜๋‚˜, ๊ทธ๊ฑด ์ฃผ์ œ์—์„œ ๋ฒ—์–ด๋‚ฌ์Šต๋‹ˆ๋‹ค. ๋‘˜์งธ, ๊ทธ๋ ‡๊ฒŒ ํ•˜๋ฉด ๊ฒฐ๊ตญ ๋ฐœ์‚ฐ์ด ์ƒ๊ธด๋‹ค. ๊ทธ๊ฒƒ์€ ํ˜„์žฌ Python 2๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์‚ฌ๋žŒ๋“ค์„ ์†Œ์™ธ์‹œํ‚ฌ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ์–ธ์  ๊ฐ€๋Š” EOL์— ๋„๋‹ฌํ•˜๊ณ  ๊ทธ๋“ค์€ Python 3์œผ๋กœ ์ „ํ™˜ํ•ด์•ผ ํ•˜๊ณ  ๋‹ค๋ฅด๊ฒŒ ์ž‘๋™ํ•˜๋Š” ๋„๊ตฌ์— ์ ์‘ํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ pip ๋Š” ๋ฐœ์‚ฐํ•˜์ง€ ์•Š์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค(IMO์—์„œ๋„ ๊ทธ๋Ÿฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค). ๊ทธ๋Ÿฐ ๋‹ค์Œ ๋‹จ์ผ ๋„๊ตฌ์— ํ•จ๊ป˜ ๋ณด๊ด€ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

OTOH, ์ด์ „ ๋ฒ„์ „๊ณผ์˜ ํ˜ธํ™˜์„ฑ์ด ์–ผ๋งˆ๋‚˜ ํ—ˆ์šฉ๋˜๋Š”์ง€์— ๋Œ€ํ•ด ์–ด๋–ป๊ฒŒ ์ƒ๊ฐํ•˜๋Š”์ง€ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค...

pip 9์˜ ๊ฒฝ๊ณ ์™€ pip install --upgrade , --eager/non-eager (๋˜๋Š” ๋‹ค๋ฅธ ์ด๋ฆ„)์˜ ๋™์ž‘์„ ์กฐ์ •ํ•˜๋Š” ์ถ”๊ฐ€ ์˜ต์…˜์ด ๋‚˜์—๊ฒŒ ๊ดœ์ฐฎ์•„ ๋ณด์ž…๋‹ˆ๋‹ค.

์ถฉ๋Œ. ๋ชจ๋‘๋ฅผ ์œ„ํ•œ ๋˜ ๋‹ค๋ฅธ ์•Œ๋ฆผ.

@pfmoore @dstufft @qwcode ์ฝ”๋ฅผ ๋ง‰๊ณ  ์‹ถ์ง€๋งŒ ์ฃผ๋ง์ด๋‚˜ ๋‹ค์Œ ์ฃผ์— ์‹œ๊ฐ„์„ ๋‚ด์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?

์ข‹์•„, ๋‚ด ์˜๊ฒฌ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๋‹ค์‹œ ๋‘ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์œผ๋กœ ์•ž์œผ๋กœ, ๋‚˜๋Š” ์˜๊ฒฌ์ด ์—†์Šต๋‹ˆ๋‹ค. ์–ด๋Š ๊ฒƒ์ด ๋” ๋‚˜์€ ์˜ต์…˜์ด๋ผ๊ณ  ์ƒ๊ฐ๋˜๋Š” ๊ฒƒ์„ ์„ ํƒํ•˜๊ณ  ๊ตฌํ˜„ํ•˜์‹ญ์‹œ์˜ค. ๊ทธ๋Ÿฌ๋ฉด ์–ด๋–ป๊ฒŒ ์ง„ํ–‰๋˜๋Š”์ง€ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

์ถ”๊ฐ€ ์งˆ๋ฌธ์„ ๋‹ค์‹œ:

  1. ๋‚˜๋Š” ๋ช…๋ น์„ ๋Œ€ํ™”์‹์œผ๋กœ ๋งŒ๋“œ๋Š” ๋ฐ -1์ž…๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๊ฐ€ ๊ฒฐ์ •์„ ๋‚ด๋ ค์•ผ ํ•˜๋Š” ํŠน์ • ๋ฌธ์ œ๊ฐ€ ์—†๋Š” ํ•œ "๋‹น์‹ ์ด ์š”์ฒญํ•œ ๊ฒฐ๊ณผ๋Š” ๋‹น์‹ ์ด ๋ถ„๋ช…ํžˆ ์•Œ์ง€ ๋ชปํ–ˆ๋˜ ๊ฒƒ์ด๊ณ  ๋ฌธ์ œ๊ฐ€ ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ณ„์†ํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?"๋ผ๋Š” ๋ผ์ธ์— ๋”ฐ๋ผ ์“ธ๋ฐ์—†๋Š” ์†Œ๋ฆฌ. ๋‚˜๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ "๋‹น์‹ ์ด ํ™•์‹ ํ•ฉ๋‹ˆ๊นŒ?" ํ”„๋กฌํ”„ํŠธ์— ๋ฐ˜๋Œ€ํ•ฉ๋‹ˆ๋‹ค. ์ถ”๊ฐ€ํ•  ๊ฐ€์น˜๊ฐ€ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐ๋˜๋Š” ํ”„๋กฌํ”„ํŠธ์— ๋Œ€ํ•œ ํŠน์ • ์ œ์•ˆ์ด ์žˆ๋Š” ๊ฒฝ์šฐ ํฌํ•จ๋œ ์„ธ๋ถ€์ •๋ณด์™€ ํ•จ๊ป˜ ์ž์œ ๋กญ๊ฒŒ ๋‹ค์‹œ ์งˆ๋ฌธํ•˜์‹ญ์‹œ์˜ค.
  2. ์—…๊ทธ๋ ˆ์ด๋“œ๋ฅผ ์„ค์น˜์™€ ๋‹ค๋ฅด๊ฒŒ ํ•ด์„œ๋Š” ์•ˆ ๋˜๋ฏ€๋กœ ๊ธฐ๋ณธ์ ์œผ๋กœ --only-binary ๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. ๋‚ด ๊ฐœ์ธ์ ์ธ ์‚ฌ์šฉ์„ ์œ„ํ•ด, ๋‚˜๋Š” ์•„๋งˆ๋„ ์ฒซ ๋ฒˆ์งธ ์ธ์Šคํ„ด์Šค์—์„œ ํ•ญ์ƒ pip upgrade --only-binary ๋ฅผ ์›ํ•  ๊ฒƒ์ด์ง€๋งŒ, ๋‚˜๋Š” ๊ทธ๊ฒƒ์„ ๋ช…์‹œ์ ์œผ๋กœ _์›ํ•ฉ๋‹ˆ๋‹ค_.
  3. ์—…๋ฐ์ดํŠธ๋ฅผ "๋ณด๋ฅ˜"ํ•œ๋‹ค๋Š” ๊ฒƒ์ด ๋ฌด์—‡์„ ์˜๋ฏธํ•˜๋Š”์ง€ ์ž˜ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค. ๋ช…ํ™•ํžˆ ํ•ด์ฃผ์„ธ์š”. ๊ทธ๋Ÿฌ๋‚˜ ์ผ๋ฐ˜์ ์ธ ์‘๋‹ต์œผ๋กœ, ์ฒซ ๋ฒˆ์งธ ๊ฒฝ์šฐ์— ์‹ ๊ฒฝ ์“ฐ์ง€ ๋ง๊ณ  ์ดˆ๊ธฐ PR์„ "์„ ํƒ์  ์ถ”๊ฐ€ ์‚ฌํ•ญ"์—์„œ ๋ฌด๋ฃŒ๋กœ ์œ ์ง€ํ•ฉ์‹œ๋‹ค. ๋‚˜์ค‘์— ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  4. ์ด ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ๋‹ค์–‘ํ•œ ๋…ผ์˜์—์„œ ๊ทธ๊ฒƒ์ด ์ฃผ์š” ํ† ๋ก  ์ฃผ์ œ๊ฐ€ ์•„๋‹™๋‹ˆ๊นŒ? ์ฒ˜์Œ์—๋Š” install --upgrade ๋Œ€ upgrade ์˜ ๊ธฐ๋ณธ ์งˆ๋ฌธ์— ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š์Šต๋‹ˆ๊นŒ? ๋‚˜๋Š” ๊ทธ ์งˆ๋ฌธ์— ๋Œ€ํ•œ ํ•ด๊ฒฐ์ฑ…์ด ์žˆ์—ˆ๋˜ ๊ฒƒ์„ ๊ธฐ์–ตํ•˜์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๋‹น์‹ ์ด ์ด๊ฒƒ์— ๋Œ€ํ•œ "๊ฐ„๋‹จํ•œ" ๋Œ€๋‹ต์„ ๊ธฐ๋Œ€ํ•œ๋‹ค๋Š” ๊ฒƒ์— ์•ฝ๊ฐ„ ๋†€๋ž์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ํ™•์‹คํžˆ ์ข‹์€ ๋Œ€๋‹ต์„ ๊ฐ€์ง€๊ณ  ์žˆ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

(์ฐธ๊ณ ๋กœ ์ œ๊ฐ€ ์š”์ง€๋ฅผ ์ž˜ ๋ชป๋ด์„œ ์š”์•ฝ๊ธ€์— ์—†๋Š” ๋‚ด์šฉ์ด ์žˆ์œผ๋ฉด ๋†“์ณค๋„ค์š” ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค.)

PR์„ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ์ด ํž˜๋“  ์ผ์ด๊ณ  ํ† ๋ก ๊ณผ ์งˆ๋ฌธ์— ์–ฝ๋งค์ด๋Š” ๊ฒƒ ๊ฐ™์•„ ์˜์š•์„ ์žƒ๋Š”๋‹ค๋Š” ๊ฒƒ๋„ ์•Œ์ง€๋งŒ, ๊ฒฐ๊ตญ ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ํ•˜๋‚˜๋ฅผ ์ž‘์„ฑํ•˜๊ณ  ๊ฑฐ๊ธฐ์— "์ด๊ฒƒ์ด ํ•ด๊ฒฐ์ฑ…์ด๋‹ค. ์ œ์•ˆํ•ฉ๋‹ˆ๋‹ค - ์˜๊ฒฌ์ด ์žˆ์Šต๋‹ˆ๊นŒ?"

์šฐ๋ฆฌ๋Š” [์‹น๋‘‘] ์•„๋งˆ ํ•ญ์ƒ ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค ์„ค์น˜ ํšŸ์ˆ˜์—์„œ ์—…๊ทธ๋ ˆ์ด๋“œ ๋‹ค๋ฅธํ•ด์„œ๋Š” ์•ˆ pip upgrade --only-binary ์ฒซ ๋ฒˆ์งธ ์ธ์Šคํ„ด์Šค์—์„œ,ํ•˜์ง€๋งŒ ๋‚œ ๊ทธ๊ฒƒ์„ ๋ช…์‹œ๋˜๊ณ  ์‹ถ์–ด์š”.

ํ•ญ์ƒ ๋ฌด์–ธ๊ฐ€๋ฅผ ์›ํ•  ๊ฒฝ์šฐ ๊ธฐ๋ณธ๊ฐ’ 1 ์ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ install ๋ฐ ๊ฐ€๋Šฅํ•œ upgrade ๋ช…๋ น ๊ฐ„์— ์ผ๊ด€์„ฑ์„ ์œ ์ง€ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์€ ์ƒ๊ฐ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

์—…๋ฐ์ดํŠธ๋ฅผ "๋ณด๋ฅ˜"ํ•œ๋‹ค๋Š” ๊ฒƒ์ด ๋ฌด์—‡์„ ์˜๋ฏธํ•˜๋Š”์ง€ ์ž˜ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค.

๋ชจ๋“  ์—…๊ทธ๋ ˆ์ด๋“œ ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•  ๋•Œ๊นŒ์ง€ ์ด ์ž‘์—…์„ ์ž ์‹œ ์ค‘๋‹จํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

์ž๊ธฐ ์ฐธ๊ณ  ์‚ฌํ•ญ: apt-mark pip ๊ฐœ๋…

๋‚˜๋Š” ๋ช…๋ น์„ ๋Œ€ํ™”์‹์œผ๋กœ ๋งŒ๋“œ๋Š” ๋ฐ -1์ž…๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๊ฐ€ ๊ฒฐ์ •ํ•ด์•ผ ํ•˜๋Š” ํŠน์ • ๋ฌธ์ œ๊ฐ€ ์—†๋Š” ํ•œ

๊ฐ™๊ฒŒ.

์ด ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ๋‹ค์–‘ํ•œ ๋…ผ์˜์—์„œ ๊ทธ๊ฒƒ์ด ์ฃผ์š” ํ† ๋ก  ์ฃผ์ œ๊ฐ€ ์•„๋‹™๋‹ˆ๊นŒ?

์ •ํ™•ํžˆ ์™œ ์—ฌ๋Ÿฌ๋ถ„์˜ ์ƒ๊ฐ์„ ์•Œ๊ณ  ์‹ถ์—ˆ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ๊ทธ ์งˆ๋ฌธ์— ๋Œ€ํ•œ ํ•ด๊ฒฐ์ฑ…์ด ์žˆ์—ˆ๋˜ ๊ฒƒ์„ ๊ธฐ์–ตํ•˜์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๋‹น์‹ ์ด ์ด๊ฒƒ์— ๋Œ€ํ•œ "๊ฐ„๋‹จํ•œ" ๋Œ€๋‹ต์„ ๊ธฐ๋Œ€ํ•œ๋‹ค๋Š” ๊ฒƒ์— ์•ฝ๊ฐ„ ๋†€๋ž์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ์•„์ง "๋‹จ์ˆœํ•œ" ๋Œ€๋‹ต์„ ๊ธฐ๋Œ€ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํ† ๋ก ์„ ํ†ตํ•ด ํ•˜๋‚˜์˜, ๊ฐ€๊ธ‰์ ์ด๋ฉด ๊ฐ„๋‹จํ•œ ๋‹ต์— ๋„๋‹ฌํ•˜๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.

๊ทธ๋‚˜์ €๋‚˜ ์ œ๊ฐ€ ์š”์ง€๋ฅผ ์ž˜ ๋ชป๋ด์„œ ์š”์•ฝ๊ธ€์— ์—†๋Š” ๋‚ด์šฉ์ด ์žˆ์œผ๋ฉด ๋†“์ณค๋„ค์š” ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค

์š”์•ฝ ๊ทธ ์ด์ƒ์€ ๊ธ€์— ๋Œ€ํ•œ ํ›„์† ์กฐ์น˜์ž…๋‹ˆ๋‹ค. ๊ฐ€๋Šฅํ•œ ํ•œ ๋นจ๋ฆฌ ์ฝ์œผ์‹ญ์‹œ์˜ค.

์–ด๋Š ๊ฒƒ์ด ๋” ๋‚˜์€ ์˜ต์…˜์ด๋ผ๊ณ  ์ƒ๊ฐ๋˜๋Š” ๊ฒƒ์„ ์„ ํƒํ•˜๊ณ  ๊ตฌํ˜„ํ•˜์‹ญ์‹œ์˜ค. ๊ทธ๋Ÿฌ๋ฉด ์–ด๋–ป๊ฒŒ ์ง„ํ–‰๋˜๋Š”์ง€ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.
[ํ•œ์กฐ๊ฐ]
๋ˆ„๊ตฐ๊ฐ€๊ฐ€ [PR]์„ ์ž‘์„ฑํ•˜๊ณ  "์ด๊ฒƒ์ด ๋‚ด๊ฐ€ ์ œ์•ˆํ•˜๋Š” ์†”๋ฃจ์…˜์ž…๋‹ˆ๋‹ค. ์˜๊ฒฌ์ด ์žˆ์Šต๋‹ˆ๊นŒ?"๋ผ๊ณ  ๊ฒŒ์‹œํ•ด์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

"๋จผ์ € ์›ํ•˜๋Š” ๊ฒƒ์ด ๋ฌด์—‡์ธ์ง€ ์ •ํ™•ํžˆ ํŒŒ์•…ํ•˜์ž"๋Š” ์ƒ๊ฐ์„ ํ•˜๊ณ  ์‹คํ–‰์— ์˜ฎ๊ฒผ์Šต๋‹ˆ๋‹ค.


1 ๋‹ค๋ฅธ ์‚ฌ๋žŒ์˜ ์„ธ๊ณ„๋ฅผ ๋ถ€์ˆ˜์ง€ ์•Š๋Š” ํ•œ

์šฐ๋ฆฌ๋Š” ์„ค์น˜์™€ ๋‹ค๋ฅธ ์—…๊ทธ๋ ˆ์ด๋“œ๋ฅผ ํ•ด์„œ๋Š” ์•ˆ ๋ฉ๋‹ˆ๋‹ค.
ํ•ญ์ƒ ์›ํ•˜๋Š” ๊ฒƒ์ด ์žˆ๋‹ค๋ฉด ๊ธฐ๋ณธ๊ฐ’์ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์„ค์น˜ ๋ฐ ๊ฐ€๋Šฅํ•œ ์—…๊ทธ๋ ˆ์ด๋“œ ๋ช…๋ น ๊ฐ„์— ์ผ๊ด€์„ฑ์„ ์œ ์ง€ํ•˜๋Š” ๊ฒƒ์€ ์ข‹์€ ์ƒ๊ฐ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

_๋ชจ๋“  ์‚ฌ๋žŒ_์ด ํ•ญ์ƒ ๋ฌด์–ธ๊ฐ€๋ฅผ ์›ํ•  ๊ฒฝ์šฐ, (์–ด์ฉŒ๋ฉด) ๊ธฐ๋ณธ๊ฐ’์ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋‚˜๋Š” ๋‹จ์ง€ ๋‚ด ์ž์‹ ์˜ ์ทจํ–ฅ์— ๋Œ€ํ•ด ์–ธ๊ธ‰ํ–ˆ์„ ๋ฟ์ž…๋‹ˆ๋‹ค. ์†”์งํžˆ ๋งํ•ด์„œ --only-binary ๊ฐ€ ๋Œ€๋ถ€๋ถ„์˜ ์‚ฌ๋žŒ๋“ค์ด ์›ํ•˜๋Š” ๊ฒƒ์ธ์ง€ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค(์žฅ๋‹จ๊ธฐ์ธ์ง€ ์—ฌ๋ถ€์— ๋”ฐ๋ผ ๋‹ค๋ฆ„).

๋ฐ”์ด๋„ˆ๋ฆฌ(ํœ ), ์–ด๋””์—์„œ๋‚˜ ๊ตฌ์ถ•ํ•  ์ˆ˜ ์žˆ๋Š” ์†Œ์Šค(์ผ๋ฐ˜์ ์œผ๋กœ ์ˆœ์ˆ˜ํ•œ Python), ์ปดํŒŒ์ผ๋Ÿฌ ๋˜๋Š” ๊ธฐํƒ€ ์™ธ๋ถ€ ์ „์ œ ์กฐ๊ฑด์ด ํ•„์š”ํ•œ ์†Œ์Šค ๊ฐ„์—๋Š” ํฐ ์ฐจ์ด๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์Šฌํ”„๊ฒŒ๋„, pip๋Š” ํ›„์ž์˜ ๋‘ ๊ฐ€์ง€๋ฅผ ๊ตฌ๋ณ„ํ•  ์ˆ˜ ์—†์œผ๋ฉฐ, ์ด๋Š” --only-binary ๋œ ์œ ์šฉํ•˜๊ฒŒ ๋งŒ๋“ญ๋‹ˆ๋‹ค(ํŠนํžˆ ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ).

๊ทธ๋ฆฌ๊ณ  ๋‚˜๋Š” "๋‚ด ๋œป๋Œ€๋กœ ํ•˜๋ผ" ๊ธฐ๋ณธ๊ฐ’๋ณด๋‹ค ๋ช…๋ น ๊ฐ„์˜ ์ผ๊ด€์„ฑ์„ ์ค‘์š”ํ•˜๊ฒŒ ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ๋‹ค์‹œ ๋‚ด ๊ฐœ์ธ ์ทจํ–ฅ์ผ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

์š”์•ฝ ๊ทธ ์ด์ƒ์€ ๊ธ€์— ๋Œ€ํ•œ ํ›„์† ์กฐ์น˜์ž…๋‹ˆ๋‹ค. ๊ฐ€๋Šฅํ•œ ํ•œ ๋นจ๋ฆฌ ์ฝ์œผ์‹ญ์‹œ์˜ค.

๋‚˜๋Š” ๊ทธ๊ฒƒ์„ ์ฝ์—ˆ๊ณ  (๋‚ด๊ฐ€ ์ด๊ฒƒ์— ๋Œ€ํ•œ ๋‹ค์–‘ํ•œ ์Šค๋ ˆ๋“œ๋ฅผ ๋”ฐ๋ž์„ ๋•Œ) ๋‚ด๊ฐ€ ์•Œ์ง€ ๋ชปํ–ˆ๋˜ ๋งŽ์€ ๊ฒƒ์„ ์ถ”๊ฐ€ํ•˜์ง€ ์•Š์•˜์œผ๋ฏ€๋กœ ๋‚ด ์˜๊ฒฌ์ด ์œ ํšจํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ํ”Œ๋ ˆ์ด ํ˜„ํ™ฉ์— ๋Œ€ํ•œ ์ข‹์€ ์š”์•ฝ์ด๋ผ ์จ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” ์„ค์น˜์™€ ๋‹ค๋ฅธ ์—…๊ทธ๋ ˆ์ด๋“œ๋ฅผ ํ•ด์„œ๋Š” ์•ˆ ๋ฉ๋‹ˆ๋‹ค.

ํ•ญ์ƒ ์›ํ•˜๋Š” ๊ฒƒ์ด ์žˆ๋‹ค๋ฉด ๊ธฐ๋ณธ๊ฐ’์ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์„ค์น˜ ๋ฐ ๊ฐ€๋Šฅํ•œ ์—…๊ทธ๋ ˆ์ด๋“œ ๋ช…๋ น ๊ฐ„์— ์ผ๊ด€์„ฑ์„ ์œ ์ง€ํ•˜๋Š” ๊ฒƒ์€ ์ข‹์€ ์ƒ๊ฐ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

_๋ชจ๋“  ์‚ฌ๋žŒ_์ด ํ•ญ์ƒ ๋ฌด์–ธ๊ฐ€๋ฅผ ์›ํ•  ๊ฒฝ์šฐ, (์–ด์ฉŒ๋ฉด) ๊ธฐ๋ณธ๊ฐ’์ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋‚˜๋Š” ๋‹จ์ง€ ๋‚ด ์ž์‹ ์˜ ์ทจํ–ฅ์— ๋Œ€ํ•ด ์–ธ๊ธ‰ํ–ˆ์„ ๋ฟ์ž…๋‹ˆ๋‹ค.

์„ค๋ช…: ๋‚ด ์˜๊ฒฌ์— ์žˆ๋Š” "๋‹น์‹ "์€ ์ตœ์ข… ์‚ฌ์šฉ์ž(๋ณต์ˆ˜ํ˜•)๋ฅผ ์˜๋ฏธํ–ˆ์œผ๋ฉฐ @pfmoore ๋Š” ํŠน์ • ๊ฒฝ์šฐ์— ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ •๋ง๋กœ ๋‹ค๋ฅธ ๋‹จ์–ด๋ฅผ ์‚ฌ์šฉํ–ˆ์–ด์•ผ ํ–ˆ๋‹ค.

์—…๊ทธ๋ ˆ์ด๋“œ ์ „๋žต์— ๋Œ€ํ•œ ๋ช‡ ๊ฐ€์ง€ ์ƒ๊ฐ. ๋ฌผ๋ก  ๊ฐœ์ธ์ ์ธ ์˜๊ฒฌ์ž…๋‹ˆ๋‹ค :-)

๋‚ด๊ฐ€ pip upgrade foo ํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด ๋ด…์‹œ๋‹ค.

  1. ํ˜„์žฌ foo ์„ค์น˜๋˜์–ด ์žˆ์ง€ ์•Š์œผ๋ฉด ์˜ค๋ฅ˜๊ฐ€ ์˜ˆ์ƒ๋ฉ๋‹ˆ๋‹ค. ์ €์—๊ฒŒ "์„ค์น˜"์™€ "์—…๊ทธ๋ ˆ์ด๋“œ"๋Š” ๋ณ‘ํ•ฉํ•˜๊ณ  ์‹ถ์ง€ ์•Š์€ ๋‘ ๊ฐœ์˜ ๊ฐœ๋ณ„ ํ™œ๋™์ž…๋‹ˆ๋‹ค.
  2. ํ˜„์žฌ ์„ค์น˜๋œ ๋ฒ„์ „๋ณด๋‹ค ์ตœ์‹  ๋ฒ„์ „์ด ์—†์œผ๋ฉด(์•„๋ž˜ --only-binary ) ํ•  ์ผ์ด ์—†๋‹ค๋Š” ์•Œ๋ฆผ์„ ๊ธฐ๋Œ€ํ•ฉ๋‹ˆ๋‹ค.
  3. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด foo ๊ฐ€ ์ตœ์‹  ๋ฒ„์ „์œผ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œ๋  ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์ด ๋‚ด๊ฐ€ ์š”์ฒญํ•œ ๊ฒƒ์ด๋ฏ€๋กœ ๊ทธ๋ ‡๊ฒŒ ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

    • ์ œ์•ฝ ์กฐ๊ฑด์„ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์ด ์˜๋ฏธ๊ฐ€ ์žˆ๋‹ค๊ณ  ํ™•์‹ ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. 1.1์ด ์„ค์น˜๋˜์–ด ์žˆ์ง€๋งŒ 1.2๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ pip upgrade foo>1.0 ๋Š” ๋ฌด์—‡์„ ์˜๋ฏธํ•ฉ๋‹ˆ๊นŒ? ๊ฑฐ๊ธฐ์— 1.1์„ ๋‚จ๊ฒจ๋‘๋ฉด ์—…๊ทธ๋ ˆ์ด๋“œ๊ฐ€ ์•„๋‹ˆ์ง€๋งŒ 1.2๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋ฉด pip upgrade foo . ์•„๋งˆ๋„ pip upgrade foo<2.0 ์™€ ๊ฐ™์€ ๊ฒƒ์— ์˜๋ฏธ๋ฅผ ๋ถ€์—ฌํ•  ์ˆ˜ ์žˆ์ง€๋งŒ IMO๋Š” ๋งค์šฐ ์ด๋ก€์ ์ธ ๊ฒฝ์šฐ์ด๋ฉฐ ๋ณต์žกํ•  ๊ฐ€์น˜๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ pip upgrade ๊ฐ€ ํŒจํ‚ค์ง€ ์ด๋ฆ„ ๋ชฉ๋ก(์š”๊ตฌ์‚ฌํ•ญ๊ณผ ๋ฐ˜๋Œ€)๋งŒ ์ทจํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด ๋ด…์‹œ๋‹ค.

    • ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ pip upgrade <path_to_archive/wheel> ์„ ํ•ด์„ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค. ์ฒซ ๋ฒˆ์งธ ์ธ์Šคํ„ด์Šค์—์„œ ํ—ˆ์šฉ๋˜์ง€ ์•Š๋Š”๋‹ค๊ณ  ๊ฐ€์ •ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

  4. pip๊ฐ€ ์†Œ์Šค์—์„œ ๋นŒ๋“œ๋ฅผ ์‹œ๋„ํ•˜๋„๋ก ํ—ˆ์šฉํ•˜๊ฑฐ๋‚˜ ํ—ˆ์šฉํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(pip๋Š” ์†Œ์Šค์—์„œ ๋นŒ๋“œ๊ฐ€ ์ž‘๋™ํ•˜๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ์•Œ ์ˆ˜ ์—†๊ณ  ์†Œ์Šค ๋นŒ๋“œ ์‹คํŒจ). ๋”ฐ๋ผ์„œ --only-binary ๋Š” ์‚ฌ์šฉ์ž ์˜ต์…˜์ด์–ด์•ผ ํ•˜๋ฉฐ ์ง€์ •๋œ ๊ฒฝ์šฐ pip๊ฐ€ "์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ํ•ญ๋ชฉ"์„ ํ•ด๊ฒฐํ•  ๋•Œ ์†Œ์Šค ๋ฐฐํฌ๋ฅผ ๋ฌด์‹œํ•ด์•ผ ํ•จ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. (๋ฌผ๋ก  ๊ธฐ๋ณธ์ ์œผ๋กœ ๋ฐ”์ด๋„ˆ๋ฆฌ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ณ  --allow-source ์˜ต์…˜์ด ์žˆ์ง€๋งŒ ์–ด๋Š ์ชฝ์ด๋“  upgrade ๋Š” ์ด์™€ ๊ด€๋ จํ•˜์—ฌ install ์™€ ์ผ์น˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค).

์ž, ๋ช…์‹œ์ ์œผ๋กœ ์ง€์ •๋œ ํŒจํ‚ค์ง€๋ฅผ ์ฒ˜๋ฆฌํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๊ฑฐ๊ธฐ์— ๋…ผ์Ÿ์˜ ์—ฌ์ง€๊ฐ€์žˆ๋Š” ๊ฒƒ์ด ์žˆ๋Š”์ง€ ์˜์‹ฌํ•ฉ๋‹ˆ๋‹ค (๋‚˜์ค‘์— ์ƒ๋žตํ•ด์•ผํ•œ๋‹ค๊ณ  ๋งํ•˜๋Š” ๋ถ€๋ถ„์„ ์ œ์™ธํ•˜๊ณ ๋Š”). ์ด์ œ ์ข…์†์„ฑ์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

  • ๋‚ด๊ฐ€ ์ƒ๊ฐํ•˜๋Š” ๊ธฐ๋ณธ ๊ทœ์น™์€ ์‚ฌ์šฉ์ž ์ง€์ • ํŒจํ‚ค์ง€๋ฅผ _์‹ค์ œ๋กœ_ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜์ง€ ์•Š๋Š” ํ•œ ์ข…์†์„ฑ์— ๋Œ€ํ•ด ์•„๋ฌด ๊ฒƒ๋„ ํ•ด์„œ๋Š” ์•ˆ ๋œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์ด ์ถœ๋ฐœ์ ์ž…๋‹ˆ๋‹ค. ๋Œ€์ƒ์ด ์—…๊ทธ๋ ˆ์ด๋“œ๋˜์ง€ ์•Š์œผ๋ฉด ์ข…์†์„ฑ์„ ๋ณด์ง€ ๋งˆ์‹ญ์‹œ์˜ค. ํ•ญ์ƒ.
  • ๋‚ด ๊ฒฌํ•ด๋Š” _all_ ์ข…์†์„ฑ์ด ๋™์ผํ•œ ๋ฐฉ์‹์œผ๋กœ ์ฒ˜๋ฆฌ๋˜์–ด์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž ์ง€์ • ํŒจํ‚ค์ง€์˜ ์ง์ ‘์  ๋˜๋Š” ๊ฐ„์ ‘์  ์ข…์†์„ฑ์€ ๊ด€๋ จ์ด ์—†์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ด๊ฒƒ์ด ๋…ผ๋ž€์˜ ์—ฌ์ง€๊ฐ€ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•˜์ง€ ์•Š๋Š”๋‹ค.
  • ์—ฌ๊ธฐ์„œ ๊ธฐ๋ณธ์ ์ธ ๊ฐ€์ •์€ ์‚ฌ์šฉ์ž๊ฐ€ ์ข…์†์„ฑ ๋ชฉ๋ก์ด ๋ฌด์—‡์ธ์ง€ ๋ชจ๋ฅธ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ฒฐ๊ตญ, ์•”์‹œ์  ์ข…์†์„ฑ์„ ๊ฐ–๋Š” ์š”์ ์€ ์‚ฌ์šฉ์ž๊ฐ€ ์ข…์†์„ฑ์„ ๊ด€๋ฆฌํ•  ํ•„์š”๊ฐ€ _์—†๋„๋ก ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์‚ฌ์šฉ์ž๊ฐ€ ์ข…์†์„ฑ์— ๋Œ€ํ•ด ๋ช…์‹œ์ ์œผ๋กœ ์•Œ์•„์•ผ ํ•˜๋Š” ๋ชจ๋“  ์†”๋ฃจ์…˜์—๋Š” ๊ฒฐํ•จ์ด ์žˆ์Šต๋‹ˆ๋‹ค(๋ช…๋ น์ด ํŠน์ • ์ข…์†์„ฑ์— ๋Œ€ํ•œ ๋ฉ”์‹œ์ง€์™€ ํ•จ๊ป˜ ์‹คํŒจํ•˜๋Š” ๊ฒฝ์šฐ ์ œ์™ธ). ์ด ๊ฒฝ์šฐ ์‚ฌ์šฉ์ž๋Š” ์˜ต์…˜์— ์ง€์ •๋œ ํ•ด๋‹น ์ข…์†์„ฑ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋‹ค์‹œ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์šฐ๋ฆฌ๋Š” ๊ฐ€๋Šฅํ•œ ํ•œ ๋งŽ์€ ๊ฒฝ์šฐ์— ์ฒ˜์Œ์œผ๋กœ ์ž‘์—…ํ•˜๋ ค๊ณ  ํ•˜๋ฏ€๋กœ ์ด๊ฒƒ์ด ํ‘œ์ค€์œผ๋กœ ๊ฐ„์ฃผ๋˜์–ด์„œ๋Š” ์•ˆ ๋ฉ๋‹ˆ๋‹ค.
  • ๊ธฐ๋ณธ์ ์œผ๋กœ ์ ‘๊ทผ ๋ฐฉ์‹์€ ์ƒˆ๋กœ์šด ์ œ์•ฝ ์กฐ๊ฑด์„ ์ถฉ์กฑํ•˜๊ธฐ ์œ„ํ•ด ์—…๊ทธ๋ ˆ์ด๋“œํ•ด์•ผ ํ•˜๋Š” _๊ฐ€์ง„_ ์ข…์†์„ฑ๋งŒ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋Š” ๊ฒƒ์ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์—…๊ทธ๋ ˆ์ด๋“œ๋˜๋Š” ํ•ญ๋ชฉ์— ๋”ฐ๋ผ ์ œ์•ฝ ์กฐ๊ฑด์ด ๋ณ€๊ฒฝ๋  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์—ฌ๊ธฐ์—๋Š” ๋ถˆ์พŒํ•œ ๋ฌธ์ œ๊ฐ€ ์ˆจ์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์šฐ๋ฆฌ๊ฐ€ ๊ทธ ๋ฌธ์ œ์— ๋Œ€ํ•œ ์™„์ „ํ•œ ์†”๋ฃจ์…˜์„ ์ˆ˜ํ–‰ํ•˜๋“  ๋‹จ์ˆœํžˆ "์ตœ์„ ์˜ ๋…ธ๋ ฅ" ์†”๋ฃจ์…˜์„ ์‹œ๋„ํ•˜๋“  ๊ทธ๊ฒƒ์€ ์ค‘์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค(์ถฉ๋Œํ•˜๋Š” ์ œ์•ฝ ์กฐ๊ฑด์ด ์žˆ๋Š” ๋ณต์žกํ•œ ์ข…์†์„ฑ ๊ทธ๋ž˜ํ”„๊ฐ€ ์‹ค์ œ ์ƒํ™œ์—์„œ ์ผ๋ฐ˜์ ์ธ์ง€ ์˜์‹ฌ์Šค๋Ÿฝ์Šต๋‹ˆ๋‹ค). ์ค‘์š”ํ•œ ์ ์€ ์‚ฌ์šฉ์ž๊ฐ€ ์—…๊ทธ๋ ˆ์ด๋“œ๋ฅผ ์š”์ฒญํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ํ•„์š”ํ•œ ๊ฒฝ์šฐ๊ฐ€ ์•„๋‹ˆ๋ฉด ์—…๊ทธ๋ ˆ์ด๋“œํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ์›์น™์ž…๋‹ˆ๋‹ค.
  • "๋ชจ๋“  ๊ฒƒ์„ ์ตœ์‹  ๋ฒ„์ „์œผ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œ"๋ผ๋Š” ํ”Œ๋ž˜๊ทธ๊ฐ€ ์žˆ์œผ๋ฉด ์œ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(์ ์–ด๋„ ์ด์ „ ๋ฒ„์ „๊ณผ์˜ ํ˜ธํ™˜์„ฑ์„ ์œ„ํ•ด). ์—…๊ทธ๋ ˆ์ด๋“œ ์˜ต์…˜์„ ๋ถ„์„ํ•˜๊ณ  ๋ณด๊ณ ํ•˜๋Š” ๋„๊ตฌ(์•„๋งˆ๋„ pip ์™ธ๋ถ€์— ์žˆ์Œ)๊ฐ€ ์žˆ์œผ๋ฉด ๋” ์ข‹์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ์‚ฌ์šฉ์ž๊ฐ€ ์Šค์Šค๋กœ ๊ฒฐ์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋‚˜๋Š” ๋‚˜ ์ž์‹ ์ด ์ด๋Ÿฌํ•œ ์˜ต์…˜ ์ค‘ ํ•˜๋‚˜๊ฐ€ ํ•„์š”ํ•˜๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ฒŒ ๋ ์ง€ ๋ชจ๋ฆ…๋‹ˆ๋‹ค.
  • "์—ด์‹ฌํžˆ ์—…๊ทธ๋ ˆ์ด๋“œ" ์˜ต์…˜๋ณด๋‹ค upgrade-all ๋ช…๋ น(๋˜๋Š” ๋‹จ์ผ ๋ช…๋ น์„ ์œ ์ง€ํ•˜๋ ค๋Š” ๊ฒฝ์šฐ upgrade --all ์„ ์›ํ•  ๊ฐ€๋Šฅ์„ฑ์ด ํ›จ์”ฌ ๋” ๋†’์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋ช…๋ น์ค„์— ๋‚˜์—ด๋œ ๋ชจ๋“  ์„ค์น˜๋œ ํŒจํ‚ค์ง€์™€ ํ•จ๊ป˜ upgrade ์™€ ์˜๋ฏธ์ƒ ๋™์ผํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ํŒจํ‚ค์ง€์˜ ๋ธ”๋ผ์ธ๋“œ ์—…๊ทธ๋ ˆ์ด๋“œ๋ฅผ ์ˆ˜ํ–‰ํ•˜๊ณ  ๋‚˜๋ฉด(์ผ๋ฐ˜์ ์œผ๋กœ ํŒจํ‚ค์ง€์˜ ์ข…์†์„ฑ ํŠธ๋ฆฌ๋ฅผ ๋ชจ๋ฅด๊ฑฐ๋‚˜ ๋ฌธ์„œํ™”ํ•  ์ˆ˜ ์žˆ์Œ) ์•„๋งˆ๋„ "๋ชจ๋“  ๊ฒƒ"์„ ์›ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ฐ€์ƒ ํ™˜๊ฒฝ์„ ์‚ฌ์šฉํ•˜์—ฌ ์‚ฌ๋ฌผ์„ ๊ฒฉ๋ฆฌํ•˜๋Š” ๊ฒฝ์šฐ์—๋Š” ๋”์šฑ ๊ทธ๋ ‡์Šต๋‹ˆ๋‹ค.
  • --only-binary ์งˆ๋ฌธ์ด ์—ฌ๊ธฐ์— ๋‹ค์‹œ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค. ํ™•์‹คํžˆ ์‚ฌ์šฉ์ž๊ฐ€ ๊ธฐ๋ณธ ์—…๊ทธ๋ ˆ์ด๋“œ์— ๋Œ€ํ•ด --only-binary ๋ฅผ ์ง€์ •ํ•˜๋ฉด ์ข…์†์„ฑ์ด --only-binary ๋ฅผ ์•”์‹œํ•˜๋Š” ๊ฒƒ์œผ๋กœ ๊ฐ€์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์‚ฌ์šฉ์ž๊ฐ€ ๋ฉ”์ธ ํŒจํ‚ค์ง€๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œํ•  ๋•Œ ์†Œ์Šค ์„ค์น˜๋ฅผ ํ—ˆ์šฉํ•˜๋”๋ผ๋„ ์ข…์†์„ฑ์˜ ์†Œ์Šค ์—…๊ทธ๋ ˆ์ด๋“œ๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒƒ๊ณผ ๊ด€๋ จ๋œ ์‹คํŒจ ์œ„ํ—˜์„ ๋„์ž…ํ•˜๋Š” ๊ฒƒ์€ ๋ถ€๋‹นํ•ด ๋ณด์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์‚ฌ์šฉ์ž๊ฐ€ ์†Œ์Šค๋ฅผ ๋ช…์‹œ์ ์œผ๋กœ ํ—ˆ์šฉํ•˜์ง€ ์•Š๋Š” ํ•œ ์ข…์†์„ฑ์„ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๊ธฐ ์œ„ํ•ด ๋ฐ”์ด๋„ˆ๋ฆฌ๋งŒ ๊ณ ๋ คํ•ด์•ผ ํ•œ๋‹ค๊ณ  ์ œ์•ˆํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” --allow-source dep1,dep2,... ์˜ต์…˜์ด ํ•„์š”ํ•จ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์ด ์ œ์•ˆ์ด ๋…ผ๋ž€์˜ ์—ฌ์ง€๊ฐ€ ์žˆ์„ ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒํ•˜์ง€๋งŒ numpy์— ์˜์กดํ•˜๋Š” ์†Œ์Šค ํ˜•์‹์œผ๋กœ๋งŒ ๋ฐฐํฌ๋˜๋Š” ์ˆœ์ˆ˜ํ•œ Python ํŒจํ‚ค์ง€ foo ๋ฅผ ๊ณ ๋ คํ•˜์‹ญ์‹œ์˜ค. numpy >=1.10์— ๋”ฐ๋ผ foo 1.0์ด ์žˆ๊ณ  numpy>=1.11์— ๋”ฐ๋ผ foo 2.0์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๋Š” foo 1.0์„ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฉฐ ์—…๊ทธ๋ ˆ์ด๋“œ๋ฅผ ์›ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋“ค์€ numpy๋ฅผ ๊ตฌ์ถ•ํ•  ์ˆ˜๋‹จ์ด ์—†์Šต๋‹ˆ๋‹ค. ๊ทธ๋“ค์€ foo์— ๋Œ€ํ•œ ์†Œ์Šค ์—…๊ทธ๋ ˆ์ด๋“œ๋ฅผ ํ—ˆ์šฉํ•ด์•ผ ํ•˜์ง€๋งŒ numpy 1.11์„ ๋นŒ๋“œํ•˜๋Š” ๋ฐ ์‹œ๊ฐ„์„ ๋‚ญ๋น„ํ•˜๊ณ  ์‹ถ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ฌผ๋ก  --only-binary numpy ์ง€์ •ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ foo๊ฐ€ numpy์— ์˜์กดํ•œ๋‹ค๋Š” ์‚ฌ์‹ค์กฐ์ฐจ ์ธ์‹ํ•˜์ง€ ๋ชปํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๊ฒŒ ๋‹ค์•ผ. ์ €์—๊ฒŒ ์š”๊ตฌ ์‚ฌํ•ญ์€ ๋งค์šฐ ๋ช…ํ™•ํ•ฉ๋‹ˆ๋‹ค(์†”์งํžˆ, ๊ตฌํ˜„ ๋ฌธ์ œ๋ฅผ ๋ฌด์‹œํ•  ๊ฒฝ์šฐ ์š”๊ตฌ ์‚ฌํ•ญ์ด ํŠนํžˆ ๋…ผ์Ÿ์˜ ์—ฌ์ง€๊ฐ€ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค). ๊ทธ๋Ÿฌ๋‚˜ ๊ตฌํ˜„์€ ์—ฌ๊ธฐ์—์„œ ํ‚ฌ๋Ÿฌ์ž…๋‹ˆ๋‹ค(๊ธฐ๋ณธ์ ์œผ๋กœ ์œ„์˜ ๋‚ด์šฉ์€ ์ด์ „์— ๋…ผ์˜๋œ ๋ฐ”์™€ ๊ฐ™์ด ์™„์ „ํ•œ SAT ์†”๋ฒ„ ์ ‘๊ทผ ๋ฐฉ์‹์„ ์š”๊ตฌํ•ฉ๋‹ˆ๋‹ค). SAT ์†”๋ฒ„๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ์ด ๋„ˆ๋ฌด ์–ด๋ ต๊ธฐ ๋•Œ๋ฌธ์— ์šฐ๋ฆฌ๊ฐ€ ๊ธฐ๊บผ์ด ํƒ€ํ˜‘ํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„์€ ๋…ผ์Ÿ์˜ ์—ฌ์ง€๊ฐ€ ์žˆ๋Š” ๋ถ€๋ถ„์ž…๋‹ˆ๋‹ค.

๋‚ด๊ฐ€ ์•„๋Š” ํ•œ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ตฌํ˜„ ๊ณผ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

  1. ์™„์ „ํ•œ SAT ํ’€์ด๋Š” ์–ด๋ ต์Šต๋‹ˆ๋‹ค. ์–ด๋–ค ๋Œ€์•ˆ์ด ๋” ๊ฐ„๋‹จํ•˜๊ณ  SAT ์†”๋ฒ„์™€ ์–ด๋–ป๊ฒŒ ๋‹ค๋ฅธ์ง€ ์ถฉ๋ถ„ํžˆ ์ดํ•ดํ•˜์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค. (๊ธ€์Ž„์š”, ์—ด์„ฑ์ ์ธ ์—…๊ทธ๋ ˆ์ด๋“œ๋Š” ์ถฉ๋ถ„ํžˆ ๊ฐ„๋‹จํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ํ˜„์žฌ ์šฐ๋ฆฌ๊ฐ€ ํ•˜๋Š” ์ผ์ž…๋‹ˆ๋‹ค.) ํŠนํžˆ, "ํ•„์š”ํ•˜์ง€ ์•Š์€ ๊ฒƒ์€ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค"๋ผ๋Š” ๋‹จ์ˆœํ•œ ์›์น™์— ๋”ฐ๋ผ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜์ง€ ๋ง์•˜์–ด์•ผ ํ•˜๋Š” ๊ฒƒ์„ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋Š” ์ƒํ™ฉ์ด ๋ฐœ์ƒํ–ˆ์„ ๋•Œ์ž…๋‹ˆ๋‹ค.
  2. ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ ์ข…์†์„ฑ ์ œ์•ฝ ์กฐ๊ฑด์„ ์ œ์™ธํ•œ ๋ชจ๋“  ํ•ญ๋ชฉ์— ๋Œ€ํ•ด ์„ค๋ช…ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ฒ„์ „์˜ ์ƒํ•œ์„ ์ด๋‚˜ ํ—ˆ์šฉ๋œ ๋ฒ„์ „ ๋ชฉ๋ก์— ๊ด€์—ฌํ•˜๋ฉด ์ƒํ™ฉ์ด ์•…ํ™”๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ํ˜„์‹ค์ ์œผ๋กœ ์ด๋Ÿฌํ•œ ๊ฒฝ์šฐ๋Š” ๋งค์šฐ ๋“œ๋ฌผ ๊ฒƒ์ž…๋‹ˆ๋‹ค(๋ˆ„๊ตฐ๊ฐ€ PyPI์—์„œ ์‹ค์ œ ์ข…์†์„ฑ ์ •๋ณด์— ๋Œ€ํ•œ ์—ฐ๊ตฌ๋ฅผ ํ–ˆ์œผ๋ฉด ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡๊ฒŒ ํ•˜๋ ค๊ณ  ํ•  ์ˆ˜๋Š” ์žˆ์ง€๋งŒ ์‹œ๊ฐ„์„ ๋‚ผ ์ˆ˜ ์žˆ์„์ง€๋Š” ์˜๋ฌธ์ž…๋‹ˆ๋‹ค).
  3. ์—ฌ๋Ÿฌ ๋Œ€์ƒ( pip upgrade a b c ์ด ์žˆ๋Š” ๊ฒฝ์šฐ ์ด๋ฅผ 3๊ฐœ์˜ ๊ฐœ๋ณ„ ์ž‘์—…("์—…๊ทธ๋ ˆ์ด๋“œ a", "์—…๊ทธ๋ ˆ์ด๋“œ b", "์—…๊ทธ๋ ˆ์ด๋“œ c")์œผ๋กœ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๊นŒ, ์•„๋‹ˆ๋ฉด 3๊ฐœ๋ฅผ ๋‹จ์ผ "๊ฒฐํ•ฉ"์œผ๋กœ ๋ณ‘ํ•ฉํ•ฉ๋‹ˆ๊นŒ? ์–ด๋–ป๊ฒŒ๋“  ์กฐ์น˜๋ฅผ ์ทจํ•˜์‹ญ์‹œ์˜ค(๋Œ€์ƒ๊ณผ ๋‹ค๋ฅธ ์ข…์†์„ฑ์„ ์ฒ˜๋ฆฌํ•  ๊ฒƒ์„ ์ œ์•ˆํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์€ ๋”๋ฏธ๊ฐ€, b ๋ฐ c์— ์˜์กดํ•˜๊ณ  ๋”๋ฏธ๊ฐ€ ์—…๊ทธ๋ ˆ์ด๋“œ๋˜์—ˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๋Š” pip upgrade dummy ์™€ ๋™์ผํ•˜์ง€ _์•„๋‹ˆ๋‹ค_).

๋ˆ„๊ตฐ๊ฐ€ ์œ„์˜ ์˜๊ฒฌ์ด๋‚˜ ์ฃผ์žฅ์— ๋Œ€ํ•ด ๋ฌธ์ œ๋ฅผ ์ œ๊ธฐํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด ๊ทธ๊ฒƒ์€ ์ข‹์Šต๋‹ˆ๋‹ค. ์ด ๋Œ€๋ถ€๋ถ„์€ ๋‚ด ์˜๊ฒฌ์ผ ๋ฟ์ด๋ฉฐ ์†”์งํžˆ ๋ณต์žกํ•œ ํ™˜๊ฒฝ์—์„œ๋Š” ์ž‘์—…ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋‚ด ์‚ฌ์šฉ์€ ๋Œ€๋ถ€๋ถ„ Windows์—์„œ ์‹œ์Šคํ…œ ์„ค์น˜ ๋ฐ ๋ช‡ ๊ฐ€์ง€ ๊ฐ€์ƒ ํ™˜๊ฒฝ์„ ์œ ์ง€ ๊ด€๋ฆฌํ•˜๋Š” ๊ฒƒ๊ณผ ๊ด€๋ จ์ด ์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค(๋”ฐ๋ผ์„œ ๋ฐ”์ด๋„ˆ๋ฆฌ ์„ค์น˜์™€ ์†Œ์Šค ์„ค์น˜์— ๋Œ€ํ•œ ๋…ผ์Ÿ์€ ๋‚˜์ง€๋งŒ ๋ณต์žกํ•œ ์ข…์†์„ฑ ๊ทธ๋ž˜ํ”„๋Š” ๊ทธ๋ฆฌ ๋งŽ์ง€ ์•Š์Šต๋‹ˆ๋‹ค). ๊ฐ€์ •์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋Š” ์‚ฌ์šฉ ์‚ฌ๋ก€๊ฐ€ ๋งŽ์„์ˆ˜๋ก ์ข‹์Šต๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ ํ˜„์žฌ pip install ๋ฐ pip install --upgrade ๋ผ๋Š” ๋‘ ๊ฐ€์ง€ ์ž‘์—…์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด ๋‘ ๊ฐ€์ง€ ์ž‘์—…์€ ๋ชจ๋‘ ์‹ค์ œ ์ƒํ™œ์—์„œ ์•„๋ฌด๋„ ์›ํ•˜์ง€ ์•Š๋Š” ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

pip install ๊ฒฝ์šฐ ์‹œ์Šคํ…œ์— ์ด๋ฏธ ์„ค์น˜๋œ ํ•ญ๋ชฉ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์ตœ์‹  ๋ฒ„์ „์„ ๋ฐ›์„ ์ˆ˜๋„ ์žˆ๊ณ  ๋ฐ›์ง€ ๋ชปํ•  ์ˆ˜๋„ ์žˆ๋Š” ์ด์ƒํ•œ ์ข…๋ฅ˜์˜ ๋™์ž‘์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฐ ์ข…๋ฅ˜์˜ ๊ธฐ์ดํ•จ์ด pip๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์–ด๋ ต๊ฒŒ ๋งŒ๋“ ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ €๋Š” ๊ทธ๊ฒƒ์ด ์ •๋ง๋กœ ์˜๋ฏธ๊ฐ€ ์—†๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค(์—…๊ทธ๋ ˆ์ด๋“œํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์ด ์–ด๋–ค ์ƒํ™ฉ์— ๊ด€์‹ฌ์ด ์žˆ๊ฒ ์Šต๋‹ˆ๊นŒ? ๊ทธ๋Ÿฌ๋‚˜ ์•„์ง ์„ค์น˜ํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ์ตœ์‹  ๋ฒ„์ „์„ ์„ค์น˜ํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๊นŒ? ๊ทธ๊ฒƒ?). ์ด ๋ช…๋ น์— ์ด ์ด์ƒํ•œ ์•„๋งˆ๋„-์ตœ์‹ -์•„๋งˆ๋„-์•„๋‹Œ ๋™์ž‘์ด ์žˆ๋‹ค๋Š” ์‚ฌ์‹ค์ด ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ด pip install ์•„๋‹Œ ๊ธฐ๋ณธ ๋ช…๋ น์œผ๋กœ pip install ---upgrade ์— ๋„๋‹ฌํ•˜๋Š” ๊ฒƒ์„ ๋ณด๋Š” ์ด์œ ๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ pip install --upgrade ๋Š” ํ›จ์”ฌ ๋‚ซ์ง€ ์•Š์œผ๋ฉฐ ์ผ๊ด€๋œ ๋™์ž‘์„ ์ œ๊ณตํ•˜์ง€๋งŒ ์ง€๋‚˜์น˜๊ฒŒ ์—ด์‹ฌ์ด๋ฉฐ ์‚ฌ์šฉ์ž๊ฐ€ ์•Œ์ง€ ๋ชปํ•˜๋Š” _๋ชจ๋“  ๊ฒƒ_์˜ ์ „์ฒด ์—…๊ทธ๋ ˆ์ด๋“œ๋กœ ํ™•์žฅ๋˜์–ด pip install --upgrade ๋ช…๋ น. ์ด ๋™์ž‘์— ๋Œ€ํ•œ ์•ฝ๊ฐ„์˜ ์‚ฌ์šฉ์„ ๋ณผ ์ˆ˜ ์žˆ์ง€๋งŒ ์ตœ์ƒ์œ„ ๋ช…๋ น์— ๋Œ€ํ•œ ์ข‹์€ ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ ๋ณด์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์„œ ์šฐ๋ฆฌ๊ฐ€ ํ•ด์•ผ ํ•  ์ผ์€ `pip install ... more consistent. In that I mean pip install ์ด ํ•ญ์ƒ ์ตœ์‹  ๋ฒ„์ „ ์„ ๊ฐ–๋„๋ก ํ•˜๋Š” ๊ฒฝ๋กœ๋ฅผ ํŒŒ์•…ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋ช…์‹œ์ ์œผ๋กœ ์–ธ๊ธ‰๋˜์ง€ ์•Š์€ ์‚ฌํ•ญ์€ ๋งŒ์ง€์ง€ ๋ง์•„์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ๋ฅผ ์ œ์™ธํ•˜๊ณ ๋Š” ๋‹ค๋ฅธ ๋ฐฉ์‹์œผ๋กœ ์‹œ๋„ํ•ด์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค(์ œ์•ฝ ์กฐ๊ฑด์„ ์ถฉ์กฑํ•˜๊ธฐ ์œ„ํ•ด ๊ทธ๋ ‡๊ฒŒ ํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ์—๋Š” ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์ตœ์‹  ๋ฒ„์ „์œผ๋กœ ๋‹ค์‹œ ์—…๊ทธ๋ ˆ์ด๋“œํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋“  ์ œ์•ฝ ์กฐ๊ฑด๊ณผ ์ผ์น˜ํ•จ).

์ด ๋ช…๋ น์— --eager ๋˜๋Š” --recursive ๋˜๋Š” --upgrade-all-the-things ๋™์ž‘์„ ์ฃผ๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

ํŒจํ‚ค์ง€ ๋ชฉ๋ก์„ ๊ฐ€์ ธ์˜ค๋Š” pip upgrade ๋ช…๋ น์€ ์šฐ๋ฆฌ๊ฐ€ ํ•ด์•ผ ํ•  ์ผ์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ช…๋ น์„ ์ถ”๊ฐ€ํ•˜๋ฉด ์„ค์น˜๋œ ๋ชจ๋“  ๊ฒƒ์„ ์ตœ์‹  ๋ฒ„์ „์œผ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค(์ข…์†์„ฑ ์ฒด์ธ ์ •๋ณด์™€ --only-binary ๊ฐ™์€ ์ˆ˜์ •์ž๋ฅผ ๊ณ ๋ ค).

๋ญ? ๋”ฐ๋ผ์„œ foo๊ฐ€ ์„ค์น˜๋œ ๊ฒฝ์šฐ pip install foo ๊ฐ€ ํ•ญ์ƒ ์‹คํŒจํ•˜์ง€๋Š” ์•Š์Šต๋‹ˆ๊นŒ? ๊ทธ๊ฒƒ์€ ๋‚˜์—๊ฒŒ ์ž˜๋ชป๋œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. "์ด๋ฏธ ์„ค์น˜๋จ"์ด๋ผ๊ณ  ํ‘œ์‹œ๋  ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒํ•ฉ๋‹ˆ๋‹ค.

๋‚˜๋Š” pip install ๊ฐ€ "์„ค์น˜ ๋˜๋Š” ์—…๊ทธ๋ ˆ์ด๋“œ"๋ผ๋Š” ์ƒ๊ฐ์— ๊ด€์‹ฌ์ด ์—†์Šต๋‹ˆ๋‹ค. ๋ช…์‹œ์ ์ด๊ฑฐ๋‚˜ ๋ชจ๋“  ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

ํ˜„์žฌ pip install foo ๋Š” ๋ฌด์–ธ๊ฐ€๊ฐ€ ์„ค์น˜๋˜์—ˆ๋Š”์ง€ ์—ฌ๋ถ€์— ๋”ฐ๋ผ "์‹คํŒจ"ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์•„๋ฌด ๊ฒƒ๋„ ํ•˜์ง€ ์•Š๊ณ  X๊ฐ€ ์ด๋ฏธ ์„ค์น˜๋˜์–ด ์žˆ๋‹ค๊ณ  ๋งํ•ฉ๋‹ˆ๋‹ค. ๋‚ด ์ฃผ์žฅ์€ ํ–‰๋™์ด ๊ทธ๋‹ค์ง€ ์œ ์šฉํ•˜์ง€ ์•Š๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. "์ผ๋ถ€ ๋ฒ„์ „, ๋ชจ๋“  ๋ฒ„์ „์ด ์„ค์น˜๋œ ๊ฒƒ์œผ๋กœ ํ™•์ธ"์€ ๋‚˜์—๊ฒŒ ์œ ์šฉํ•œ ๋™์ž‘์ด ์•„๋‹Œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ๋‚ด๊ฐ€ apt-get ์ •๋„๋ฅผ ์ข‹์•„ํ•˜๋Š” ๋‹ค๋ฅธ ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž์™€ ์ผ์น˜ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ข‹์•„, ๋‚˜๋Š” ๊ทธ ํ–‰๋™์ด ์œ ์šฉํ•˜์ง€ ์•Š๋‹ค๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค(๊ฐœ์ธ์ ์œผ๋กœ ๋‚˜๋Š” "์ด๋ฏธ ์„ค์น˜๋จ"์„ ์ƒ๋‹นํžˆ ๋ฌดํ•ดํ•˜๋‹ค๊ณ  ์กฐ์šฉํžˆ ๋ฐ›์•„๋“ค์ด๊ณ  ์žˆ์ง€๋งŒ). ๊ทธ๋Ÿฌ๋‚˜ ์—…๊ทธ๋ ˆ์ด๋“œ๋ณด๋‹ค๋Š” ์ด๋ฏธ ์„ค์น˜๋œ ํŒจํ‚ค์ง€์˜ ์„ค์น˜๊ฐ€ ์‹คํŒจํ•˜๋Š” ๊ฒƒ์„ ๋ณด๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

foo 2.0์ด ์ด๋ฏธ ์„ค์น˜๋œ ๊ฒฝ์šฐ pip install foo-1.0-none-any.whl ๊ฐ€ ๋ฌด์—‡์„ ํ•˜๊ธฐ๋ฅผ ๊ธฐ๋Œ€ํ•ฉ๋‹ˆ๊นŒ? ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œ? ์กฐ์šฉํžˆ ์•„๋ฌด๊ฒƒ๋„ ํ•˜์ง€? ์‚ฌ๋žŒ๋“ค์ด ์‹ค์ œ๋กœ ๊ธฐ์–ตํ• ์ง€ ์˜์‹ฌ๋˜๋Š” ๋ณต์žกํ•œ ๊ทœ์น™ ์ง‘ํ•ฉ๋ณด๋‹ค ๋ฉ‹์ง€๊ณ  ๊ฐ„๋‹จํ•œ "์ด๋ฏธ ์„ค์น˜๋จ" ์˜ค๋ฅ˜๊ฐ€ ํ‘œ์‹œ๋˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

์ €๋Š” Linux ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž์— ๋Œ€ํ•œ ๊ฒฝํ—˜์ด ๋งŽ์ง€ ์•Š์œผ๋ฏ€๋กœ pip์™€์˜ ์œ ์‚ฌ์ (๋˜๋Š” ๊ธฐํƒ€)์— ๋Œ€ํ•ด ์–ธ๊ธ‰ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ apt-get install foo ๊ฐ€) ์—…๊ทธ๋ ˆ์ด๋“œ๋  ๊ฒƒ์ด๋ผ๊ณ ๋Š” ์ƒ๊ฐํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์—…๊ทธ๋ ˆ์ด๋“œํ•œ๋‹ค๊ณ  ํ•˜๋ฉด ์ €๋„ ์ด๊ฒƒ๋„ ์ด์ƒํ•˜๋‹ค๊ณ  ๋Œ€๋‹ตํ•  ์ˆ˜ ๋ฐ–์— ์—†์Šต๋‹ˆ๋‹ค.

"์ผ๋ถ€ ๋ฒ„์ „, ๋ชจ๋“  ๋ฒ„์ „์ด ์„ค์น˜๋œ ๊ฒƒ์œผ๋กœ ํ™•์ธ"์€ ๋‚˜์—๊ฒŒ ์œ ์šฉํ•œ ๋™์ž‘์ด ์•„๋‹Œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์ด์— ๋Œ€ํ•œ ๊ฐ„๋‹จํ•œ ๋ถ€์ˆ˜์ ์ธ ์งˆ๋ฌธ: "์ด ํŠน์ • ๋ฒ„์ „์ด ์„ค์น˜๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธ"์€ ์–ด๋–ป์Šต๋‹ˆ๊นŒ?

์‹ ๊ฒฝ์“ฐ์ง€ ๋งˆ์„ธ์š”. ์˜ค๋Š˜๋‚  ์šฐ๋ฆฌ๋Š” ๊ทธ๋Ÿฐ ํ–‰๋™์„ ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

@pf๋ฌด์–ด :

foo 2.0์ด ์ด๋ฏธ ์„ค์น˜๋œ ๊ฒฝ์šฐ pip install foo-1.0-none-any.whl์ด ๋ฌด์—‡์„ ํ•  ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒํ•ฉ๋‹ˆ๊นŒ? ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œ? ์กฐ์šฉํžˆ ์•„๋ฌด๊ฒƒ๋„ ํ•˜์ง€? ์‚ฌ๋žŒ๋“ค์ด ์‹ค์ œ๋กœ ๊ธฐ์–ตํ• ์ง€ ์˜์‹ฌ๋˜๋Š” ๋ณต์žกํ•œ ๊ทœ์น™ ์ง‘ํ•ฉ๋ณด๋‹ค ๋ฉ‹์ง€๊ณ  ๊ฐ„๋‹จํ•œ "์ด๋ฏธ ์„ค์น˜๋จ" ์˜ค๋ฅ˜๊ฐ€ ํ‘œ์‹œ๋˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

ใ…Žใ…Ž ๊ธฐ๋Œ€๊ฐ€ ํฝ๋‹ˆ๋‹ค. ๋‚˜๋Š” _๋ถ„๋ช…ํžˆ_ ์ด ๊ฒฝ์šฐ pip๊ฐ€ ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œ๋˜์–ด์•ผ ํ•œ๋‹ค๊ณ  ๋งํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๋Š” pip๊ฐ€ ์ด ํŠน์ • ํœ ์„ ์„ค์น˜ํ•˜๊ธฐ๋ฅผ ์›ํ•œ๋‹ค๊ณ  ์™„์ „ํžˆ ๋ช…์‹œ์ ์œผ๋กœ ๋งํ–ˆ์œผ๋ฏ€๋กœ pip๋Š” ํ•ด๋‹น ํŠน์ • ํœ ์„ ์„ค์น˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์— ๋Œ€ํ•ด ๋ณต์žกํ•œ ๊ฒƒ์€ ์—†์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ "๋ฐฐํฌ ๊ฒฝ๋กœ/ํŒŒ์ผ์ด ๋ช…์‹œ์ ์œผ๋กœ ์ œ๊ณต๋จ" ๊ฒฝ์šฐ๋Š” #536์ž…๋‹ˆ๋‹ค. ์•„๋งˆ๋„ ์‚ฌ์šฉ์ž๊ฐ€ "pip install foo"๋ผ๊ณ  ๋งํ•˜๋ฉด ํŒจํ‚ค์ง€ ์ƒ‰์ธ์œผ๋กœ ์ด๋™ํ•˜์—ฌ foo 2.0, foo 1.0์ด ์ด๋ฏธ ์„ค์น˜๋œ ๊ฒฝ์šฐ.

๋‚˜๋Š” ์—ฌ๊ธฐ์—์„œ Donald์˜ ์ž…์žฅ์— ๋งค์šฐ ๋™์˜ํ•ฉ๋‹ˆ๋‹ค. " pip install ๋Š” ๋ฌด์—‡์„ ํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ?"๋ผ๋Š” ์งˆ๋ฌธ์—์„œ ์‹œ์ž‘ํ•˜๋ฉด ์ด๋ฆ„์— '์„ค์น˜'๊ฐ€ ํ‘œ์‹œ๋˜์–ด ์„ค์น˜๋งŒ ํ•˜๊ณ  ์—…๊ทธ๋ ˆ์ด๋“œ๋Š” ํ•˜์ง€ ์•Š์•„์•ผ ํ•œ๋‹ค๊ณ  ์ฃผ์žฅํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค( ๊ธ€์Ž„, ์–ด๋–ค ์ œ์•ฝ์ด ์žˆ๋Š” ๊ฒฝ์šฐ๋ฅผ ์ œ์™ธํ•˜๊ณ ). ๊ทธ๋Ÿฌ๋‚˜ "์‚ฌ์šฉ์ž๊ฐ€ ์›ํ•˜๋Š” ์ž‘์—…์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?"๋ผ๋Š” ์งˆ๋ฌธ์—์„œ ์‹œ์ž‘ํ•˜๋ฉด ์ตœ์‹  ๋ฒ„์ „์„ ์„ค์น˜ํ•˜๊ฑฐ๋‚˜ ์ด์ „ ๋ฒ„์ „์„ ๋‚จ๊ธธ ์ˆ˜ ์žˆ๋Š” ๋ช…๋ น์ด ์ •๋ง ์ด์ƒํ•˜๊ณ  ์ง๊ด€์ ์ด์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ์‚ฌ์šฉ์ž๊ฐ€ pip install x ์ž…๋ ฅํ•˜๋Š” ๊ฒฝ์šฐ์˜ 99%์—์„œ (a) ์„ค์น˜ ์—ฌ๋ถ€๋ฅผ ํ™•์‹ ํ•˜์ง€ ๋ชปํ•˜๊ฑฐ๋‚˜ ์„ค์น˜๋˜์–ด ์žˆ์ง€ ์•Š๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ณ  (b) ์ฒ˜์Œ ์‚ฌ์šฉํ•˜๊ธฐ ์‹œ์ž‘ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์„ค์น˜ํ•˜์‹ญ์‹œ์˜ค. (์ฒ˜์Œ์ด ์•„๋‹ˆ๋ฉด ์„ค์น˜๋œ ๊ฒƒ์„ ์•Œ๊ณ  pip install ์‹คํ–‰ํ•˜์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.) ์ด ์ƒํ™ฉ์—์„œ ์ตœ์‹  ๋ฒ„์ „์„ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์ด ์˜ณ์Šต๋‹ˆ๋‹ค.

@nchammas :

"์ด ํŠน์ • ๋ฒ„์ „์ด ์„ค์น˜๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธ"์€ ์–ด๋–ป์Šต๋‹ˆ๊นŒ? ๋ฉฑ๋“ฑ์„ฑ ์„ค์น˜ ๋ช…๋ น์ด ์žˆ๋Š” ์ €์—๊ฒŒ ์œ ์šฉํ•œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

"ํŠน์ • ๋ฒ„์ „"์˜ ๊ฒฝ์šฐ pip install x==<version> ์žˆ์Šต๋‹ˆ๋‹ค.

๋˜ํ•œ ์–ด๋–ค ์ข…๋ฅ˜์˜ ์Šคํฌ๋ฆฝํŒ…/ํ”„๋กœ๊ทธ๋ž˜๋งคํ‹ฑ ์‚ฌ์šฉ์˜ ๊ฒฝ์šฐ Dist-Requires: x ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•˜๋Š” ๊ฒƒ๊ณผ ๋™์ผํ•œ ์˜๋ฏธ๋ฅผ ๊ฐ€์ง„ pip require x ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์œ ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฒ„์ „์ด ์„ค์น˜๋˜์—ˆ์ง€๋งŒ ๋ฌด์—‡์— ๋Œ€ํ•œ ๋ณด์žฅ์€ ์—†์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด๊ฒƒ์€ ์ตœ์ข… ์‚ฌ์šฉ์ž๋ฅผ ์œ„ํ•œ ๊ฒƒ์ด ์•„๋‹Œ ํ•˜์œ„ ์ˆ˜์ค€ ๋ช…๋ น์ž…๋‹ˆ๋‹ค.

์ด๋“ค ์‚ฌ์ด์˜ ์ฐจ์ด์ ์— ๋Œ€ํ•ด ์ƒ๊ฐํ•˜๋Š” ํ•œ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•: x ์ด ์„ค์น˜๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ pip require x ์—์„œ ์ž„์˜์˜ ์ด์ „ ๋ฒ„์ „์„ ์„ค์น˜ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. (๊ทธ๋ฆฌ๊ณ  ์  ์žฅ, ์•„๋งˆ๋„ ๊ทธ๋ž˜์•ผ๋งŒ ํ•˜๊ณ , ์‚ฌ๋žŒ๋“ค์ด ๊ทธ๊ฒƒ์— ๋Œ€ํ•ด ๊ฐ•๊ฑดํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค .) ํ•˜์ง€๋งŒ ์•„๋ฌด๋„ pip install x ์ž„์˜์˜ ์ด์ „ ๋ฒ„์ „์„ ์„ค์น˜ํ•˜๋Š” ๊ฒƒ์„ ๋ฐ›์•„๋“ค์ด์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

(์ด๊ฒƒ์€ ์‚ฌ๊ณ  ์‹คํ—˜์ž…๋‹ˆ๋‹ค. ์ €๋Š” x ๊ฐ€ ์—†๋Š” ํ™˜๊ฒฝ์—์„œ ์ผ๋ฐ˜ Dist-Requires: x ๋˜๋Š” pip require x ๊ฐ€ x ์˜ ์ž„์˜์˜ ์ด์ „ ๋ฒ„์ „์„ ์„ ํƒํ•ด์•ผ ํ•œ๋‹ค๊ณ  ์ฃผ์žฅํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๊ธ€์Ž„, ์‚ฌ์šฉ์ž๊ฐ€ pip install x ์ž…๋ ฅํ•˜๋Š” ๋˜ ๋‹ค๋ฅธ ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์ด๋ฏธ ์„ค์น˜๋˜์–ด ์žˆ์Œ์„ ์•Œ๊ณ  ์žˆ์ง€๋งŒ install ํ•ญ์ƒ ์—…๊ทธ๋ ˆ์ด๋“œ๋˜๋Š” ๋ฐ๋น„์•ˆ ์Šคํƒ€์ผ ๋™์ž‘์ด ์žˆ๋Š” ์‹œ์Šคํ…œ์— ์ต์ˆ™ํ•ฉ๋‹ˆ๋‹ค. . ๋ถ„๋ช…ํžˆ ์ด๋Ÿฌํ•œ ์‚ฌ์šฉ์ž๋Š” ์—…๊ทธ๋ ˆ์ด๋“œ๋ฅผ ์›ํ•ฉ๋‹ˆ๋‹ค :-).

pip upgrade ๋ช…๋ น์„ ์ถ”๊ฐ€ํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

pip ์‚ฌ์šฉ์ž๋Š” ์ด๋ฏธ pip์˜ ๋™์ž‘์— ๋Œ€ํ•ด ์–ด๋Š ์ •๋„ ๊ธฐ๋Œ€ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
์ฃผ์š” ๋ฌธ์ œ์ ์€ pip instal --upgrade ๊ธฐ๋ณธ ๋™์ž‘์—์„œ ๋ฐœ์ƒํ•˜๋ฏ€๋กœ ์ด์— ์ง‘์ค‘ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

pip 9์˜ ๊ฒฝ๊ณ ์™€ pip install --upgrade , (--eager/non-eager) ์˜ ๋™์ž‘์„ ์กฐ์ •ํ•˜๋Š” ์ถ”๊ฐ€ ์˜ต์…˜๊ณผ ํ•จ๊ป˜ ๊ธฐ๋ณธ ๋™์ž‘์„ ๋ณ€๊ฒฝํ•œ pip 10์€ ์ถฉ๋ถ„ํžˆ ๊ฐ„๋‹จํ•ด ๋ณด์ด์ง€๋งŒ ์ฃผ์š” ๋ฌธ์ œ๋ฅผ ์ œ๊ฑฐํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ์›์ด๋ฉฐ pip ์‚ฌ์šฉ์ž์˜ pip ์ •์‹ ์  ๋ชจ๋ธ์„ ์†์ƒ์‹œํ‚ค์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋„ค, ์ €๋Š” ํ™•์‹คํžˆ "์‚ฌ์šฉ์ž๊ฐ€ ํ•˜๊ธฐ๋ฅผ ์›ํ•˜๋Š” ์ž‘์—…"๊ณผ "X ๋ช…๋ น์ด ์ˆ˜ํ–‰ํ•ด์•ผ ํ•˜๋Š” ์ž‘์—…"์—์„œ ์ด ๋ฌธ์ œ์— ์ ‘๊ทผํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ์‚ฌ์šฉ์ž๊ฐ€ _์ƒ๊ฐ_ํ•˜๋Š” ์ด ๋†’์€ ์ˆ˜์ค€์˜ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๊ณ  ์ด๋ฅผ ๋‹จ์ผ ๋ช…๋ช…๋œ ๋ช…๋ น์— ๋งคํ•‘ํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค(๋ช…์‹œ์ ์ด์ง€๋งŒ pip install-the-latest-version``์€ ์‚ฌ์šฉ์ž ์นœํ™”์ ์ด์ง€ ์•Š์Œ). .

์ด๊ฒƒ์€ ๋ถ„๋ช…ํžˆ ๋งค์šฐ ๋ชจํ˜ธํ•˜์ง€๋งŒ ํ˜„์žฌ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ํ•ญ๋ชฉ์„ ๊ณ ๋ คํ•  ๋•Œ ์„ค์น˜ ํ”„๋กœ๊ทธ๋žจ์—์„œ ๊ธฐ๋Œ€ํ•˜๋Š” ๊ฒƒ๊ณผ ๊ฐ€์žฅ ์ผ์น˜ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋‚ด๊ฐ€ ํ•˜๋Š” ์ž‘์—…์˜ 99%๊ฐ€ pip install -U <whatever> ๋ผ๊ณ  ๋งํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ๋‹ค์–‘ํ•œ ์ž๋™ํ™” ์Šคํฌ๋ฆฝํŠธ์—์„œ pip install -U ์‚ฌ์šฉํ•˜๋Š” ์‚ฌ๋žŒ๋“ค์„ ๋ด…๋‹ˆ๋‹ค. ๋˜ํ•œ npm๊ณผ ๊ฐ™์ด ๋‹ค๋ฅธ ์ธ๊ธฐ ์žˆ๋Š” ์–ธ์–ด ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž๊ฐ€ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ˆ˜ํ–‰ํ•˜๋Š” ์ž‘์—…์ด๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ๋žŒ๋“ค์ด -U ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์„ ๋ณธ ๊ฒฝ์šฐ, ์ตœ์‹  ๋ฒ„์ „์ด ์„ค์น˜๋˜๋Š” ๊ฒƒ์„ ์›ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์ด ์•„๋‹ˆ๋ผ ์žฌ๊ท€์  ํŠน์„ฑ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

pip ์‚ฌ์šฉ์ž๋Š” ์ด๋ฏธ pip์˜ ๋™์ž‘์— ๋Œ€ํ•ด ์–ด๋Š ์ •๋„ ๊ธฐ๋Œ€ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ TBH๋Š” ์‚ฌ์šฉ์ž๋กœ์„œ pip์— ๋Œ€ํ•ด ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์ฃผ์š” ๊ธฐ๋Œ€์‚ฌํ•ญ์€ ํ˜ธ์ถœ์˜ ์•ฝ 50%์—์„œ ๋†€๋ž๊ณ  ๋ถ„๋ช…ํžˆ ์ž˜๋ชป๋œ ์ผ์„ ํ•  ๊ฒƒ์ด๋ผ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋‚œ ์•ˆ ์œ ์ผํ•œ ์‚ฌ๋žŒ - ๊ทธ๋Š” ๋ชจ๋“  ๊ธฐ๋ณธ๊ฐ’์ด ๋ถ€์„œ์ง€๊ณ  unbreak - ๋‚˜์—๊ฒŒ ํ”Œ๋ž˜๊ทธ๋ฅผ ํ•„์š”๋กœํ•˜๋Š” ๊ฒƒ์„ ์ œ์™ธํ•˜๊ณ  ๊ทธ ํ•์ด ํฐ ๊ด€์ฐฐ ๊ฒฝ์šฐ ์ง€๋‚œ ์ฃผ pycon์—์„œ ์˜ˆ๋ฅผ ๋“ค์–ด @glyph์˜ ์ด์•ผ๊ธฐ๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค. ์ด๊ฒƒ์€ pip ๊ฐœ๋ฐœ์ž์— ๋Œ€ํ•œ ๋น„ํŒ์ด ์•„๋‹™๋‹ˆ๋‹ค. ์ €๋Š” ์—ฌ๋Ÿฌ๋ถ„/์šฐ๋ฆฌ ๋ชจ๋‘๊ฐ€ ๋ณต์žกํ•œ ์ œ์•ฝ ์กฐ๊ฑด ์•„๋ž˜์—์„œ ์ผํ•˜๊ณ  ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์ดํ•ดํ•˜๋ฉฐ, ์šฐ๋ฆฌ๊ฐ€ ๊ทธ๊ฒƒ์„ ๊นจ๊ธฐ ์œ„ํ•ด ๊ธฐ๊บผ์ด ๊นจํŠธ๋ ค์•ผ ํ•œ๋‹ค๋Š” ์ฃผ์žฅ๋„ ์•„๋‹™๋‹ˆ๋‹ค. pip์—๋Š” ๋งŽ์€ ์กฐ๊ฐ์ด ์žˆ์œผ๋ฉฐ ๊ทธ ์ค‘ ๋งŽ์€ ๋ถ€๋ถ„์ด ์ข‹์Šต๋‹ˆ๋‹ค! ๊ทธ๋Ÿฌ๋‚˜ pop์˜ ๊ธฐ๋ณธ๊ฐ’์˜ ์ „๋ฐ˜์ ์ธ ์ƒํƒœ๋ฅผ ๊ณ ๋ คํ•  ๋•Œ "pip๋Š” ํ•ญ์ƒ X๋ฅผ ์ˆ˜ํ–‰ํ–ˆ์œผ๋ฏ€๋กœ pip๋Š” ํ•ญ์ƒ X๋ฅผ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค"๋ผ๋Š” ํ˜•์‹์˜ ์ธ์ˆ˜์— ๋Œ€ํ•ด ํ™•์‹ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. pip install์ด ์—…๊ทธ๋ ˆ์ด๋“œ๋ฅผ ๊ฑฐ๋ถ€ํ•˜๋„๋ก ์ฃผ์žฅํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด ๋ฉ‹์ง€์ง€๋งŒ ๊ด€์„ฑ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์‹ค์ œ ์žฅ์ ์— ๋Œ€ํ•œ ์ฃผ์žฅ์„ ๋ณด๋Š” ๊ฒƒ์ด ํ›จ์”ฌ ๋‚ซ์Šต๋‹ˆ๋‹ค.

์˜ˆ, ์—ฌ๊ธฐ @njsmith ๋ฐ @glyph์— ํ™•์‹คํžˆ ๋™์˜ํ•ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์ž˜๋ชป๋œ ๊ธฐ๋ณธ ๋™์ž‘์„ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฉฐ ์•ž์œผ๋กœ ๋‚˜์•„๊ฐ€๊ธฐ ์œ„ํ•ด์„œ๋Š” ์ด๋Ÿฌํ•œ ๋™์ž‘์„ ์ œ๊ฑฐํ•˜๊ณ  ์ด๋Ÿฌํ•œ ์ฃผ์š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์ฒ˜๋ฆฌํ•˜์—ฌ ๋” ๋‚˜์€ ๊ธฐ๋ณธ ๋™์ž‘์œผ๋กœ ์ด๋™ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ฐพ์•„์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

์ด ํŠน๋ณ„ํ•œ ๋ณ€ํ™”๋Š” ๊ทธ ์ค‘ ํ•˜๋‚˜๊ฐ€ ์•„๋‹ ์ˆ˜๋„ ์žˆ์ง€๋งŒ, ์ œ ์ƒ๊ฐ์—๋Š” ๊ทธ๋ ‡์Šต๋‹ˆ๋‹ค.

๋„ค, ์ €๋Š” ํ™•์‹คํžˆ "์‚ฌ์šฉ์ž๊ฐ€ ํ•˜๊ธฐ๋ฅผ ์›ํ•˜๋Š” ์ž‘์—…"๊ณผ "X ๋ช…๋ น์ด ์ˆ˜ํ–‰ํ•ด์•ผ ํ•˜๋Š” ์ž‘์—…"์—์„œ ์ด ๋ฌธ์ œ์— ์ ‘๊ทผํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ์‚ฌ์šฉ์ž๊ฐ€ ์ˆ˜ํ–‰ํ•˜๊ธฐ๋ฅผ ์›ํ•˜๋Š” ์ด ๋†’์€ ์ˆ˜์ค€์˜ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๊ณ  ๋‹จ์ผ ๋ช…๋ช…๋œ ๋ช…๋ น์— ๋งคํ•‘ํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. .

ํ™•์ธ. ๋‚ด๊ฐ€ ์ด๊ฒƒ์— ๋Œ€ํ•ด (๋‹ค์†Œ) ํ™•์‹ ์„ ๊ฐ–๊ณ  ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด ๋ด…์‹œ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด๊ฒƒ์ด ์˜ฌ๋ฐ”๋ฅธ ์ผ์ด๋ผ๊ณ  ๊ฐ€์ •ํ•˜๋ฉด ์ข…์†์„ฑ์€ ์–ด๋–ป์Šต๋‹ˆ๊นŒ? ๋‚˜๋Š” "์†Œ์Šค์—์„œ numpy ์„ค์น˜ ์‹œ๋„"๊ฐ€ ๊ฑฐ์˜ ํ•ญ์ƒ ์›ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ๊ณ  100% ํ™•์‹ ํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์‚ฌ์šฉ์ž๊ฐ€ ๋ช…์‹œ์ ์œผ๋กœ numpy๋ฅผ ์–ธ๊ธ‰ํ•˜์ง€ ์•Š๋Š” ํ•œ ๋ฐ”ํ€ด์—์„œ numpy๋งŒ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค. ์ง€๊ธˆ์€ ์ฃผ์–ด์ง„ ๊ฒƒ์œผ๋กœ ๊ฐ„์ฃผํ•˜๊ณ  ์•ž์—์„œ ์„ค๋ช…ํ•œ ์ƒํ™ฉ์ด ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค.

  • ์‚ฌ์šฉ์ž์—๊ฒŒ foo 1.0๊ณผ numpy 1.10์ด ์„ค์น˜๋˜์–ด ์žˆ๊ณ  foo 1.0์€ numpy >= 1.10์— ๋”ฐ๋ผ ๋‹ค๋ฆ…๋‹ˆ๋‹ค.
  • PyPI์—๋Š” ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ foo 2.0์ด ์žˆ์œผ๋ฉฐ numpy >= 1.11์— ๋”ฐ๋ผ ๋‹ค๋ฆ…๋‹ˆ๋‹ค. numpy 1.11 ํœ ์€ ์—†์Šต๋‹ˆ๋‹ค.

pip install foo ์€(๋Š”) ๋ฌด์—‡์„ ํ•ฉ๋‹ˆ๊นŒ? ์•„๋งˆ๋„ ์ž‘๋™ํ•˜๋Š” ์„ค์น˜์ด๋ฏ€๋กœ ์‚ฌ์šฉ์ž๋ฅผ 1.0์œผ๋กœ ๋‘ก๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์„ฑ๊ณตํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ(foo๊ฐ€ ์„ค์น˜๋˜์–ด ์žˆ์œผ๋ฏ€๋กœ) ์•„๋‹ˆ๋ฉด ์‹คํŒจํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค(์ตœ์‹  ๋ฒ„์ „์„ ์„ค์น˜ํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์—)? ์ „์ž๋ผ๋ฉด ์‚ฌ์šฉ์ž๋Š” ์ž์‹ ์˜ ์‹œ์Šคํ…œ์ด ์˜ค๋ž˜๋˜์—ˆ๋‹ค๋Š” ๊ฒƒ์„ ์–ด๋–ป๊ฒŒ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ํ›„์ž์˜ ๊ฒฝ์šฐ ์‚ฌ์šฉ์ž๋Š” "๋‚˜๋Š” foo๊ฐ€ ๊ฑฐ๊ธฐ์— ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค"๋ผ๊ณ  ์–ด๋–ป๊ฒŒ ๋งํ•ฉ๋‹ˆ๊นŒ? ์ข‹์•„์š”, ์‚ฌ์šฉ์ž๋Š” pip list --outdated ํ•˜๊ณ  foo 2.0์ด ์กด์žฌํ•˜๋Š”์ง€ ํ™•์ธํ•˜๊ณ  pip install foo ๋ฅผ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” pip install??? ์‹ ๊ฒฝ์“ฐ์ง€ ๋ง์ž...) ๊ทธ๋ฆฌ๊ณ  ์„ฑ๊ณตํ–ˆ์ง€๋งŒ 1.0์ด ์„ค์น˜๋œ ์ƒํƒœ๋กœ ๋‚จ์•„ ์žˆ์Šต๋‹ˆ๊นŒ?

๋‚ด๊ฐ€ ๋‘ ๊ฐ€์ง€ ๋ช…๋ น์„ ์„ ํ˜ธํ•˜๋Š” ํ•œ ๊ฐ€์ง€ ์ด์œ ๋Š” ์‚ฌ์šฉ์ž์˜ ์˜๋„๊ฐ€ ์™„์ „ํžˆ ๋ช…ํ™•ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์‚ฌ์šฉ์ž์˜ ๊ธฐ๋Œ€์น˜๋ฅผ ์•Œ๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด์™€ ๊ฐ™์€ ๊ทน๋‹จ์ ์ธ ๊ฒฝ์šฐ๋ฅผ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

apt-get์— ์ต์ˆ™ํ•˜๋‹ค๋ฉด ์ด ๋ชจ๋“  ๊ฒƒ์ด ๋ถ„๋ช…ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋‚˜์ฒ˜๋Ÿผ ๊ทธ๋ ‡์ง€ ์•Š์€ ์‚ฌ๋žŒ์—๊ฒŒ๋Š” ๊ทธ๊ฒƒ์ด ์ „ํ˜€ ๋ช…ํ™•ํ•˜์ง€ ์•Š๋‹ค๊ณ  ํ™•์‹คํžˆ ๋งํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

pip install์ด ์—…๊ทธ๋ ˆ์ด๋“œ๋ฅผ ๊ฑฐ๋ถ€ํ•˜๋„๋ก ์ฃผ์žฅํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด ๋ฉ‹์ง€์ง€๋งŒ ๊ด€์„ฑ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์‹ค์ œ ์žฅ์ ์— ๋Œ€ํ•œ ์ฃผ์žฅ์„ ๋ณด๋Š” ๊ฒƒ์ด ํ›จ์”ฌ ๋‚ซ์Šต๋‹ˆ๋‹ค.

๋‚ด ์ฃผ์žฅ์€ ๋ฌต์‹œ์ ์ด๊ธฐ๋ณด๋‹ค๋Š” ๋ช…์‹œ์ ์ด๋‹ค. ๊ฐ€์žฅ ํ™•์‹คํžˆ _not_ "์šฐ๋ฆฌ๋Š” ํ•ญ์ƒ ์ด๋Ÿฐ ์‹์œผ๋กœ ํ•ด์™”์Šต๋‹ˆ๋‹ค". ์ ์ ˆํ•œ ์‚ฌ์šฉ์ž๊ฐ€ "์—…๊ทธ๋ ˆ์ด๋“œ ๊ฐ€๋Šฅ"์„ ์˜๋ฏธํ•˜๋Š” "์„ค์น˜"์— ์‚ฌ์šฉ๋œ๋‹ค๋Š” ์•„์ด๋””์–ด์—๋Š” ๋ฌธ์ œ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž๋“ค๋„ ๊ทธ๋Ÿด์ง€๋Š” ์ž˜ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค.

ํ•œ ๊ฐ€์ง€ ์ƒ๊ฐ - apt์—๋Š” "ํŒจํ‚ค์ง€๊ฐ€ ์ด๋ฏธ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค - ์—…๊ทธ๋ ˆ์ด๋“œ?"๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ? ์ฆ‰๊ฐ์ ์ธ? ์—…๊ทธ๋ ˆ์ด๋“œ๋กœ ์„ค์น˜ํ•˜๋Š” ๊ฒƒ์ด "์—…๊ทธ๋ ˆ์ด๋“œ๋ฅผ ํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ ์„ค์น˜ ๋˜๋Š” ์š”์ฒญ"์ธ ๊ฒฝ์šฐ์—๋Š” ๊ทธ๋‹ค์ง€ ๋†€๋ž์ง€ ์•Š๋‹ค๊ณ  ์ƒ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฌผ๋ก  pip๋Š” ํ˜„์žฌ ๊ทธ๋Ÿฐ ์‹์œผ๋กœ ๋Œ€ํ™”์‹์œผ๋กœ ์ž‘๋™ํ•˜์ง€ ์•Š์ง€๋งŒ ๋ถ„๋ช…ํžˆ ๊ทธ๋ ‡๊ฒŒ ํ•˜๋Š” ๊ฒƒ์€ ์˜ต์…˜์ž…๋‹ˆ๋‹ค.

๊ทธ๊ฒƒ์€ ํฅ๋ฏธ๋กœ์šด ์งˆ๋ฌธ์ž…๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž๋Š” ์‹ค์ œ๋กœ ๋ฐ”์ด๋„ˆ๋ฆฌ ํŒจํ‚ค์ง€๊ฐ€ ์ „ํ˜€ ์—†์–ด ์†Œ์Šค๋ณ„๋กœ _ํ•ญ์ƒ_์ด๊ฑฐ๋‚˜ ๋ฐ”์ด๋„ˆ๋ฆฌ ํŒจํ‚ค์ง€๋งŒ ์ฒ˜๋ฆฌํ•˜์—ฌ _ํ•ญ์ƒ_ ๋ฐ”์ด๋„ˆ๋ฆฌ๊ฐ€ ๋˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๋Œ€๋ถ€๋ถ„ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ๊ทธ ์‚ฌ์ด์— ์ผ์ข…์˜ ์ด์ƒํ•œ ์ƒํ™ฉ์— ์ฒ˜ํ•ด ์žˆ์–ด ๋” ์–ด๋ ต๊ฒŒ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

์ด๋ฅผ ๊ฐ์•ˆํ•  ๋•Œ ๊ธฐ๋ณธ์ ์œผ๋กœ ํ˜„์žฌ๋กœ์„œ๋Š” numpy 1.11 ์†Œ์Šค ํŒจํ‚ค์ง€๋ฅผ ํ’€๋‹ค์šดํ•˜์—ฌ ์„ค์น˜๋ฅผ ์‹œ๋„ํ•ด์•ผ ํ•˜์ง€๋งŒ --only-binary ์ง€์ •ํ–ˆ๋‹ค๋ฉด ๊ฐ€์ƒ์˜ ๋ฆฌ์กธ๋ฒ„(์šฐ๋ฆฌ๊ฐ€ ์ ˆ์‹คํžˆ ํ•„์š”๋กœ ํ•˜๋Š” SAT ๋‹ค์‹œ ์ถ”์  ๋˜๋Š” ๋ฌด์—‡์ด๋“ ) ๋˜๋Š” ๊ทธ ๋ณผ ๊ฒƒ์ž…๋‹ˆ๋‹ค foo-2.0 ํ•ด์„ ๊ฐ€๋Šฅํ•œ ์„ค์น˜ํ•˜์ง€ ์•Š๊ณ  ๋‹ค์Œ ์„ค์น˜๋ฅผ ๋‹ค์‹œ ๋–จ์–ด์งˆ ๊ฒƒ์ด๋‹ค foo-1.0 . ์ด๊ฒƒ์€ ํŠนํžˆ ์ปดํŒŒ์ผ์ด _ํ›จ์”ฌ_ ์–ด๋ ค์šด Windows ์‚ฌ์šฉ์ž์—๊ฒŒ ์ข‹์€ ๊ธฐ๋ณธ๊ฐ’์€ ์•„๋‹ˆ์ง€๋งŒ ์˜ค๋Š˜๋‚ ์˜ ํ˜„์‹ค์„ ๋ฐ˜์˜ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

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

@pfmoore : ๋ฐ”์ด๋„ˆ๋ฆฌ ๋Œ€ ์†Œ์Šค ์„ค์น˜์˜ ๋ฌธ์ œ๊ฐ€ ๋‹ค์†Œ ์ง๊ตํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๊นŒ? ์ „์šฉ pip upgrade ๋ช…๋ น์— ๋Œ€ํ•ด ๋˜‘๊ฐ™์€ ์งˆ๋ฌธ์ด ๋ฐœ์ƒํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๊ทธ๊ฒƒ๋“ค์€ ์šฐ๋ฆฌ๊ฐ€ ํ•ด๊ฒฐํ•ด์•ผ ํ•˜๋Š” ์‹ค์ œ ๋ฌธ์ œ์ด์ง€๋งŒ ์—…๊ทธ๋ ˆ์ด๋“œ์™€ ์„ค์น˜๋ฅผ ๋ถ„ํ• ํ•˜์—ฌ ๋ฌธ์ œ๋ฅผ ๋‹จ์ˆœํ™”ํ•˜๊ธฐ๋ณด๋‹ค๋Š” ์ด๋ฆฌ์ €๋ฆฌ ์˜ฎ๊ธฐ๊ธฐ๋งŒ ํ•˜๋ฉด ๋ ๊นŒ์š”? ๋˜ํ•œ numpy์˜ ๊ฒฝ์šฐ ์ด์ œ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ง€์›ํ•˜๋Š” ๋ชจ๋“  ํ”Œ๋žซํผ์— ๋Œ€ํ•œ ํœ ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค :-).

๊ทธ๋Ÿฌ๋‚˜ pip install foo ๋Œ€ํ•ด ์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ œ์•ˆํ•ฉ๋‹ˆ๋‹ค(ํŠนํžˆ ์ด ๋ช…๋ น -- pip install foo==whatever ๋˜๋Š” pip install ./foo-*.whl ๋˜๋Š” pip install bar ๋Œ€ํ•ด ๋งํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹™๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ bar ์—๋Š” Requires-Dist: foo ):

1) ์ธ๋ฑ์Šค๋ฅผ ์ฟผ๋ฆฌํ•˜์—ฌ foo ์˜ ์ตœ์‹  ํ›„๋ณด ๋ฒ„์ „์„ ์ฐพ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์„ $LATEST ํ•ฉ๋‹ˆ๋‹ค. ํ›„๋ณด ๋ฒ„์ „์ด ์—†์œผ๋ฉด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

2) $LATEST ๊ฐ€ ์ด๋ฏธ ์„ค์น˜๋˜์–ด ์žˆ์œผ๋ฉด ์„ฑ๊ณต์ ์œผ๋กœ ์™„๋ฃŒํ•ฉ๋‹ˆ๋‹ค.

3) ํ˜„์žฌ ํ™˜๊ฒฝ์— ์„ค์น˜ํ•  ์ˆ˜ ์žˆ๋Š” $LATEST ์˜ ๋ฐฐํฌํŒ์ด ์žˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. (์—†์„ ์ˆ˜ ์žˆ๋Š” ์ด์œ ์˜ ์˜ˆ: ๋ฐ”ํ€ด๋งŒ ์žˆ๊ณ  sdist๊ฐ€ ์—†๊ณ  ๋ฐ”ํ€ด๊ฐ€ ํ˜„์žฌ ํ™˜๊ฒฝ๊ณผ ์ผ์น˜ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ผ์น˜ํ•˜๋Š” ๋ฐ”ํ€ด๊ฐ€ ์—†๊ณ  sdist๊ฐ€ ์žˆ์ง€๋งŒ ์‚ฌ์šฉ์ž๊ฐ€ --binary-only :all: ๋ฅผ ์ „๋‹ฌ

4) $LATEST ์— ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ๋ฐฐํฌ๊ฐ€ _์—†์œผ๋ฉด_: ์‚ฌ์šฉ์ž์—๊ฒŒ ์ƒˆ ๋ฒ„์ „์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์‚ฌ์šฉ์ž ํ™˜๊ฒฝ์— ์ ํ•ฉํ•˜์ง€ ์•Š์Œ์„ ์•Œ๋ฆฌ๋Š” ๊ฒฝ๊ณ ๋ฅผ ๋ฐœํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ƒˆ ๋ฒ„์ „์„ ์›ํ•ฉ๋‹ˆ๋‹ค(์˜ˆ: "ipython 6.0.1์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์ง€๋งŒ python >= 3.4๊ฐ€ ํ•„์š”ํ•˜๊ณ  python 2.7์ด ์žˆ์Šต๋‹ˆ๋‹ค -- python ์—…๊ทธ๋ ˆ์ด๋“œ๋ฅผ ๊ณ ๋ คํ•˜์‹ญ์‹œ์˜ค" ๋˜๋Š” "numpy 1.12๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ppc64์šฉ ๋ฐ”์ด๋„ˆ๋ฆฌ๊ฐ€ ์—†๊ณ  ์†Œ์Šค์—์„œ ๋นŒ๋“œ ๋น„ํ™œ์„ฑํ™” -- --allow-source numpy ๊ณ ๋ ค) ๊ทธ๋Ÿฐ ๋‹ค์Œ ํ›„๋ณด ๋ฒ„์ „ ๋ชฉ๋ก์—์„œ $LATEST ์ œ๊ฑฐํ•˜๊ณ  1๋‹จ๊ณ„๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

5) $LATEST _does_์— ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ๋ฐฐํฌ๊ฐ€ ์žˆ์œผ๋ฉด ์ด ๋ฐฐํฌ๋ฅผ ์„ค์น˜ํ•ด ๋ณด์‹ญ์‹œ์˜ค.

6) ์„ค์น˜์— ์‹คํŒจํ•˜๋ฉด(์˜ˆ: b/c๋Š” sdist์ด๊ณ  ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์—†์Œ) ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ์„ฑ๊ณต์ ์œผ๋กœ ์™„๋ฃŒํ•˜์‹ญ์‹œ์˜ค.

@njsmith ๋ฐ”์ด๋„ˆ๋ฆฌ ์ „์šฉ์€ ์–ด๋Š ์ •๋„ ์ง๊ต์ ์ด๋ผ๋Š” ๋ฐ ๋™์˜ํ•˜์ง€๋งŒ "์‚ฌ์šฉ์ž๊ฐ€ ๊ธฐ๋Œ€ํ•˜๋Š” ๋Œ€๋กœ ์ˆ˜ํ–‰"ํ•˜๋Š” ๋ช…๋ น์„ ์„ค๊ณ„ํ•˜๋ ค๋Š” ๊ฒฝ์šฐ IMO๋ฅผ ๋™์‹œ์— ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.

@dstufft "์‚ฌ์šฉ์ž๊ฐ€ --binary-only ๊ฐ€ ๋‚ด ์ด์ „ ์„œ์‚ฌ์‹œ ๊ฒŒ์‹œ๋ฌผ์˜ ์˜ˆ์—์„œ ์„ค๋ช…๋˜์—ˆ๋‹ค๊ณ  ๋งํ•˜์ง€ ์•Š๋Š” ํ•œ numpy๋ฅผ ์„ค์น˜ํ•˜๋Š” ๋ฌธ์ œ - (1) foo๋Š” ์†Œ์Šค ํ˜•์‹์œผ๋กœ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ๋งํ•˜๊ณ  (2) ์‚ฌ์šฉ์ž๋Š” (๊ทธ๋ฆฌ๊ณ  ์‹ค์ œ๋กœ ๊ทธ๋Ÿด ํ•„์š”๋Š” ์—†์Šต๋‹ˆ๋‹ค) foo๊ฐ€ numpy์— ์˜์กดํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๋ฉด ์‚ฌ์šฉ์ž๋Š” --only-binary :all: ๋ผ๊ณ  ๋งํ•  ์ˆ˜ ์—†์œผ๋ฉฐ _after_ a (long) ์ปดํŒŒ์ผ์ด ์‹คํŒจํ•  ๋•Œ๊นŒ์ง€ --only-binary numpy ๊ฐ€ ํ•„์š”ํ•˜๋‹ค๋Š” ๊ฒƒ์„ ๋ชจ๋ฆ…๋‹ˆ๋‹ค.๋˜๋Š” (์—ฌ์ „ํžˆ ๋” ๋‚˜์  ์ˆ˜ ์žˆ์Œ) ์‚ฌ์šฉ์ž์—๊ฒŒ ์ตœ์ ํ™”๋˜์ง€ ์•Š์€ numpy๋ฅผ ๋‚จ๊ธฐ๋Š” ์„ฑ๊ณต์ ์ธ ์ปดํŒŒ์ผ(์š”์ฆ˜ numpy๋Š” Windows์—์„œ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ปดํŒŒ์ผ๋˜์ง€๋งŒ ์ตœ์ ํ™”๋˜์ง€ ์•Š์€ ๋นŒ๋“œ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค).

์žฅ๊ธฐ์ ์œผ๋กœ ๋ฐ”์ด๋„ˆ๋ฆฌ ์ „์šฉ์œผ๋กœ ๊ธฐ๋ณธ ์„ค์ •ํ•ด์•ผ ํ•œ๋‹ค๋Š” ์ ์—๋Š” ์ „์ ์œผ๋กœ ๋™์˜ํ•˜์ง€๋งŒ ์•„์ง๊นŒ์ง€๋Š” ๊ทธ ์ˆ˜์ค€์— ๊ฐ€๊น์ง€ ์•Š์Šต๋‹ˆ๋‹ค(์ตœ์†Œํ•œ ๊ฑฐ์˜ ๋ชจ๋“  ์ˆœ์ˆ˜ Python ํŒจํ‚ค์ง€๋ฅผ ํœ ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ์„ ์˜๋ฏธํ•ด์•ผ ํ•จ).

@pradyunsg ๋ณด์‹œ๋‹ค์‹œํ”ผ ์•„์ง ํ•ด๊ฒฐ๋˜์ง€ ์•Š์€ ๋ฌธ์ œ๊ฐ€ ๋งŽ์Šต๋‹ˆ๋‹ค. ๋‹น์‹ ์€ ์•„์ง๋„ ์ด๊ฒƒ์„ ๊ณ„์†ํ•˜๋Š” ๋ฐ ๊ด€์‹ฌ์ด ์žˆ์Šต๋‹ˆ๊นŒ? ๋‚˜๋Š” ๊ทธ๊ฒƒ์ด ๋‹ค์‹œ ์ค‘๋‹จ๋œ๋‹ค๋ฉด ๋˜ ๋‹ค๋ฅธ ๊ธด ํ† ๋ก ์„ ์‹œ์ž‘ํ•˜๊ธฐ๋ฅผ ๊บผ๋ฆฝ๋‹ˆ๋‹ค...

@pradyunsg ๋ณด์‹œ๋‹ค์‹œํ”ผ ์•„์ง ํ•ด๊ฒฐ๋˜์ง€ ์•Š์€ ๋ฌธ์ œ๊ฐ€ ๋งŽ์Šต๋‹ˆ๋‹ค. ๋‹น์‹ ์€ ์•„์ง๋„ ์ด๊ฒƒ์„ ๊ณ„์†ํ•˜๋Š” ๋ฐ ๊ด€์‹ฌ์ด ์žˆ์Šต๋‹ˆ๊นŒ? ๋‚˜๋Š” ๊ทธ๊ฒƒ์ด ๋‹ค์‹œ ์ค‘๋‹จ๋œ๋‹ค๋ฉด ๋˜ ๋‹ค๋ฅธ ๊ธด ํ† ๋ก ์„ ์‹œ์ž‘ํ•˜๊ธฐ๋ฅผ ๊บผ๋ฆฝ๋‹ˆ๋‹ค...

์žˆ์„ ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ด๊ฒƒ์„ ๋ฐœ์ „์‹œํ‚ค๋Š” ๋ฐ ๊ด€์‹ฌ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ํ•ด๋ณด์ž! :์›ƒ๋‹ค:

๋‚˜๋Š” _user_๊ฐ€ pip๊ฐ€ ํ•˜๊ธฐ๋ฅผ ์›ํ•˜๋Š” ๋ชจ๋“  ๋ชฉ๋ก์„ ์ˆ˜์ง‘ํ•œ ๋‹ค์Œ ๋ชจ๋“ (๋˜๋Š” ์ถฉ๋ถ„ํ•œ ์–‘)์ด pip ๋ช…๋ น(์˜ต์…˜/๊ธฐ๋ณธ๊ฐ’ ํฌํ•จ)์œผ๋กœ ํ•ด๊ฒฐ๋˜๊ฑฐ๋‚˜ ๋‹ค์Œ์œผ๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์„ ๋•Œ๊นŒ์ง€ ๊ฐ๊ฐ์— ๋Œ€ํ•œ ์†”๋ฃจ์…˜์„ ์ œ์•ˆํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. "์กฐ์น˜ ์—†์Œ".

์ผ์„ ์‹œ์ž‘ํ•˜๊ธฐ ์œ„ํ•ด ๋‹ค์Œ์€ ๋ถˆ์™„์ „ํ•  ๊ฐ€๋Šฅ์„ฑ์ด ๋†’์€ ๋ชฉ๋ก์ž…๋‹ˆ๋‹ค.

  1. ์‚ฌ์šฉ์ž๊ฐ€ ์•„์ง ์„ค์น˜๋˜์ง€ ์•Š์€ ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.
  2. ์‚ฌ์šฉ์ž๊ฐ€ ์ด๋ฏธ ์„ค์น˜๋œ ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.
  3. ์‚ฌ์šฉ์ž๊ฐ€ ์„ค์น˜๋œ ํŒจํ‚ค์ง€๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.
  4. ์‚ฌ์šฉ์ž๊ฐ€ ์„ค์น˜๋˜์ง€ ์•Š์€ ํŒจํ‚ค์ง€๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.
  5. ์‚ฌ์šฉ์ž๋Š” ์ด๋ฏธ ์„ค์น˜๋˜์—ˆ๋Š”์ง€ ์—ฌ๋ถ€์— ๊ด€๊ณ„์—†์ด ์ตœ์‹  ๋ฒ„์ „์˜ ํŒจํ‚ค์ง€๊ฐ€ ์„ค์น˜๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.
  6. ์‚ฌ์šฉ์ž๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ๋ชจ๋“  ์ข…์†์„ฑ์ด ์—…๊ทธ๋ ˆ์ด๋“œ๋˜๋Š” ๊ฒƒ์„ ์›ํ•˜์ง€ ์•Š๊ณ  ๋Œ€์‹  ์ถฉ์กฑ๋˜๊ธฐ๋งŒ ํ•ฉ๋‹ˆ๋‹ค.
  7. ์‚ฌ์šฉ์ž๊ฐ€ ํŒจํ‚ค์ง€๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œ/์„ค์น˜ํ•˜๊ธฐ๋ฅผ ์›ํ•˜์ง€๋งŒ ์†Œ์Šค์—์„œ ๋นŒ๋“œํ•˜๊ธฐ๋ฅผ ์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค(ํŒจํ‚ค์ง€๋‚˜ ์ข…์†์„ฑ ๋ชจ๋‘ ์•„๋‹˜). ์•„๋งˆ๋„ ๋‹ค์Œ๋ณด๋‹ค ๋” ๊ฐ€๋Šฅ์„ฑ์ด ๋†’์Šต๋‹ˆ๋‹ค.
  8. ์‚ฌ์šฉ์ž๊ฐ€ ์†Œ์Šค์—์„œ ์—…๊ทธ๋ ˆ์ด๋“œ/์„ค์น˜ํ•  ์˜ํ–ฅ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

์ด์— ๋Œ€ํ•œ ๋‚ด ๊ฐœ์ธ์ ์ธ ์ œ์•ˆ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

1) & 7) pip install foo ๋Š” ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์ตœ์‹  ๋ฒ„์ „(์ข…์†์„ฑ ๊ณ ๋ ค)์œผ๋กœ ํ™•์ธํ•˜๊ณ  ์„ค์น˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ @njsmith ์˜ ๊ฒƒ์ž…๋‹ˆ๋‹ค.
2) pip install foo โ†’ foo๊ฐ€ ์ด๋ฏธ ์„ค์น˜๋˜์–ด ์žˆ๋‹ค๋Š” ๊ฒฝ๊ณ ๋ฅผ ํ‘œ์‹œํ•˜๊ณ  pip upgrade foo ์‚ฌ์šฉ์„ ์ œ์•ˆํ•ฉ๋‹ˆ๋‹ค.
3) & 7) pip upgrade foo ๋Š” ๋‹ค์‹œ @njsmith ์˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜์— ๋”ฐ๋ผ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์ตœ์‹  ๋ฒ„์ „์˜ foo๋ฅผ ์„ค์น˜ํ•˜๋ ค๊ณ  ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค. ํ”Œ๋žซํผ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๊ณ  sdist๊ฐ€ ์—†๊ฑฐ๋‚˜ ์‚ฌ์šฉ์ž๊ฐ€ ์†Œ์Šค์—์„œ ๋นŒ๋“œํ•˜๊ธฐ๋ฅผ ์›ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์ตœ์‹  ๋ฒ„์ „์„ ์„ค์น˜ํ•  ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ ์ด๋ฅผ ํ‘œ์‹œํ•˜์‹ญ์‹œ์˜ค. ๋‘ ๊ฒฝ์šฐ ๋ชจ๋‘ ์„ฑ๊ณตํ•˜๊ณ  ์„ค์น˜ ์ž์ฒด๊ฐ€ ์‹คํŒจํ•œ ๊ฒฝ์šฐ์—๋งŒ ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค.
4) pip upgrade foo ํŒจํ‚ค์ง€๊ฐ€ ์„ค์น˜๋˜์–ด ์žˆ์ง€ ์•Š์œผ๋ฉด ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค.
5) pip install-uprade foo ๋˜๋Š” pip install foo --ensure-latest ๋˜๋Š” pip install foo --upgrade (๊ธฐ๋ณธ์ ์œผ๋กœ ๋น„ ์—ด๋ง์„ ์ œ์™ธํ•˜๊ณ  ํ˜„์žฌ์™€ ๋™์ผ).
7) ๋ชจ๋“  ์ž‘์—…์€ ์—ด๋ง์ด ์•„๋‹ˆ์–ด์•ผ ํ•˜๋ฉฐ install --upgrade ์˜ ์ด์ „ ๊ธฐ๋Šฅ์„ ๊ฐ€์ ธ์˜ค๊ธฐ ์œ„ํ•ด --eager ํ”Œ๋ž˜๊ทธ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ข…์†์„ฑ์ด ์•„์ง ์„ค์น˜๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ์ตœ์‹  ๋ฒ„์ „์„ ์„ค์น˜ํ•˜์‹ญ์‹œ์˜ค. ์ด๋ฏธ ๋งŒ์กฑํ–ˆ๋‹ค๋ฉด ์•„๋ฌด ๊ฒƒ๋„ ํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค. ๋งŒ์กฑํ•˜์ง€ ์•Š์œผ๋ฉด ์—ฌ์ „ํžˆ ๋งŒ์กฑํ•˜๋Š” ์ตœ์‹  ๋ฒ„์ „์„ ์„ค์น˜ํ•˜์‹ญ์‹œ์˜ค(์ƒํ•œ ์š”๊ตฌ ์‚ฌํ•ญ์˜ ๊ฒฝ์šฐ).
8) pip upgrade foo --allow-source ๋˜๋Š” pip upgrade foo --allow-source numpy , foo๊ฐ€ ๋ฐ”์ด๋„ˆ๋ฆฌ๊ฐ€ ์•„๋‹Œ numpy ๋ฆด๋ฆฌ์Šค์— ์˜์กดํ•˜๋Š” ๊ฒฝ์šฐ. ํŽธ์ง‘: ์ด๊ฒƒ์ด ์ ์šฉ ๊ฐ€๋Šฅํ•œ์ง€ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค. ์•„๋ž˜ ์ฃผ์„์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

์ž์œ ๋กญ๊ฒŒ ๋ชฉ๋ก์„ ํ™•์žฅํ•˜๊ณ  ์ž์‹ ์˜ ์ œ์•ˆ์„ ๊ฒŒ์‹œํ•˜์‹ญ์‹œ์˜ค.

@pfmoore ๊ทธ๋ž˜๋„ ๋Œ€์•ˆ์ด ๋ฌด์—‡์ธ์ง€ ์ž˜ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค. ์˜ค๋Š˜๋‚  ์„ธ๊ณ„์˜ ์ƒํ™ฉ์€ ๋ฐ”ํ€ด๊ฐ€ ์ ์  ๋” ์ž๋ฆฌ๋ฅผ ์žก์•„๊ฐ€๊ณ  ์žˆ์ง€๋งŒ ์œ ๋น„์ฟผํ„ฐ์Šค์— ๊ฐ€๊นŒ์šด ๊ณณ์ด ์•„๋‹ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ง€๊ธˆ ๋‹น์žฅ์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ์†Œ์Šค ๋ฆด๋ฆฌ์Šค๋ฅผ ํ—ˆ์šฉํ•˜์ง€ ์•Š๋Š” ์ข‹์€ ์˜ต์…˜์ด ์žˆ๋Š”์ง€ ํ™•์‹ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

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

@FichteFoll ๋ฌด์—‡๋ณด๋‹ค๋„ ๋‚ด ์ฃผ์š” ์‚ฌ์šฉ ์‚ฌ๋ก€๋Š” "๋ชจ๋‘ ์—…๊ทธ๋ ˆ์ด๋“œ" ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค. ํ˜„์žฌ ์„ค์น˜๋œ ๋ชจ๋“  ํ•ญ๋ชฉ์„ ์ฐพ๊ณ  ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์ตœ์‹  ๋ฒ„์ „์ด ์žˆ์œผ๋ฉด ์—…๊ทธ๋ ˆ์ด๋“œํ•˜์‹ญ์‹œ์˜ค.

๋‚ด๊ฐ€ ์„ค์น˜ํ•œ ํŒจํ‚ค์ง€์—๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ">=" ์ข…์†์„ฑ ์ด์™ธ์˜ ๋‹ค๋ฅธ ๊ฒƒ์ด ์—†์œผ๋ฏ€๋กœ(๋Œ€๋ถ€๋ถ„์ด ์ข…์†์„ฑ์ด ์—†์Œ) ์—ฌ๊ธฐ์—๋Š” ๋ณต์žกํ•œ ๊ฒƒ์ด ์—†์Šต๋‹ˆ๋‹ค. ๊ทธ๋ƒฅ ์ตœ์‹  ๋ฒ„์ „์„ ์žก์•„. ๊ฐ€์žฅ ํฐ ์ œํ•œ ์‚ฌํ•ญ์€ ๋นŒ๋“œํ•  ์ˆ˜ ์—†๋Š” ํŒจํ‚ค์ง€(numpy, scipy, lxml, pyyaml, matplotlib, pyqt)๊ฐ€ ์žˆ๋‹ค๋Š” ๊ฒƒ์ด๋ฏ€๋กœ ํ•ด๋‹น ํŒจํ‚ค์ง€์— ๋Œ€ํ•œ ๋ฐ”์ด๋„ˆ๋ฆฌ๋งŒ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๋‚ด pip.ini ์— --only-binary <these> ๋ฅผ ๋„ฃ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. (๋˜๋Š” ์ตœ์†Œํ•œ...)

๋ณด์กฐ: XXX ํŒจํ‚ค์ง€(์ตœ์‹  ๋ฒ„์ „)์™€ ํ•จ๊ป˜ ๋‚ด๊ฐ€ ์•„์ง ๊ฐ€์ง€๊ณ  ์žˆ์ง€ ์•Š์€ ์ข…์†์„ฑ์„ ๋ชจ๋‘ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค. ์ƒˆ ํŒจํ‚ค์ง€์˜ ์ œ์•ฝ ์กฐ๊ฑด์„ ์ถฉ์กฑํ•˜๋Š” ๊ฒฝ์šฐ ์ด๋ฏธ ์žˆ๋Š” ์ข…์†์„ฑ์„ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค. ๋‚˜๋Š” ํ˜„์žฌ XXX๊ฐ€ ์—†๋‹ค๋Š” ๊ฒƒ์„ ํ•ญ์ƒ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

3์ฐจ: ๋‚ด๊ฐ€ (๋‚ด๊ฐ€ ์•Œ๊ณ  ์žˆ์Œ) ์„ค์น˜ํ•œ ๋‹จ์ผ ํŒจํ‚ค์ง€ XXX๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œํ•ฉ๋‹ˆ๋‹ค. ์ข…์†์„ฑ ์ œ์•ฝ ์กฐ๊ฑด์„ ์œ ์ง€ํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์•„๋‹ˆ๋ฉด ๋‹ค๋ฅธ ํŒจํ‚ค์ง€๋ฅผ ๋ณ€๊ฒฝํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค(์‹ฌ์ง€์–ด ์ด๋ก ์ƒ์ž…๋‹ˆ๋‹ค. ์‹ค์ œ ์ƒํ™ฉ์— ์ง๋ฉดํ•œ ์ ์ด ์—†์œผ๋ฏ€๋กœ ๋‚˜์—๊ฒŒ ๊ฐ€์žฅ ์ ํ•ฉํ•œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ด ๋ฌด์—‡์ธ์ง€ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค). ๋‚ด ์˜๋„๋Š” ํ•ญ์ƒ "์ตœ์‹  ๋ฒ„์ „์œผ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œ"์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ์ด๋ฏธ ์„ค์น˜๋œ ํŒจํ‚ค์ง€์˜ ์ข…์†์„ฑ์„ ๊นจ๋œจ๋ฆฌ๋Š” ์ƒํ™ฉ์„ ๋ณธ ์ ์ด ์—†์Šต๋‹ˆ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด _์ƒ๊ฐ__ ์ตœ์‹  ๋ฒ„์ „์„ ๋ฐ›์ง€ ๋ชปํ–ˆ๋‹ค๋Š” ๊ฒฝ๊ณ ์™€ ํ•จ๊ป˜ ์ˆ˜์šฉ ๊ฐ€๋Šฅํ•œ ์ตœ์‹  ๋ฒ„์ „์œผ๋กœ์˜ ์—…๊ทธ๋ ˆ์ด๋“œ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๋‚ด ์ƒ๊ฐ์— ์ด ์ƒํ™ฉ์€ ํ˜„์žฌ pip install -U ๋˜์ง€๋งŒ ์ข…์†์„ฑ์— ๋Œ€ํ•œ ๋™์ž‘์€ ๋‚ด๊ฐ€ ์›ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹™๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ์ด๋ ‡๊ฒŒ ํ•˜๋Š” ์ฃผ๋œ ์ด์œ ๋Š” ํ˜„์žฌ ์ ์ ˆํ•œ "๋ชจ๋‘ ์—…๊ทธ๋ ˆ์ด๋“œ"๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค(๋˜๋Š” ์ƒˆ๋กœ์šด "๋ชจ๋‘ ์—…๊ทธ๋ ˆ์ด๋“œ" ๋ช…๋ น์ด ๋‚ด๊ฐ€ ์›ํ•˜๋Š” ๋Œ€๋กœ ์ž‘๋™ํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด).

์˜์กด์„ฑ๊ณผ ์ œ์•ฝ์— ๋Œ€ํ•œ ๋ชจ๋“  ๋…ผ์˜๋Š” ๋‚ด ๊ฒฝํ—˜์ƒ ๊ฑฐ์˜ ์ „์ ์œผ๋กœ ์ด๋ก ์ ์ธ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ˜„์žฌ ๋‚ด ์‹œ์Šคํ…œ Python(๊ณผํ•™, ๋ฐ์ดํ„ฐ ๋ถ„์„, ์›น ๋ฐ ์ผ๋ฐ˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ชจ๋“ˆ์˜ ํ˜ผํ•ฉ)์— 160๊ฐœ์˜ ํŒจํ‚ค์ง€๊ฐ€ ์„ค์น˜๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ ์ค‘ 100๊ฐœ๋Š” ์š”๊ตฌ ์‚ฌํ•ญ์ด ์—†์Šต๋‹ˆ๋‹ค. ๋‚˜๋จธ์ง€๋Š” ํŒจํ‚ค์ง€ ๋ชฉ๋ก๋ณด๋‹ค ๋” ๋ณต์žกํ•œ ๊ฒƒ์ด ์—†์Šต๋‹ˆ๋‹ค. ๋ฒ„์ „ ์ œ์•ฝ์ด ์—†๊ฑฐ๋‚˜ Requires: six, dask, pillow, networkx ๋ณด๋‹ค ๋” ๋ณต์žกํ•œ ๊ฒƒ์ด ์—†์Šต๋‹ˆ๋‹ค. ๊ฐ€์žฅ ๊ธด ์ข…์†์„ฑ ๋ชฉ๋ก์—๋Š” 9๊ฐœ์˜ ํ•ญ๋ชฉ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

@pfmoore ๋งŽ์€ ๊ฒƒ์„ ๊นจ๋œจ๋ฆฌ๋Š” ๊ฒƒ ์•„๋‹Œ๊ฐ€์š”? ๋‚ด๊ฐ€ ์•Œ๊ณ  ์žˆ๋Š” ๋งค์šฐ ์ธ๊ธฐ ์žˆ๋Š” ํŒจํ‚ค์ง€๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์‚ฌํ•ญ์— ๋”ฐ๋ผ ๋จธ๋ฆฌ ์œ„๋กœ ๋– ์˜ค๋ฅผ ์ˆ˜ ์žˆ๋Š” ๋น ๋ฅธ ๋ชฉ๋ก์ž…๋‹ˆ๋‹ค.

  • SQLAlchemy(์„ ํƒ์ ์œผ๋กœ ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ํ•„์š”ํ•˜๋ฉฐ ๊ทธ๋ ‡์ง€ ์•Š์€ ๊ฒฝ์šฐ ์ˆœ์ˆ˜ Python์„ ์‚ฌ์šฉํ•จ).
  • PyYAML(์„ ํƒ์ ์œผ๋กœ ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ํ•„์š”ํ•˜๋ฉฐ ๊ทธ๋ ‡์ง€ ์•Š์€ ๊ฒฝ์šฐ ์ˆœ์ˆ˜ Python์„ ์‚ฌ์šฉํ•จ).
  • Markupsafe(์„ ํƒ์ ์œผ๋กœ ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ํ•„์š”ํ•˜๋ฉฐ ๊ทธ๋ ‡์ง€ ์•Š์€ ๊ฒฝ์šฐ ์ˆœ์ˆ˜ํ•œ Python์„ ์‚ฌ์šฉํ•จ).
  • PyCrypto(ํ•ญ์ƒ ์ปดํŒŒ์ผ๋Ÿฌ ํ•„์š”)
  • pycparser(์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ํ•„์š”ํ•˜์ง€ ์•Š์Œ)
  • httplib2(์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ํ•„์š”ํ•˜์ง€ ์•Š์Œ)
  • anyjson(์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ํ•„์š”ํ•˜์ง€ ์•Š์Œ)
  • zope.interface(์„ ํƒ์ ์œผ๋กœ ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ํ•„์š”ํ•˜๋ฉฐ ๊ทธ๋ ‡์ง€ ์•Š์€ ๊ฒฝ์šฐ Pure Python์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค).
  • docopt(์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ํ•„์š”ํ•˜์ง€ ์•Š์Œ)
  • Mako(์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ํ•„์š”ํ•˜์ง€ ์•Š์Œ)
  • ์œ„ํ—˜ํ•œ(์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ํ•„์š”ํ•˜์ง€ ์•Š์Œ)
  • amqp(์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ํ•„์š”ํ•˜์ง€ ์•Š์Œ)
  • orderdict(์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ํ•„์š”ํ•˜์ง€ ์•Š์Œ)

๋“ฑ๋“ฑ, ๊ฐ€์žฅ ์ธ๊ธฐ ์žˆ๋Š” ํŒจํ‚ค์ง€์˜ ๊ธด ๋ชฉ๋ก๊ณผ ์—ฌ๊ธฐ์— ๋ฐ”ํ€ด๊ฐ€ ์žˆ๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ http://pythonwheels.com/์—์„œ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@pf๋ฌด์–ด

ํ˜„์žฌ ์„ค์น˜๋œ ๋ชจ๋“  ํ•ญ๋ชฉ์„ ์ฐพ๊ณ  ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์ตœ์‹  ๋ฒ„์ „์ด ์žˆ์œผ๋ฉด ์—…๊ทธ๋ ˆ์ด๋“œํ•˜์‹ญ์‹œ์˜ค.

์–ผ๋งˆ ์ „์— ํ˜„์žฌ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š” SO ์งˆ๋ฌธ์—์„œ ์ด ๋ช…๋ น์„ ์ œ๊ณตํ–ˆ์Šต๋‹ˆ๋‹ค. ์ฐจ์„ ์ฑ…์ด์ง€๋งŒ ํ•˜๋‚˜๋ฅผ ์ œ์™ธํ•œ ๋Œ€๋ถ€๋ถ„์˜ ํŒจํ‚ค์ง€์—์„œ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. (์ €๋Š” Windows๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— py ๋Ÿฐ์ฒ˜๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.)

pip list -o | cut -d " " -f 1 | xargs -n1 py -m pip install -U

์ด์ œ ๋‚ด๊ฐ€ ๊ฐ€์ง„ ํ•œ ๊ฐ€์ง€ ๋ฌธ์ œ๋Š” ๋‹ค์Œ ์š”๊ตฌ ์‚ฌํ•ญ์ด ์žˆ๋Š” flake8 ํŒจํ‚ค์ง€์ž…๋‹ˆ๋‹ค.

Requires-Dist: pyflakes (>=0.8.1,<1.1)
Requires-Dist: pep8 (>=1.5.7,!=1.6.0,!=1.6.1,!=1.6.2)
Requires-Dist: mccabe (>=0.2.1,<0.5)

ํŠนํžˆ pyflakes๋Š” ์ตœ์‹  ๋ฒ„์ „์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ณ  ์œ„์˜ ๋ช…๋ น์œผ๋กœ ์—…๋ฐ์ดํŠธ๋˜์–ด flake8์ด (๋ฒ„์ „์„ ํ™•์ธํ•˜๊ธฐ ๋•Œ๋ฌธ์—) ์•„๋ฌด ์ž‘์—…๋„ ์ˆ˜ํ–‰ํ•˜์ง€ ๋ชปํ•˜๊ฒŒ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค.
๋”ฐ๋ผ์„œ ์ด๊ฒƒ์€ ์‹ค์ œ๋กœ ๊ณ ๋ คํ•ด์•ผ ํ•  ์‚ฌํ•ญ์ด๋ฉฐ ์ ์ ˆํ•œ ๋ชจ๋“  ์—…๊ทธ๋ ˆ์ด๋“œ ๊ธฐ๋Šฅ(์š”๊ตฌ ์‚ฌํ•ญ์„ ์œ„๋ฐ˜ํ•˜์ง€ ์•Š๊ณ !)์„ ๊ฐ–๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

@dstufft ์™œ? foo๊ฐ€ pyyaml์— ์˜์กดํ•˜๊ณ  foo๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋„๋ก ์š”์ฒญํ•˜๋ฉด pyyaml์ด ์—…๊ทธ๋ ˆ์ด๋“œ๋˜์ง€ ์•Š์ง€๋งŒ(์ƒˆ ๋ฐ”์ด๋„ˆ๋ฆฌ ์—†์Œ) foo๋Š” ์—ฌ์ „ํžˆ ์›๋ž˜ pyyaml์ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์—…๊ทธ๋ ˆ์ด๋“œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ƒˆ๋กœ์šด ์ข…์†์„ฑ์˜ ๊ฒฝ์šฐ(๋˜๋Š” ์ข…์†์„ฑ์ด ํ•ญ์ƒ ์กด์žฌํ•˜์ง€ ์•Š๋Š” ์„ค์น˜ ์‹œ) ์„ค์น˜ํ•ด์•ผ ํ•˜๋ฏ€๋กœ ๋ฐ”์ด๋„ˆ๋ฆฌ๊ฐ€ ์—†์œผ๋ฉด ์†Œ์Šค๋ฅผ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค. ์ €๋Š” ๊ฐœ์ธ์ ์œผ๋กœ "์†Œ์Šค๊ฐ€ ์žˆ๋Š” ์ตœ์‹  ๋ฒ„์ „๋ณด๋‹ค ๋ฐ”์ด๋„ˆ๋ฆฌ๊ฐ€ ์žˆ๋Š” ์ด์ „ ๋ฒ„์ „ ์„ ํƒ"์„ ๊ณ ๋ คํ•˜๊ณ  ์‹ถ์ง€๋งŒ ์ด๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ --binary-only ๊ฐ€๊นŒ์›Œ์ง€๊ณ  ์žˆ์œผ๋ฉฐ ์ด๋Š” ์šฐ๋ฆฌ๊ฐ€ ์ค€๋น„๋˜์ง€ ์•Š์•˜๋‹ค๋Š” ๋ฐ ๋™์˜ํ•ฉ๋‹ˆ๋‹ค.

ํ , ์–ด์ฉŒ๋ฉด ๋‚ด๊ฐ€ ๊ฐ€์ง„ ๋ฌธ์ œ๋Š” ์‹ค์ œ๋กœ ๋„ˆ๋ฌด ์กฐ์žกํ•œ --only-binary ์˜ต์…˜์— ์žˆ์Šต๋‹ˆ๋‹ค. --prefer-binary ์˜ต์…˜์ด ์žˆ๋Š” ๊ฒฝ์šฐ "ํ›„๋ณด๊ฐ€ ์—†๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•˜์ง€ ์•Š๋Š” ํ•œ ๋ฐ”์ด๋„ˆ๋ฆฌ๋งŒ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค. ์ด ๊ฒฝ์šฐ ์†Œ์Šค ํ—ˆ์šฉ์„ ๋‹ค์‹œ ์‹œ๋„ํ•˜์‹ญ์‹œ์˜ค." ์™„ํ™”๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. @njsmith๊ฐ€ ์ œ์•ˆํ•œ ๊ฒƒ์ฒ˜๋Ÿผ, ๋‚ด๊ฐ€ ์ดˆ์ ์„ ๋งž์ถ”๊ณ  ์žˆ๋Š” ๋ฐ”์ด๋„ˆ๋ฆฌ/์†Œ์Šค ๊ตฌ๋ณ„์ด ์ด ํ‹ฐ์ผ“๊ณผ ์ง๊ตํ•  ์ˆ˜ ์žˆ์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค(๋น„๋ก ๋‚ด ์ž…์žฅ์ด " --only-binary ๋ณด๋‹ค ๋‚˜์€ ๊ฒƒ์ด ์—†์œผ๋ฉด ๋‚ด ์š”๊ตฌ ์‚ฌํ•ญ์— ๋Œ€ํ•œ ๋งŒ์กฑ์Šค๋Ÿฌ์šด ์†”๋ฃจ์…˜์ด ์—†์Šต๋‹ˆ๋‹ค.

ํŠนํžˆ ํŒŒ์ด ํ”Œ๋ ˆ์ดํฌ๊ฐ€ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค.

์ข‹์•„, ๊ทธ๊ฑด ๋‚ด๊ฐ€ ๊ฐ€์ง„ ์ƒํ™ฉ์ด ์•„๋‹ˆ๋‹ค. "ํŒŒ์†๋˜์ง€ ์•Š๋Š” ์ตœ์‹  ๋ฒ„์ „"์œผ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๊ธฐ ์œ„ํ•ด "๋ชจ๋‘ ์—…๊ทธ๋ ˆ์ด๋“œ"๋ฅผ ์ˆ˜์ •ํ•˜๋Š” ๋ฐ ๋ฌธ์ œ๊ฐ€ ์—†์ง€๋งŒ ์˜ฌ๋ฐ”๋ฅธ ์†”๋ฃจ์…˜์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด "SAT ์†”๋ฒ„" ์ ‘๊ทผ ๋ฐฉ์‹์ด ํ•„์š”ํ•œ AIUI๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ๊ตฌํ˜„ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. ๋””์ž์ธ์€ ์‹ค์ œ๋กœ ํ•ญ์ƒ ์˜ฌ๋ฐ”๋ฅธ ๊ฒฐ๊ณผ๋ฅผ ์ œ๊ณตํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

@pfmoore ์ด ํ‹ฐ์ผ“์˜ ๊ฒฐ๊ณผ์— ๊ด€๊ณ„์—†์ด --prefer-binary ํ”Œ๋ž˜๊ทธ๊ฐ€ ์ข‹์€ ์˜ต์…˜์ด ๋  ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ์„ค์น˜๋˜์—ˆ์„ ์ตœ์‹  ๋ฒ„์ „์„ ์„ค์น˜ํ•˜์ง€ ์•Š์„ ๋•Œ ๊ฒฝ๊ณ ์™€ ํ•จ๊ป˜ ๋ฒˆ๋“ค๋กœ ์ œ๊ณต๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@FicheFoll : ์ฒซ ๋ฒˆ์งธ ์›์น™์—์„œ ์ „์ฒด UI๋ฅผ ๋‹ค์‹œ ํŒŒ์ƒ์‹œํ‚ค๋ ค๋Š” ์‹œ๋„๊ฐ€ ๋งค์šฐ ์ƒ์‚ฐ์ ์ผ ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด ํŠน์ • ๋ฌธ์ œ์— ๋Œ€ํ•œ ์ฃผ์ œ์— ๋Œ€ํ•ด ๋น„๊ต์  ๋ช…ํ™•ํ•˜๊ฒŒ ์ •์˜๋œ ๋ฌธ์ œ ๋ถ€๋ถ„์ด ์žˆ์œผ๋ฉฐ, ๋ฒ”์œ„๋ฅผ ํ•œ ๋ฒˆ์— ๋ชจ๋“  ๊ฒƒ์œผ๋กœ ํ™•์žฅํ•˜๋ ค๊ณ  ํ•˜๋ฉด ๋‹ค์‹œ ์ˆ˜๋ ์— ๋น ์งˆ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๊ทธ ์ฃผ์ œ์—์„œ ์šฐ๋ฆฌ๊ฐ€ ๋‹ค๋ฅธ ํ•ต์‹ฌ ์œ„์น˜๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๊ฐ€ pip install foo ๊ฐ€ ์ œ๊ฑฐ๋œ ์ƒํƒœ์—์„œ ์„ค์น˜๋œ ์ƒํƒœ๋กœ ์ „ํ™˜ํ•˜๋Š” ๋ฐ๋งŒ ์‚ฌ์šฉ๋˜๋Š” ๋ฉ˜ํƒˆ ๋ชจ๋ธ์ด ์žˆ๊ณ  foo ์„ ์ดํ•ดํ•˜๊ณ  ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค pip install foo _๋ฅผ ์ž…๋ ฅํ•˜์ง€ ์•Š์„ ๊ฒƒ์ด๋ผ๊ณ  ์ฃผ์žฅํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์–ด๋–ค ์‚ฌ์šฉ์ž๊ฐ€ foo ๊ฐ€ ์ด๋ฏธ ์„ค์น˜๋˜์–ด ์žˆ์„ ๋•Œ pip install foo _์ž…๋ ฅํ•˜๋ฉด ๊ทธ๋“ค์˜ ๋ฉ˜ํƒˆ ๋ชจ๋ธ์ด ๊ท€ํ•˜์˜ (2)์™€ ๋‹ค๋ฅด๋‹ค๋Š” ๊ฒฐ๋ก ์„ ๋‚ด๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. _์–ด๋Š ์ชฝ์ด๋“ _ ์ฒซ ๋ฒˆ์งธ ๋ถ€๋ถ„์ด ์ž˜๋ชป๋˜์—ˆ์Šต๋‹ˆ๋‹ค. foo ๊ฐ€ ์„ค์น˜๋˜์–ด ์žˆ๊ณ  pip๊ฐ€ ๋‹ค๋ฅธ ์ธ๊ธฐ ์žˆ๋Š” ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž์ฒ˜๋Ÿผ ์—…๊ทธ๋ ˆ์ด๋“œ๋˜๊ธฐ๋ฅผ ๊ธฐ๋Œ€ํ•ฉ๋‹ˆ๋‹ค. _๋˜๋Š”_, ๋‘ ๋ฒˆ์งธ ๋ถ€๋ถ„์€ ์ž˜๋ชป๋˜์—ˆ์Šต๋‹ˆ๋‹ค. foo ๊ฐ€ ์„ค์น˜๋˜์—ˆ๋‹ค๋Š” ์‚ฌ์‹ค์„ ์ธ์‹ํ•˜์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค , ์ด ๊ฒฝ์šฐ install ์—์„œ ์ตœ์‹  ๋ฒ„์ „์œผ๋กœ ๋‚จ๊ฒจ๋‘˜ ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒํ•ฉ๋‹ˆ๋‹ค(ํŒจํ‚ค์ง€๊ฐ€ ์„ค์น˜๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ์„ค์น˜๊ฐ€ ์ˆ˜ํ–‰ํ•˜๋Š” ์ž‘์—…์ด๊ณ  ์ด ํŒจํ‚ค์ง€๊ฐ€ ์„ค์น˜๋˜์ง€ ์•Š์€ ๊ฒƒ์œผ๋กœ ์ƒ๊ฐํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค).

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

$ pip install foobar
I'm sorry, but foobar is already installed, you want to run ``pip upgrade foobar``
$ pip upgrade foobar
...

๊ทธ๊ฒƒ์ด ๊ธฐ์ˆ ์ ์œผ๋กœ "์˜ฌ๋ฐ”๋ฅธ" ๊ฒƒ์ด๋”๋ผ๋„ ๋‚˜๋ฅผ ์„ฑ๊ฐ€์‹œ๊ฒŒ ํ•˜๋Š” ๊ฒƒ ์™ธ์—๋Š” ์•„๋ฌด ๊ฒƒ๋„ ํ•˜์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋ฐ˜๋Œ€๋กœ "์ข‹์•„, pip install foobar ์ด๋ฏธ foobar ์„ค์น˜๋˜์–ด ์žˆ์œผ๋ฉด ์„ค์น˜๋˜์ง€ ์•Š์€ ๊ฒƒ์ฒ˜๋Ÿผ ์ž‘๋™ํ•˜๊ณ  pip upgrade foobar ๋ฅผ ์„ค์น˜ํ•˜๋ฉด ์ด๋ฏธ ์„ค์น˜๋œ ๊ฒƒ์ฒ˜๋Ÿผ ์ž‘๋™ํ•˜๊ณ  ๊ธฐ๋ณธ์ ์œผ๋กœ ๋™์ผํ•œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋‘ ๊ฐœ์˜ ๋ช…๋ น์œผ๋กœ ๋๋‚ฉ๋‹ˆ๋‹ค. _์•„๋งˆ๋„_ ์ •ํ™•ํžˆ ์ฒ˜๋ฆฌ๋˜๋Š” ๋ฐฉ์‹์— ์•ฝ๊ฐ„์˜ ์ฐจ์ด๊ฐ€ ์žˆ๋‹ค๋Š” ์ ์„ ์ œ์™ธํ•˜๊ณ ๋Š” --options ์žˆ๋Š” ๋‹จ์ผ ๋ช…๋ น์œผ๋กœ ์†ํ•œ๋‹ค๊ณ  ๋งํ•ฉ๋‹ˆ๋‹ค. --flags ๋ฅผ ์‚ฌ์šฉํ•  ํ•ญ๋ชฉ์— ๋Œ€ํ•ด ์ผ๋ถ€ ์„ ํƒ์„ ํ•˜๋Š” ๋น„์šฉ์„ ์ง€๋ถˆํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

ํ™•์ธ. ๋‚˜๋ฅผ ์„ค๋“ํ–ˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ด. ๋‚˜๋Š” ์•ฝ๊ฐ„์˜ ์กฐ์‚ฌ๋ฅผ ํ–ˆ๊ณ  ์‹ฌ์ง€์–ด Windows ์„ค์น˜ ํ”„๋กœ๊ทธ๋žจ๋„ (์•„๋งˆ๋„ :-)) do install-as-upgrade์— ์ต์ˆ™ํ•ฉ๋‹ˆ๋‹ค(VirtualBox์™€ ๊ฐ™์€ ๊ฒƒ์„ ์„ค์น˜ํ•˜๋ฉด "์ด๋ฏธ ์ด์ „ ๋ฒ„์ „์ด ์„ค์น˜๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์—…๊ทธ๋ ˆ์ด๋“œ ํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?") Powershell์—๋Š” ์„ค์น˜ ํŒจํ‚ค์ง€๊ฐ€ ์žˆ๋Š”๋ฐ ๊ตฌ์ฒด์ ์œผ๋กœ ์–ธ๊ธ‰๋˜์ง€๋Š” ์•Š์•˜์ง€๋งŒ ์—…๊ทธ๋ ˆ์ด๋“œ ํŒจํ‚ค์ง€๋Š” ์—†์Šต๋‹ˆ๋‹ค. ๊ธฐํƒ€ ๋“ฑ๋“ฑ. ๊ทธ๋ž˜์„œ "์„ค์น˜" ๋ช…๋ น ํ•˜๋‚˜๋งŒ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ํ‘œ์ค€์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

๋ฌผ๋ก  ๋‹ค๋ฅธ ์‚ฌ๋žŒ์ด ๋…ผ์Ÿํ•˜๊ณ  ์‹ถ์–ดํ•˜์ง€ ์•Š๋Š” ํ•œ ๊ธฐ์ˆ ์ ์œผ๋กœ ์ด PR์€ "๊ตฌํ˜„๋˜์ง€ ์•Š์„ ๊ฒƒ"์œผ๋กœ ์ข…๋ฃŒ๋  ์ˆ˜ ์žˆ์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์„ค์น˜ ๋ช…๋ น์„ ๋ฆฌ๋ชจ๋ธ๋งํ•˜๋ ค๋Š” _๋ฐฉ๋ฒ•_์— ๋Œ€ํ•ด ๋…ผ์˜ํ•˜๊ธฐ์—๋Š” ์—ฌ์ „ํžˆ ์ข‹์€ ์žฅ์†Œ์ž…๋‹ˆ๋‹ค.

OTOH, ์–ด์ฉŒ๋ฉด ์šฐ๋ฆฌ๋Š” ์ด๊ฒƒ์„ ๊ฑฐ๋ถ€๋œ ๊ฒƒ์œผ๋กœ ๋‹ซ๊ณ  ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ์„ค์น˜ ๋ช…๋ น์„ ์ˆ˜์ •ํ•ด์•ผ ํ•œ๋‹ค๊ณ  ์ œ์•ˆํ•˜๋Š” ๊ตฌ์ฒด์ ์ธ ์ œ์•ˆ๊ณผ ํ•จ๊ป˜ ์ƒˆ๋กœ์šด ๋ฌธ์ œ๋ฅผ ์—ฝ๋‹ˆ๋‹ค. ์ ์–ด๋„ ํ† ๋ก ์„ ์œ„ํ•œ ๋” ๋ช…ํ™•ํ•œ ์ถœ๋ฐœ์ ์„ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์งˆ๋ฌธ์ž…๋‹ˆ๋‹ค. ๋ˆ„๊ตฐ๊ฐ€ ์šฐ๋ฆฌ๊ฐ€ ์—ฌ๊ธฐ ๊ทธ๋ฆฌ๊ณ  ๋‹ค๋ฅธ ๊ณณ์—์„œ ์ œ์•ˆ๋œ ๋ชจ๋“  ์ œ์•ˆ์—์„œ ์™„์ „ํ•œ ์ œ์•ˆ๋œ ํ–‰๋™์„ ์กฐํ•ฉํ•  ์ˆ˜ ์žˆ๋Š” ์ง€์ ์— ์•„์ง ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๊นŒ? ์ข…์†์„ฑ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•, ์ œ์•ฝ ์กฐ๊ฑด(๋ฐ ์ถฉ๋Œ์ด ์ถฉ๋Œํ•˜๋Š” ๊ฒฝ์šฐ), ๋ฐ”์ด๋„ˆ๋ฆฌ ๋Œ€ ์†Œ์Šค, "๋ชจ๋‘ ์—…๊ทธ๋ ˆ์ด๋“œ" ์‹œ๋‚˜๋ฆฌ์˜ค๋ฅผ ์ง€์›ํ•˜๋Š” ๋ฐฉ๋ฒ• ๋“ฑ์„ ๋‹ค๋ฃน๋‹ˆ๋‹ค. ๋‚ด ๊ฐœ์ธ์ ์ธ ๋Š๋‚Œ์€ ์šฐ๋ฆฌ๊ฐ€ ๊ฒฐ์ •์„ ๋‚ด๋ฆฌ๊ฑฐ๋‚˜ ํ† ๋ก ์— ์ฐธ๊ณ ํ•  ์ˆ˜ ์žˆ๋Š” ์‚ฌ๋žŒ์ด ํ•„์š”ํ•˜๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ์„ธ๋ถ€ ์‚ฌํ•ญ์— ๋Œ€ํ•ด ์˜์›ํžˆ ํ† ๋ก ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๊ทธ๋ ‡๊ฒŒ ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ๋‚ด๊ฐ€ ์ œ์•ˆํ•œ ๊ฒƒ์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ ๊ฐ™์ง€ ์•Š์Šต๋‹ˆ๋‹ค(์˜ˆ: SAT ์†”๋ฒ„ AIUI๋ฅผ ์˜๋ฏธํ•˜๋Š” "์ตœ์  ์ข…์†์„ฑ ํ•ด๊ฒฐ" ์ ‘๊ทผ ๋ฐฉ์‹์„ ์ œ์•ˆํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค). ๋”ฐ๋ผ์„œ ์ œ์•ˆ์„ ๊ธฐ๊บผ์ด ์ดํ–‰ํ•˜๋ ค๋Š” ์‚ฌ๋žŒ์ด ํ•œ ๋‹จ๊ณ„ ๋” ๋‚˜์•„๊ฐ€(๊ทธ๋ฆฌ๊ณ  ํ”ผํ•  ์ˆ˜ ์—†๋Š” ๋…ผ์Ÿ๊ณผ ์ž์ „๊ฑฐ ์ด๋™์„ ์ฒ˜๋ฆฌ :-))ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ์—ฌ๊ธฐ์—์„œ ์–ธ๊ธ‰ํ•œ ์š”์ ์˜ ์ผ๋ถ€ ์˜๋ฏธ์— ๋Œ€ํ•ด ์—ฌ์ „ํžˆ ์šฐ๋ คํ•˜๊ณ  ์žˆ์ง€๋งŒ ๊ตฌํ˜„์˜ ์‹ค์ œ ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ์„ ๋•Œ๊นŒ์ง€ ๊ทธ๊ฒƒ์— ๋Œ€ํ•ด ํ† ๋ก ํ•  ์—๋„ˆ์ง€๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์‹ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

@dstufft ์˜ ์ตœ์‹  https://github.com/pypa/pip/issues/59#issuecomment -224341218์— ์ „์ ์œผ๋กœ ๋™์˜ํ•ฉ๋‹ˆ๋‹ค.
์ด๊ฒƒ์ด (๋‹ค์‹œ ํ•œ ๋ฒˆ) --eager / --non-eager ์˜ต์…˜์˜ ๊ฐ„๋‹จํ•œ ์†”๋ฃจ์…˜์„ ์˜นํ˜ธํ•˜๋Š” ์ด์œ ์ž…๋‹ˆ๋‹ค.

๋‚˜๋Š” ๋˜ํ•œ ์–ธ๊ธ‰ํ•œ ๋Œ€๋กœ @dstufft ์˜ ์˜๊ฒฌ์— ๋™์˜ํ•ฉ๋‹ˆ๋‹ค(๋‹จ์ผ install ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜๊ณ  update ๋ช…๋ น์€ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Œ).

๊ทธ๋Ÿฌ๋‚˜ --eager / --non-eager ์ˆ˜๋ฐ˜ํ•˜๋Š”์ง€ ์ž˜ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค. --non-eager ๋Š” ์—…๋ฐ์ดํŠธํ•  ํ•„์š”๊ฐ€ ์—†๋Š” ํ•ญ๋ชฉ์„ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ์˜๋ฏธ์ธ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค(์‚ฌ์šฉ์ž๊ฐ€ ๋ช…์‹œ์ ์œผ๋กœ ์ง€์ •ํ–ˆ๊ฑฐ๋‚˜ ์ƒˆ ์ข…์†์„ฑ ์ง‘ํ•ฉ์„ ๋งŒ์กฑ์‹œํ‚ค๊ธฐ์—๋Š” ๋„ˆ๋ฌด ์˜ค๋ž˜๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ). --eager ๋Š” ํ•„์š” ์—ฌ๋ถ€์— ๊ด€๊ณ„์—†์ด ๋ชจ๋“  ์ข…์†์„ฑ์„ ๊ฐ€๋Šฅํ•œ ์ตœ์‹  ๋ฒ„์ „์œผ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๊นŒ? ์–ด๋–ค ๊ฒƒ์ด ๊ธฐ๋ณธ๊ฐ’์ด ๋ ๊นŒ์š”? (๋‚˜๋Š” --non-eager ์ฃผ์žฅํ•  ๊ฒƒ์ด๋‹ค)

๊ทธ๋ฆฌ๊ณ  ์งˆ๋ฌธ - ๊ณผํ•™ ํŒจํ‚ค์ง€๊ฐ€ ์ข…์†์„ฑ์„ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์„ ์–ธํ•˜๋„๋ก ๊ถŒ์žฅํ•ฉ๋‹ˆ๊นŒ? ๊ทธ๊ฒƒ์€ ์ค‘์š”ํ•œ ๊ณ ๋ ค ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค.

์ž์ „๊ฑฐ ๋ณด๊ด€์†Œ. ์˜ต์…˜ ์ด๋ฆ„ --eager ๋ฐ --non-eager ๋Š” ๋งค์šฐ ์ง๊ด€์ ์ด์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋” ๋‚˜์€ ์กฐ๊ฑด์ด ํ•„์š”ํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. --upgrade-dependencies ์™€ ๊ฐ™์€ ๋ช…์‹œ์ ์ธ ๊ฒƒ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด PR์€ ๋˜ํ•œ ์ €์—๊ฒŒ ํ•ต์‹ฌ ์‚ฌ์šฉ ์‚ฌ๋ก€์ธ upgrade-all ๋ช…๋ น์„ ์ œ์•ˆํ•ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๊ฐ€ ๊ทธ ๋ช…๋ น์„ ๊ฑฐ๋ถ€ํ•œ๋‹ค๋Š” ๋ง์ž…๋‹ˆ๊นŒ, ์•„๋‹ˆ๋ฉด ๋‹จ์ˆœํžˆ ๊ทธ๊ฒƒ์— ๋Œ€ํ•œ ์˜๊ฒฌ์ด ์—†๋‹ค๋Š” ๋ง์”€์ž…๋‹ˆ๊นŒ?

--eager ๋ฐ -non-eager ์˜๋ฏธํ•˜๋Š” ๋ฐ”์— ๋Œ€ํ•œ ๋‚˜์˜ ์ดํ•ด๋Š” --non-eager ๊ฐ€ ๋‹ค์Œ๊ณผ ๊ฐ™์•„์•ผ ํ•œ๋‹ค๋Š” ๋ฐ ๋™์˜ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’. ๋‚˜๋Š” ๋˜ํ•œ ํ•œ ์ž… ๊ฐ€๋“ ์ฑ„์šฐ์ง€ ์•Š๋Š” ๋” ๋‚˜์€ ์†”๋ฃจ์…˜์ด ์—†์ง€๋งŒ ์ด๋ฆ„์ด ์•ฝ๊ฐ„ ์ง€์ €๋ถ„ํ•˜๋‹ค๋Š” ๋ฐ ๋™์˜ํ•ฉ๋‹ˆ๋‹ค. ์•„๋งˆ๋„ --[no-]recursive ๋˜๋Š” ๋ฌด์—‡์ธ๊ฐ€, ๋‚˜๋Š” ๋ชจ๋ฆ…๋‹ˆ๋‹ค.

upgrade-all ๋ช…๋ น๊ณผ ๊ฐ™์€ ๊ฒƒ์ด ์ข‹์€ ์ถ”๊ฐ€๊ฐ€ ๋  ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค(์–ด๋– ํ•œ ๋ฒ„์ „ ์ง€์ •์ž๋ฅผ ์œ„๋ฐ˜ํ•˜์ง€ ์•Š๋Š” ํ•œ). ๋‚˜๋Š” ์•„๋งˆ๋„ ์ด๊ฒƒ์„ upgrade ๋ผ๊ณ  ๋ถ€๋ฅด๊ณ  ๊ทธ๊ฒƒ์ด ์ž‘๋™ํ•˜๋Š” ๊ฒƒ์„ ์ œํ•œํ•˜๋Š” ์ธ์ˆ˜๋ฅผ ์ทจํ•˜์ง€ ์•Š๋„๋ก ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

ํ— ๋ฐ•์‚ฌ
upgrade-all-packages ๋Œ€ํ•œ ํ† ๋ก  - ์—ฌ๊ธฐ์— ์žˆ์Šต๋‹ˆ๋‹ค.
์„ ํ˜ธ ๋ฐ”์ด๋„ˆ๋ฆฌ์— ๋Œ€ํ•œ ํ† ๋ก  - #3785 ์ด์ƒ
์—…๊ทธ๋ ˆ์ด๋“œ๋กœ ์„ค์น˜์— ๋Œ€ํ•œ ๋…ผ์˜ - #3786 ์ด์ƒ


--prefer-binary ์˜ต์…˜์ด ์žˆ๋Š” ๊ฒฝ์šฐ "ํ›„๋ณด๊ฐ€ ์—†๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•˜์ง€ ์•Š๋Š” ํ•œ ๋ฐ”์ด๋„ˆ๋ฆฌ๋งŒ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค. ์ด ๊ฒฝ์šฐ ์†Œ์Šค ํ—ˆ์šฉ์„ ๋‹ค์‹œ ์‹œ๋„ํ•˜์‹ญ์‹œ์˜ค"

์ด๊ฒƒ์€ ์ข‹์€ ์ƒ๊ฐ์ž…๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ์™€ ๊ด€๋ จํ•˜์—ฌ, ๋‚˜๋Š” ๊ทธ๊ฒƒ์ด ์ž์ฒด ๋ฌธ์ œ๋ฅผ ๊ฐ€์งˆ ๊ฐ€์น˜๊ฐ€ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ( @dstufft ์˜ ์ฝ”๋ฉ˜ํŠธ๋Š” ๊ทธ๊ฒƒ์„ ์ถ”๊ตฌํ•  ๊ด€์‹ฌ์ด ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๊ฒŒ ๋งŒ๋“ญ๋‹ˆ๋‹ค). ์ด์— ๋Œ€ํ•œ ์ถ”๊ฐ€ ๋…ผ์˜๋ฅผ ์œ„ํ•ด #3785๋ฅผ ์—ด์—ˆ์Šต๋‹ˆ๋‹ค.

--eager ๋ฐ -non-eager ์˜๋ฏธ์— ๋Œ€ํ•œ ๋‚˜์˜ ์ดํ•ด๋Š” @pfmoore๊ฐ€ ๋ฐฉ๊ธˆ ๋งํ•œ ๊ฒƒ๊ณผ ์ผ์น˜ํ•ฉ๋‹ˆ๋‹ค(์ข…์†์„ฑ์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ์—๋งŒ ๋˜๋Š” ํ•ญ์ƒ ์„ค์น˜๋˜๋Š”์ง€ ์—ฌ๋ถ€)

Eager ์—…๊ทธ๋ ˆ์ด๋“œ๋Š” ๋ชจ๋“  (ํ•˜์œ„) ์ข…์†์„ฑ ์˜ ์ตœ์‹  ํ—ˆ์šฉ ๋ฒ„์ „์„ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค ๋น„์—ด์‹ฌ ์—…๊ทธ๋ ˆ์ด๋“œ๋Š” ํŒจํ‚ค์ง€ ์š”๊ตฌ ์‚ฌํ•ญ์„ ๋” ์ด์ƒ ์ถฉ์กฑํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ์—๋งŒ ์—…๊ทธ๋ ˆ์ด๋“œ ํ•ฉ๋‹ˆ๋‹ค.

์˜ต์…˜ ์ด๋ฆ„ --eager ๋ฐ --non-eager๋Š” ๋งค์šฐ ์ง๊ด€์ ์ด์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ๋™์˜ํ•œ๋‹ค. ๋‚˜๋Š” ํ–‰๋™์„ ๋‹จ์ผ ํ”Œ๋ž˜๊ทธ ๋’ค์— ๋‘๋Š” ์•„์ด๋””์–ด๋ฅผ ์ข‹์•„ํ•ฉ๋‹ˆ๋‹ค.
--upgrade-strategy=eager/non-eager

ํ•œ ์ž… ๊ฐ€๋“ํ•˜์ง€๋งŒ ์˜๋„๋ฅผ ๋” ๋ช…ํ™•ํ•˜๊ฒŒ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค. ๋„ˆ๋ฌด ์žฅํ™ฉํ•ฉ๋‹ˆ๊นŒ? ์•„๋งˆ๋„.

์˜๋ฏธ๋ก ์„ ์™„์„ฑํ•œ ํ›„์— ๋ฐ”์ดํฌ ์…ฐ๋”ฉ์„ ํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€์žฅ ์ข‹๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

๋ˆ„๊ตฐ๊ฐ€ ์šฐ๋ฆฌ๊ฐ€ ์—ฌ๊ธฐ ๊ทธ๋ฆฌ๊ณ  ๋‹ค๋ฅธ ๊ณณ์—์„œ ์ œ์•ˆ๋œ ๋ชจ๋“  ์ œ์•ˆ์—์„œ ์™„์ „ํ•œ ์ œ์•ˆ๋œ ํ–‰๋™์„ ์กฐํ•ฉํ•  ์ˆ˜ ์žˆ๋Š” ์ง€์ ์— ์•„์ง ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๊นŒ?

๋‚˜๋„ ๊ทธ๋ ‡๊ฒŒ ์ƒ๊ฐํ•ด. ์šฐ๋ฆฌ๋Š” ์ตœ์†Œํ•œ ์šฐ๋ฆฌ๊ฐ€ ๋™์˜ํ•˜๋Š” ๋ช‡ ๊ฐ€์ง€ ๊ธฐ๋ณธ ์‚ฌ์‹ค์„ ํ™•๋ฆฝํ•  ํ•„์š”๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ด๊ฒƒ์—์žˆ๋‹ค.

OTOH, ์–ด์ฉŒ๋ฉด ์šฐ๋ฆฌ๋Š” ์ด๊ฒƒ์„ ๊ฑฐ๋ถ€๋œ ๊ฒƒ์œผ๋กœ ๋‹ซ๊ณ  ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ์„ค์น˜ ๋ช…๋ น์„ ์ˆ˜์ •ํ•ด์•ผ ํ•œ๋‹ค๊ณ  ์ œ์•ˆํ•˜๋Š” ๊ตฌ์ฒด์ ์ธ ์ œ์•ˆ๊ณผ ํ•จ๊ป˜ ์ƒˆ๋กœ์šด ๋ฌธ์ œ๋ฅผ ์—ฝ๋‹ˆ๋‹ค. ์ ์–ด๋„ ํ† ๋ก ์„ ์œ„ํ•œ ๋” ๋ช…ํ™•ํ•œ ์ถœ๋ฐœ์ ์„ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

upgrade-all ์ œ์•ˆํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ง€๊ธˆ์€ ์ด ๋ฌธ์ œ๋ฅผ ์—ด์–ด ๋‘์–ด์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์—…๊ทธ๋ ˆ์ด๋“œ๊ฐ€ ์ง„ํ–‰๋˜์ง€ ์•Š๋Š”๋‹ค๋Š” ์ ์„ ์ด๋ฏธ ํ™•์ธํ•˜์…จ์Šต๋‹ˆ๋‹ค. install-as-upgrade ๋ช…๋ น์— ๋Œ€ํ•œ ์ถ”๊ฐ€ ๋…ผ์˜๋ฅผ ์œ„ํ•ด #3786์„ ์—ด์—ˆ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ์—ฌ๊ธฐ์—์„œ ์–ธ๊ธ‰ํ•œ ์š”์ ์˜ ์ผ๋ถ€ ์˜๋ฏธ์— ๋Œ€ํ•ด ์—ฌ์ „ํžˆ ์šฐ๋ คํ•˜๊ณ  ์žˆ์ง€๋งŒ ๊ตฌํ˜„์˜ ์‹ค์ œ ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ์„ ๋•Œ๊นŒ์ง€ ๊ทธ๊ฒƒ์— ๋Œ€ํ•ด ํ† ๋ก ํ•  ์—๋„ˆ์ง€๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์‹ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ์ด๊ฒƒ์„ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐ๊นŒ์ง€ ๊ณ„์† ์ง„ํ–‰ํ•  ์šฉ์˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ด๊ฒƒ์— ๋Œ€ํ•œ ํ•ฉ์˜๋ฅผ ๋„์ถœํ•˜๋Š” ๋ฐ ๋‹ค๋ฅธ ๋ชจ๋“  ์‚ฌ๋žŒ์˜ ๋…ธ๋ ฅ์„ ๋‚ญ๋น„ํ•˜๊ณ  ์‹ถ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ๋ชจ๋‘๊ฐ€ '์„ธ๊ณ„ ์—…๊ทธ๋ ˆ์ด๋“œ' ๋ช…๋ น์ด ์žˆ์œผ๋ฉด ์ •๋ง ์ข‹์„ ๊ฒƒ์ด๋ผ๋Š” ๋ฐ ๋™์˜ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•˜์ง€๋งŒ IIUC๋Š” ๋ฆฌ์กธ๋ฒ„ ์ž‘์—…์ด ์ฐฉ๋ฅ™ํ•˜๊ธฐ๋ฅผ ๊ธฐ๋‹ค๋ฆฌ๋Š” ๋™์•ˆ ์ฐจ๋‹จ๋ฉ๋‹ˆ๋‹ค. ๊ทธ ๋™์•ˆ ๋‚˜๋Š” @pradyunsg ์˜ ์ƒˆ๋กœ์šด ํ† ๋ก  ์ฃผ์ œ ์— ๋‹จ์ผ ํŒจํ‚ค์ง€ ์—…๊ทธ๋ ˆ์ด๋“œ ์—

๋‚˜๋Š” ๋ชจ๋‘๊ฐ€ '์„ธ๊ณ„ ์—…๊ทธ๋ ˆ์ด๋“œ' ๋ช…๋ น์ด ์žˆ์œผ๋ฉด ์ •๋ง ์ข‹์„ ๊ฒƒ์ด๋ผ๋Š” ๋ฐ ๋™์˜ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•˜์ง€๋งŒ IIUC๋Š” ๋ฆฌ์กธ๋ฒ„ ์ž‘์—…์ด ์ฐฉ๋ฅ™ํ•˜๊ธฐ๋ฅผ ๊ธฐ๋‹ค๋ฆฌ๋Š” ๋™์•ˆ ์ฐจ๋‹จ๋ฉ๋‹ˆ๋‹ค.

์‹ค์ œ๋กœ ์ด ๋ฌธ์ œ๋Š” ์ด์ œ #988์— ์˜ํ•ด ์ œ๋Œ€๋กœ ์ฐจ๋‹จ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋‘ ๋ฌธ์ œ๋ฅผ ๊ต์ฐจ ์—ฐ๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๋ฌธ์ œ ๋ฒˆํ˜ธ๋ฅผ ์–ธ๊ธ‰ํ•ฉ๋‹ˆ๋‹ค.

๊ฑฐ์˜ ์žŠ์—ˆ๋‹ค...

์—…๋ฐ์ดํŠธ๋ฅผ "๋ณด๋ฅ˜"ํ•œ๋‹ค๋Š” ๊ฒƒ์ด ๋ฌด์—‡์„ ์˜๋ฏธํ•˜๋Š”์ง€ ์ž˜ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค. ๋ช…ํ™•ํžˆ ํ•ด์ฃผ์„ธ์š”.

์ด์ œ ์ด ๋ฌธ์ œ๋Š” ๋ชจ๋“  ์—…๊ทธ๋ ˆ์ด๋“œ ์ „์šฉ์ด๋ฏ€๋กœ ๋ช…ํ™•ํžˆ ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

upgrade-all์„ ์‹คํ–‰ํ•  ๋•Œ ํŠน์ • ํŒจํ‚ค์ง€์˜ ์—…๊ทธ๋ ˆ์ด๋“œ๋ฅผ ๋ฐฉ์ง€ํ•˜๋Š” ๊ฒƒ์ด ์œ ์šฉํ•œ ์ƒํ™ฉ์ด ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ์—ผ๋‘์— ๋‘๊ณ  ์žˆ๋Š” ํŠน์ • ์‚ฌํ•ญ์€... pkg๊ฐ€ ์„ค์น˜๋˜์–ด ์žˆ๊ณ  ์ž ์žฌ์ ์ธ ์ตœ์‹  ๋ฒ„์ „์„ ๋‹ค์‹œ ๊ตฌ์„ฑํ•˜๋Š” ๊ฒƒ์— ๋Œ€ํ•ด ์‹ ๊ฒฝ์“ฐ์ง€ ์•Š์œผ๋ ค๋ฉด 'upgrade'๋ฅผ ์‹คํ–‰ํ•  ๋•Œ pip๊ฐ€ ํŠน์ • ํŒจํ‚ค์ง€๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜์ง€ ๋ชปํ•˜๋„๋ก ํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ์„ธ๊ณ„'. ๋ณธ์งˆ์ ์œผ๋กœ ๋‚˜๋Š” pkg์˜ ์—…๊ทธ๋ ˆ์ด๋“œ๋ฅผ ๋ณด๋ฅ˜ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์—…๊ทธ๋ ˆ์ด๋“œ๋ฅผ ๋ณด๋ฅ˜ํ•˜๊ธฐ ์œ„ํ•ด ์‰ผํ‘œ๋กœ ๊ตฌ๋ถ„๋œ ํŒจํ‚ค์ง€ ๋ชฉ๋ก์„ ์‚ฌ์šฉํ•˜๋Š” ํ”Œ๋ž˜๊ทธ๋Š” ๊ดœ์ฐฎ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

SAT ์†”๋ฒ„๊ฐ€ ๋‚˜์˜ค๋ฉด ์ด๊ฒƒ์„ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์€ ์‰ฌ์šธ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ๋‹จ์ง€ ๋ช‡ ๊ฐ€์ง€ ์ถ”๊ฐ€ ์กฐํ•ญ IIUC์ž…๋‹ˆ๋‹ค. (์˜ˆ, SAT ํ•ด๊ฒฐ์‚ฌ๋„ ๋‹ฆ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค)

์ด๊ฒƒ์ด ์ผ๋ฐ˜์ ์ธ ๊ฒƒ์ธ์ง€ ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ์›ํ•˜๋Š” ๊ฒƒ์ธ์ง€ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด๊ฒƒ์ด ๋‚ด ๋จธ๋ฆฌ์—์„œ ์‹œ์ž‘๋œ ๊ฒƒ์€ ์•„๋‹ˆ๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ์–ด๋”˜๊ฐ€์˜ ์Šค๋ ˆ๋“œ์—์„œ ๊ทธ๊ฒƒ์„ ์–ธ๊ธ‰ํ–ˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์•„, ์•Œ๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ์˜๋ฏธ๊ฐ€ ์žˆ๊ณ  ์›ํ•˜๋Š” ํ•ฉ๋ฆฌ์ ์ธ ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ž…๋‹ˆ๋‹ค.

๋น ๋ฅธ ์š”์ฒญ: ์„ค๋ช…์— ์—…๊ทธ๋ ˆ์ด๋“œ ๋ช…๋ น์ด ๋ฐœ์ƒํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ์ž‘์€ ๋ฉ”๋ชจ๋ฅผ ์ถ”๊ฐ€ํ•ด ์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ? ์•„๋งˆ๋„ ์›ํ•œ๋‹ค๋ฉด ์™œ ๊ทธ๋Ÿฐ์ง€์— ๋Œ€ํ•œ ๊ฐ„๋‹จํ•œ ์š”์•ฝ๋„ ์ž‘์„ฑํ•˜์‹ญ์‹œ์˜ค.

_์ž๋Ÿฌ ๊ฐ„๋‹ค_

apt์—๋Š” ๋‘ ๊ฐ€์ง€ ๋ฉ‹์ง„ ๊ธฐ๋Šฅ์ด ์žˆ์Šต๋‹ˆ๋‹ค(dnf์™€ ๊ฐ™์€ ๋‹ค๋ฅธ ์„ฑ์ˆ™ํ•œ ์‹œ์Šคํ…œ ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž๋„ ๋น„์Šทํ•œ ๊ธฐ๋Šฅ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค).

  • ํŒจํ‚ค์ง€๋ฅผ "๋ณด๋ฅ˜"๋กœ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ํŒจํ‚ค์ง€์— ๋ถ€์ฐฉ๋œ ์˜๊ตฌ ํ”Œ๋ž˜๊ทธ์ด๋ฉฐ upgrade-the-world ๋ช…๋ น์œผ๋กœ ๊ฑด๋„ˆ๋›ฐ๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค. ์ข…์ข… ๋กœ์ปฌ์—์„œ ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œํ•˜๊ฑฐ๋‚˜ ํŒจ์น˜ํ•ด์•ผ ํ•˜๋Š” ํŒจํ‚ค์ง€์— ์„ค์ •๋ฉ๋‹ˆ๋‹ค.
  • ์‚ฌ์šฉ์ž๊ฐ€ ๋ช…์‹œ์ ์œผ๋กœ ์š”์ฒญํ•œ ํŒจํ‚ค์ง€์™€ ์ข…์†์„ฑ ์ œ์•ฝ ์กฐ๊ฑด์„ ์ถฉ์กฑํ•˜๊ธฐ ์œ„ํ•ด ์•”์‹œ์ ์œผ๋กœ๋งŒ ์„ค์น˜๋œ ํŒจํ‚ค์ง€๋ฅผ ์ถ”์ ํ•ฉ๋‹ˆ๋‹ค. ํ›„์ž๋Š” ์˜์กดํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ ์—…๊ทธ๋ ˆ์ด๋“œ ์„ธ๊ณ„์— ์˜ํ•ด ์ œ๊ฑฐ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ๋‘ ๊ฐ€์ง€ ๋ชจ๋‘ npm ๋ฐ ํ™”๋ฌผ๊ณผ ๊ฐ™์€ ๋ณด๋‹ค ์ตœ๊ทผ์˜ ํ”„๋กœ์ ํŠธ ํ™˜๊ฒฝ ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž๊ฐ€ ์ˆ˜ํ–‰ํ•˜๋Š” ์ž‘์—…์˜ ํŠน์ˆ˜ํ•œ ๊ฒฝ์šฐ๋กœ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ ๊ทธ๋“ค์€ ์ผ์ข…์˜ ์ธ๊ฐ„ ์ง€ํ–ฅ "์š”๊ตฌ ์‚ฌํ•ญ" ํŒŒ์ผ๊ณผ ์™„์ „ํžˆ ์ง€์ •๋œ "์ž ๊ธˆ" ํŒŒ์ผ์„ ๊ตฌ๋ณ„ํ•ฉ๋‹ˆ๋‹ค. ๋ช…์‹œ์ ์œผ๋กœ ๋ณด์œ ๋œ ํŒจํ‚ค์ง€๋Š” ์‚ฌ๋žŒ์ด ์ง€์ •ํ•œ ๋ฒ„์ „ ์ œ์•ฝ ์กฐ๊ฑด์ด ์žˆ๋Š” ํŒจํ‚ค์ง€์™€ ๊ฐ™์œผ๋ฉฐ ๋ช…์‹œ์ ์œผ๋กœ ์„ค์น˜๋œ ํŒจํ‚ค์ง€๋Š” ์‚ฌ๋žŒ์ด ํŽธ์ง‘ํ•  ์ˆ˜ ์žˆ๋Š” ํŒŒ์ผ์— ๋‚˜์—ด๋œ ํŒจํ‚ค์ง€์ž…๋‹ˆ๋‹ค.

๊ฐ™๊ฒŒ. '์„ธ๊ณ„ ์—…๊ทธ๋ ˆ์ด๋“œ'๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒฝ์šฐ ํŒจํ‚ค์ง€๋ฅผ ํ‘œ์‹œํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค( held / user-installed ๋“ฑ). ์—…๊ทธ๋ ˆ์ด๋“œ. ๋‚˜๋Š” ์ด๊ฒƒ์„ ์ข‹์€ ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์š”๊ตฌ ์‚ฌํ•ญ์œผ๋กœ ๋ด…๋‹ˆ๋‹ค.

๋‚˜๋Š” ์‹ค์ œ๋กœ Cargo์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ์ˆ ์„ ์ข‹์•„ํ•˜๊ณ  ์ข‹์•„ํ•ฉ๋‹ˆ๋‹ค. ์–ด๋–ค ํ˜•ํƒœ์˜ meta-data-hidden-behind-a-cli-command๊ฐ€ ์•„๋‹Œ ํŒŒ์ผ์„ ์‚ฌ์šฉํ•˜๋ฉด ํ›จ์”ฌ ๋” ์‰ฝ๊ฒŒ ํŒŒ์•…ํ•˜๊ณ  ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์žฌํ˜„ ๊ฐ€๋Šฅํ•œ ํ™˜๊ฒฝ์„ ๋งŒ๋“ค ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

pyproject.lock ํ˜•ํƒœ๋ฅผ ๋ณธ๋‹ค๋ฉด ์ •๋ง ๊ธฐ์  ๊ฒƒ์ž…๋‹ˆ๋‹ค ...

200๋ฒˆ์งธ ๋Œ“๊ธ€์ž…๋‹ˆ๋‹ค. ์™€. : ์Šค๋งˆ์ผ :

์šฐ๋ฆฌ๊ฐ€ ์ด์•ผ๊ธฐํ•œ ํŒจํ‚ค์ง€์˜ "ํ‘œ์‹œ"๋ฅผ ์œ„ํ•ด #654์— ๋Œ€ํ•œ ์ฐธ์กฐ๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

ํ™”๋ฌผ์ด ํ•˜๋Š” ์ผ์„ ์„ค๋ช…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? pyproject.lock ํŒŒ์ผ์ด ์‚ฌ์šฉ์ž ์ปดํ“จํ„ฐ์— ์ €์žฅ๋˜๋Š” ๊ฒƒ์„ ์–ด๋””์—์„œ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

Rust์˜ Cargo์˜ ์ž ๊ธˆ ํŒŒ์ผ์€ ํ˜„์žฌ ์„ค์น˜๋œ ์ข…์†์„ฑ์˜ ๋ฒ„์ „์„ ๊ธฐ๋กํ•˜๊ธฐ ์œ„ํ•ด ํ”„๋กœ์ ํŠธ ๋ฃจํŠธ์— ์ €์žฅ๋ฉ๋‹ˆ๋‹ค. ์ด ํŒŒ์ผ์„ git์— ์ปค๋ฐ‹ํ•˜๋ฉด ์ผ๊ด€๋œ ์ข…์†์„ฑ ๋ฒ„์ „ ์„ธํŠธ๋ฅผ ๋‹ค๋ฅธ ๊ฐœ๋ฐœ์ž ๋ฐ CI์™€ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. PHP์˜ Composer์—๋Š” ์œ ์‚ฌํ•œ ์ž ๊ธˆ ํŒŒ์ผ์ธ Composer.lock์ด ์žˆ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ํ•ญ์ƒ pip์˜ 'pip freeze'์™€ 'pip install -r'์ด ๋น„์Šทํ•œ ์ผ์„ ํ•˜๊ธฐ ์œ„ํ•œ ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ–ˆ๋Š”๋ฐ, ์ž ๊ธˆ ํŒŒ์ผ ํ˜•์‹์ด ์‚ฌ๋žŒ์ด ์‰ฝ๊ฒŒ ์ฝ๊ณ  ์“ธ ์ˆ˜ ์žˆ๊ณ  ์‚ฌ๋žŒ๋“ค์ด ์ง์ ‘ ํŽธ์ง‘ํ•˜๊ธฐ๋กœ ์„ ํƒํ–ˆ๋‹ค๋Š” ์ ์€ ์œ ๊ฐ์ด์—ˆ์Šต๋‹ˆ๋‹ค. requirements.txt๋Š” ์›๋ž˜ ์ž ๊ธˆ ํŒŒ์ผ๋กœ ์ƒ๊ฐ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๊นŒ?

@triplepoint ์„ค๋ช… ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ์‹ค์ œ๋กœ ์š”๊ตฌ ์‚ฌํ•ญ ํŒŒ์ผ์ฒ˜๋Ÿผ ๋“ค๋ฆฝ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์š”๊ตฌ ์‚ฌํ•ญ ํŒŒ์ผ์€ ์„ ํƒ ์‚ฌํ•ญ์ด๋ฉฐ ๋ฒ„์ „ ๊ธฐ๋ฐ˜์ด๋ฉฐ ํ”„๋กœ์ ํŠธ๋ณ„๋กœ ์žˆ์Šต๋‹ˆ๋‹ค. (๋‚ด๊ฐ€ ์ดํ•ดํ•œ ๋Œ€๋กœ) ํ‘œ์‹œ๋Š” ํ™˜๊ฒฝ(virtualenv ๋˜๋Š” ์‹œ์Šคํ…œ ์„ค์น˜)๋ณ„๋กœ ์ด๋ฃจ์–ด์ ธ์•ผ ํ•˜๋ฉฐ ๋‹จ์ˆœํžˆ "ํŒจํ‚ค์ง€ X๋ฅผ ์ž๋™ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜์ง€ ์•Š์Œ"์ด๋ผ๊ณ  ๋งํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค(๊ทธ๋Ÿฌ๋‚˜ ์‚ฌ์šฉ์ž๊ฐ€ ์ด๋ฆ„์œผ๋กœ ํ•ด๋‹น ํŒจํ‚ค์ง€์˜ ์—…๊ทธ๋ ˆ์ด๋“œ๋ฅผ ๋ช…์‹œ์ ์œผ๋กœ ์š”์ฒญํ•˜๋Š” ๊ฒฝ์šฐ ์ˆ˜๋™ ์—…๊ทธ๋ ˆ์ด๋“œ ํ—ˆ์šฉ).

upgrade-all ๋ฐ "์—…๊ทธ๋ ˆ์ด๋“œ ๋™์ž‘"์— ๋Œ€ํ•œ ๋…ผ์˜๋ฅผ ํ’€๊ธฐ ์œ„ํ•ด upgrade-all ์˜ ์ฒซ ๋ฒˆ์งธ ๊ตฌํ˜„์— SAT ์†”๋ฒ„๊ฐ€ ํ•„์š”ํ•˜์ง€ ์•Š๋‹ค๋Š” ํ›„์ž์˜ ๋ชฉ๋ก์— ๋Œ€ํ•œ ํ† ๋ก ์—์„œ @rbtcollins ๋ฐ @ncoghlan์˜ ์˜๊ฒฌ์ด ์žˆ์Šต๋‹ˆ๋‹ค upgrade-all :

๋กœ๋ฒ„ํŠธ:

ํ‹ฐ์ผ“์— ๋Œ€ํ•œ ํ•ฉ์˜๊ฐ€ ์ฐจ๋‹จ๋˜์—ˆ๋‹ค๋Š” ์‚ฌ์‹ค์„ ์•Œ๊ณ  ์žˆ์ง€๋งŒ ๊ทธ๋ ‡์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
์‹ค์ œ๋กœ ๋™์˜ํ•ฉ๋‹ˆ๋‹ค.

๋„ค, ํ’€ ๋ฆฌ์กธ๋ฒ„ ์—†์ด๋Š” _right_ ํ•  ์ˆ˜ ์—†์ง€๋งŒ ํ•  ์ˆ˜๋Š” ์žˆ์Šต๋‹ˆ๋‹ค.
์—†๋Š” ๊ฒƒ๋ณด๋‹ค ํ›จ์”ฌ ๋” ๋‚˜์€ ๊ทผ์‚ฌ์น˜(๋‹จ์ง€ ์ข์€
๋ชจ๋“  ์š”๊ตฌ ์‚ฌํ•ญ์— ๋Œ€ํ•ด ์ง€์ •๋œ ์ง€์ •์ž). ๊ทธ๊ฒƒ์€ ์‹ค์ œ๋กœ
๋‹น์‹ ์ด ์ถ”์ •๋˜๋Š” ์ข‹์€ ๋ฒ„์ „ ์„ธํŠธ๋ฅผ ๋‹ค๋ฃฐ ๋•Œ ํ•ฉ๋ฆฌ์ ์ž…๋‹ˆ๋‹ค.
(์„ค์น˜๋Š” ๋‹ค๋ฃจ์ง€ ์•Š์Œ).

์ƒˆ๊ธด โ€‹โ€‹๊ธˆ:

"yum upgrade"๋Š” ์ ์ ˆํ•œ SAT ์†”๋ฒ„ ์—†์ด ์ˆ˜๋…„ ๋™์•ˆ ์ถฉ๋ถ„ํžˆ ์ž˜ ์ž‘๋™ํ–ˆ์œผ๋ฉฐ ์ผ๋ฐ˜์ ์ธ Linux ์„ค์น˜์˜ ํŒจํ‚ค์ง€ ์„ธํŠธ๋Š” ์ผ๋ฐ˜์ ์ธ ๊ฐ€์ƒ ํ™˜๊ฒฝ์˜ ํŒจํ‚ค์ง€ ์„ธํŠธ๋ณด๋‹ค ํ›จ์”ฌ ํฝ๋‹ˆ๋‹ค. ์žฅ์†Œ).

์ฆ‰, pip-compile์„ ๋‹ค์‹œ ์‹คํ–‰ํ•œ ๋‹ค์Œ pip-sync๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒƒ์€ ์ด๋ฏธ ๋ชจ๋“  ์—…๊ทธ๋ ˆ์ด๋“œ ์ž‘์—…(venv๋ฅผ ํŒŒ๊ดดํ•˜๊ณ  ๋‹ค์‹œ ๋งŒ๋“œ๋Š” ๊ฒƒ๊ณผ ๊ฐ™์ด)๊ณผ ๊ธฐ๋Šฅ์ ์œผ๋กœ ๋™์ผํ•˜๋ฏ€๋กœ ๋Œ€๋Ÿ‰ ์—…๊ทธ๋ ˆ์ด๋“œ๋ฅผ ์ง€์›ํ•˜๋Š” ๋ฌธ์ œ๋ฅผ ๊ฒฐํ•ฉํ•  ํ•„์š”๊ฐ€ ์—†๋‹ค๋Š” ๋ฐ ๋™์˜ํ•ฉ๋‹ˆ๋‹ค. ๋ช…๋ช…๋œ ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋Š” ๋™์ž‘์„ ๋ณ€๊ฒฝํ•˜๋Š” ๊ธฐ์ค€ pip.

IMO, pip upgrade-all ๋Š” ๋‹ค์–‘ํ•œ "์—…๊ทธ๋ ˆ์ด๋“œ ๊ธฐ๋Šฅ" ๋…ผ์˜ ์ค‘์—์„œ ๋‹จ์—ฐ์ฝ” ๊ฐ€์žฅ ์ค‘์š”ํ•œ ์ œ์•ˆ์ž…๋‹ˆ๋‹ค. "๋ชจ๋‘ ์—…๊ทธ๋ ˆ์ด๋“œ"ํ•˜๋ฉด ์‹œ์Šคํ…œ์„ ์ตœ์‹  ์ƒํƒœ๋กœ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ๋Š” ํ™•์‹คํ•œ ๋ฐฉ๋ฒ•์ด ์ œ๊ณต๋˜๋ฉฐ, ์—ด๋งํ•˜์ง€ ์•Š์€ ์—…๋ฐ์ดํŠธ์— ๋Œ€ํ•œ ์งˆ๋ฌธ์„ ์ด์ „ ์ˆ˜์ค€์—์„œ ํ›จ์”ฌ ๋œ ์‹œ๊ธ‰ํ•˜๊ฒŒ ๋งŒ๋“ค๊ณ  ํ˜„์žฌ ์กด์žฌํ•˜๋Š” ๊ฒฉ์ฐจ๋ฅผ ๋ฉ”์šธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ „์ฒด ํ•ด๊ฒฐ์‚ฌ ์ข‹์„ ํ…๋ฐํ•˜๋Š” ๋™์•ˆ, ๋‚˜๋Š”์˜ ์‹œ์ž‘ ์ง€์  ์™œ ์•„๋ฌด ์ด์œ ๋„ ๋ณผ pip upgrade-all ๊ทธ๊ฒƒ์ด ๋ฌด์—‡์„ํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์•ˆ pip install -U <list every package that's installed here> ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์ด ๋‚ด๊ฐ€ ์‚ฌ์šฉ์ž๋กœ์„œ ๊ธฐ๋Œ€ํ•˜๋Š” ๊ฒƒ์ด๋ฉฐ, ๋Œ€๋ถ€๋ถ„์˜ ๊ฒฝ์šฐ ํ•„์š”ํ•œ ๊ฒƒ์„ ์ •ํ™•ํžˆ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ƒ์ถฉ๋˜๋Š” ์š”๊ตฌ ์‚ฌํ•ญ์— ๋Œ€ํ•œ ๋ณต์žกํ•œ ์ฝ”๋„ˆ ์ผ€์ด์Šค๋Š” ์œ„์˜ ๋‚ด์šฉ์„ ์ฐธ์กฐํ•˜์—ฌ ์ฒซ ๋ฒˆ์งธ ์ธ์Šคํ„ด์Šค์—์„œ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์œผ๋กœ ์ถฉ๋ถ„ํ•˜์ง€ ์•Š๋‹ค๋ฉด install -U ๋™์ž‘์„ ์ˆ˜์ •ํ•˜์—ฌ ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ฑฐ๋‚˜ update-all ๋ช…๋ น์„ ํŠน์ˆ˜ ์ผ€์ด์Šค๋กœ ์ฒ˜๋ฆฌํ•˜๊ฑฐ๋‚˜ ํ•ด๋‹น ์ง€์ ์—์„œ ์ „์ฒด ์†”๋ฒ„๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์‚ดํŽด๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์•ž์œผ๋กœ 10๋…„ ์•ˆ์— ์ด๊ฒƒ์„ ๊ตฌํ˜„ํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?

FWIW, ์ด๋ฒˆ ์ฃผ๋ง์— ๋‹ค์‹œ ๋ฐฉ๋ฌธํ•  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค.


@magicgoose ๋Š” ๋‹ค์Œ๊ณผ
์•ž์œผ๋กœ 10๋…„ ์•ˆ์— ์ด๊ฒƒ์„ ๊ตฌํ˜„ํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?

@pfmoore ๋Š” ๋‚ด๊ฐ€ ํ•  ์ˆ˜์žˆ๋Š” ๊ฒƒ๋ณด๋‹ค ๋” ์ž˜ ๋งํ–ˆ์Šต๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” ์‚ฌ๋žŒ๋“ค์ด ์ด๊ฒƒ์„ ์›ํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋ถ€์กฑํ•œ ๊ฒƒ์€ ์ด๋ฏธ ์ œ๊ธฐ๋œ ๋‹ค์–‘ํ•œ ์šฐ๋ ค์™€ ๋ฌธ์ œ๋ฅผ ๋ชจ๋‘ ์ˆ˜์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ˆ˜์ • ํ”„๋กœ๊ทธ๋žจ์„ ๊ธฐ๊บผ์ด ๊ฐœ๋ฐœํ•˜๋ ค๋Š” ์‚ฌ๋žŒ์ด๋ฉฐ PR ๊ฒ€ํ†  ์ค‘์— ํ•„์—ฐ์ ์œผ๋กœ ๋‚˜ํƒ€๋‚  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ ๊ฐœ์ธ์ ์œผ๋กœ ์‚ฌ๋žŒ๋“ค์ด ์ตœ์†Œํ•œ ๊ตฌํ˜„์˜ ์‹œ์ž‘์ ์„ ์ œ๊ณตํ•˜๋Š” ์ž‘์—… ์ฝ”๋“œ๊ฐ€ ์—†๊ณ  ๊ตฌํ˜„๊นŒ์ง€ ์ด๋ฅผ ๊ธฐ๊บผ์ด ๋”ฐ๋ฅด์ง€ ์•Š๋Š” ํ•œ ์ด ๋ฌธ์ œ์— ๋Œ€ํ•œ ํ•‘์„ ์‚ผ๊ฐ€ํ•ด ์ฃผ์‹œ๋ฉด ๊ฐ์‚ฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

์ „์ ์œผ๋กœ ๊ฐœ์ธ์ ์ธ ์˜๊ฒฌ

๋‚˜๋Š” pip์˜ ๋ณธ์งˆ์— ๋Œ€ํ•ด ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค(debian, redhat ๋˜๋Š” ubuntu์™€ ๊ฐ™์€ ๊ธ€๋กœ๋ฒŒ QA๊ฐ€ ์—†๋Š” ์ €์žฅ์†Œ์—์„œ ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•จ)
๋ชจ๋“  ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๊ณ  ์—…๋ฐ์ดํŠธํ•˜๋Š” ๊ฒƒ์„ ์‹ค์ œ๋กœ ์™„์ „ํžˆ ์ž์ œํ•˜๋Š” ๊ฒƒ์ด ํ•„์š”ํ•˜๊ฑฐ๋‚˜ ์ˆ˜์šฉํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

pip๋Š” ์„ค์น˜ ๊ฐ€๋Šฅํ•œ Python ํŒจํ‚ค์ง€ ์„ธํŠธ์˜ ์•Œ๋ ค์ง„ ์ƒํƒœ๋ฅผ ๋ณด์žฅํ•˜๊ธฐ ๋•Œ๋ฌธ์—

@RonnyPfannschmidt IMO pip ์‚ฌ์šฉ์ž๊ฐ€ ์š”๊ตฌ ์‚ฌํ•ญ/์›Œํฌํ”Œ๋กœ์— ๋งž๋Š” ๊ฒฝ์šฐ ๋ชจ๋‘ update-all ๋ช…๋ น ์‚ฌ์šฉ์„ ๋ช…์‹œ์ ์œผ๋กœ ํ—ˆ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์ด ๋งค์šฐ ํ•ฉ๋ฆฌ์ ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ pip์˜ ๋ชจ๋“  ์‚ฌ์šฉ์ž๊ฐ€ ์ด ์‚ฌ๋žŒ๋“ค๊ณผ ๋™์ผํ•œ ์—„๊ฒฉํ•œ ์š”๊ตฌ ์‚ฌํ•ญ์„ ๊ฐ–๋Š” ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค. ์ข€ ๋” ํŽธ์•ˆํ•œ ์‚ฌ์šฉ์ž์—๊ฒŒ๋Š” update-all ๋ช…๋ น์ด ์œ ์šฉํ•˜๋ฉฐ ์ด ๋ช…๋ น์ด ์—†๊ธฐ ๋•Œ๋ฌธ์— ์‹œ์Šคํ…œ์„ "์ตœ์‹  ์ƒํƒœ๋กœ" ์œ ์ง€ํ•˜๊ธฐ๊ฐ€ ํ›จ์”ฌ ๋” ์–ด๋ ต์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ pip๊ฐ€ ๊ทธ๋Ÿฌํ•œ ๋ช…๋ น์„ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์ด ํ•ฉ๋ฆฌ์ ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๊ฐ€ ํ•ด๋‹น ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ๋กœ ์„ ํƒํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ํŠน์ • ์ •์ฑ…์„ ์‹œํ–‰ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์‚ฌ๋žŒ๋“ค์—๊ฒŒ ํ•„์š”ํ•œ ๋„๊ตฌ๋ฅผ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์ด ์šฐ๋ฆฌ์˜ ์ž„๋ฌด์ž…๋‹ˆ๋‹ค.

@pfmoore ํ™˜๊ฒฝ์˜ ๋ชจ๋“  ํŒจํ‚ค์ง€๋ฅผ ์—…๋ฐ์ดํŠธํ•˜๋Š”

ํŽธ์•ˆํ•œ ์—…๋ฐ์ดํŠธ๊ฐ€ ํ•„์š”ํ•œ ์‚ฌ์šฉ์ž๋Š” ๋ชจ๋‘ ์ผ๋ฐ˜ ์ตœ์ข… ์‚ฌ์šฉ์ž๋ฅผ ์˜๋ฏธํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋“ค๋ฆฝ๋‹ˆ๋‹ค(์˜ˆ๋ฅผ ๋“ค์–ด ์ผ๋ฐ˜ Linux ๋ฐฐํฌํŒ์„ ์‚ฌ์šฉํ•ด์•ผ ํ•จ).

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

@RonnyPfannschmidt Windows ์‚ฌ์šฉ์ž๋Š” ์—ฌ์ „ํžˆ Linux ์‚ฌ์šฉ์ž ์ˆ˜๋ฅผ 18:1๋กœ ๋Šฅ๊ฐ€

์šฐ๋ฆฌ๋Š” ์‚ฌ๋žŒ๋“ค์ด ์ด๊ฒƒ์„ ์›ํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋ถ€์กฑํ•œ ๊ฒƒ์€ ์ด๋ฏธ ์ œ๊ธฐ๋œ ๋‹ค์–‘ํ•œ ์šฐ๋ ค์™€ ๋ฌธ์ œ๋ฅผ ๋ชจ๋‘ ์ˆ˜์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ˆ˜์ • ํ”„๋กœ๊ทธ๋žจ์„ ๊ธฐ๊บผ์ด ๊ฐœ๋ฐœํ•˜๋ ค๋Š” ์‚ฌ๋žŒ์ด๋ฉฐ PR ๊ฒ€ํ†  ์ค‘์— ํ•„์—ฐ์ ์œผ๋กœ ๋‚˜ํƒ€๋‚  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

@pfmoore ๊ทธ๋Ÿฌํ•œ ๋Œ“๊ธ€์ด ๊ธฐ์—ฌ์ž์˜ ๋…ธ๋ ฅ์„ ํ„ํ•˜ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์‚ฌ์‹ค์„ ์•Œ๊ณ  ๊ณ„์…จ์Šต๋‹ˆ๊นŒ? ๊ทธ๊ฒƒ์ด ๋‚ด๊ฐ€ ๋ณด๊ธฐ์— ๊ทธ๋ ‡์Šต๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ์˜ ์ „์ฒด ๊ธฐ๋ก์„ ๋”ฐ๋ž๋Š”์ง€ ํ™•์‹คํ•˜์ง€ ์•Š์ง€๋งŒ, ์ด ํŠน๋ณ„ํ•œ ๊ฒฝ์šฐ์—๋Š” ๋งค์šฐ ์ž˜๋ชป๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๋Š” ๊ธฐ์—ฌ์ž๋ณด๋‹ค pip ๊ฐœ๋ฐœ ํŒ€์— ํ›จ์”ฌ ๋” ๋งŽ์Šต๋‹ˆ๋‹ค.

๊ทธ ์ผ๋ถ€์— ๋Œ€ํ•œ ๋Œ€๋žต์ ์ธ ์š”์•ฝ(PR gh-3194):

  1. upgrade ๋ช…๋ น์„ ํ™˜์˜ํ•œ๋‹ค๋Š” ๋ฌธ์„œํ™”๋œ ๊ฒฐ์ •์ด ์žˆ์Šต๋‹ˆ๋‹ค(pip ๋ฉ”์ผ๋ง ๋ฆฌ์ŠคํŠธ์™€ ๋ฌธ์„œ ๋ฐ GitHub์— ์žˆ์Œ).
  2. ๊ทธ๋Ÿฐ ๋‹ค์Œ ์ €๋ช…ํ•œ ๊ฐœ๋ฐœ์ž(์ด ๊ฒฝ์šฐ @njsmith )๊ฐ€ ์ด ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ์ด ๋งค์šฐ ์œ ์šฉํ•  ๊ฒƒ์ด๋ผ๊ณ  ์ „ํ™”๋ฅผ ๊ฒ๋‹ˆ๋‹ค.
  3. ์ƒˆ๋กœ์šด ๊ธฐ์—ฌ์ž๊ฐ€ ๋‚˜ํƒ€๋‚˜ ๋ชจ๋“  ๊ฒƒ์„ ๊ตฌํ˜„ํ•˜๊ณ  ๋ชจ๋“  ๋ฆฌ๋ทฐ ๋Œ“๊ธ€์„ ๋น ๋ฅด๊ฒŒ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค. PR์„ ๋ณ‘ํ•ฉํ•  ์ค€๋น„๊ฐ€ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  4. ํ•ต์‹ฌ ๊ธฐ๊ณ ์ž๋Š” upgrade ์›ํ•˜๋Š” ๊ฒƒ์— ๋Œ€ํ•ด ๋งˆ์Œ์„ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.
  5. ๊ฒฐ๋ก  ์—†์ด ๋งค์šฐ ๊ธด ํ† ๋ก ์ด ์ด์–ด์ง‘๋‹ˆ๋‹ค.
  6. ๊ธฐ๊ณ ์ž๋Š” ํฌ๊ธฐํ•˜๊ณ  ์‚ฌ๋ผ์ง‘๋‹ˆ๋‹ค(๋Œ€๋ถ€๋ถ„์˜ ์‚ฌ๋žŒ๋“ค์€ ๊ทธ๋Ÿฐ ์ผ๋“ค์ด ๋‹ต๋‹ตํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค).

๊ทธ๊ฒƒ๋„ ๋‚จ๋‹ค๋ฅธ ๋ˆ๊ธฐ๋ฅผ ๋ณด์—ฌ์ฃผ๊ณ  ์žˆ๋Š” ๋“ฑ์žฅ ํ•˜๊ธฐ ์ „์˜ ์ผ์ด๋‹ค.

์ž˜ ์ž‘๋™ํ•˜๋Š” ํ”„๋กœ์ ํŠธ์—์„œ ์ด ๋ฌธ์ œ์— ์ •๋ง๋กœ ๊ด€์‹ฌ์ด ์žˆ๋Š” ํ•ต์‹ฌ ๊ฐœ๋ฐœ์ž๋Š” ๋น ๋ฅธ ํ–‰์•„์›ƒ์„ ์กฐ์งํ•˜๊ณ  ์ผ์ข…์˜ ๊ฒฐ์ •์„ ๋‚ด๋ฆฝ๋‹ˆ๋‹ค. ๋˜๋Š” ๊ทธ๋Ÿฌํ•œ ๊ฒฐ๋ก ์„ ์–ป์„ ์ˆ˜ ์žˆ์„ ๋งŒํผ ์ถฉ๋ถ„ํžˆ ์ž‘์—…ํ•˜๋„๋ก ํ•œ๋‘ ์‚ฌ๋žŒ์—๊ฒŒ ์œ„์ž„ํ•˜์‹ญ์‹œ์˜ค. ์•„๋‹ˆ๋ฉด ์ตœ์†Œํ•œ ์‚ฌ๊ณผํ•˜๊ณ  PR ์ œ์ถœ์ž์—๊ฒŒ "์ง€ํ‚ค์ง€ ์•Š์€" ๊ฒƒ์— ๋Œ€ํ•ด ๋น„๋‚œํ•˜๋Š” ๋Œ€์‹  ๊ฐ์‚ฌํ•˜๋‹ค๊ณ  ๋งํ•˜์‹ญ์‹œ์˜ค.

์ข‹์€ ์˜๋„๊ฐ€ ์žˆ๋Š” ๊ฑด ์•Œ์ง€๋งŒ ์ด๋Ÿฐ ๋Œ“๊ธ€์€ ์ข€ ๋” ์กฐ์‹ฌํ•ด์ฃผ์„ธ์š”.

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

์ด ํŠน์ • ๋ณ€๊ฒฝ์€ pip์˜ ๊ธฐ๋ณธ ์‚ฌ์šฉ์˜ ๊ธฐ๋ณธ ๋™์ž‘์„ ๋ณ€๊ฒฝํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํŠนํžˆ ๋ถˆ์พŒํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ์–ด๋ ต๊ณ  ๋‘๋ ค์šด ์ผ์ด๋ฉฐ ์šฐ๋ฆฌ๊ฐ€ ์„œ๋‘๋ฅด๊ณ  ํ•œ ๋ฐฉํ–ฅ ๋˜๋Š” ๋‹ค๋ฅธ ๋ฐฉํ–ฅ์œผ๋กœ ์ปค๋ฐ‹ํ•˜๊ธฐ ์ „์— ์ „์ฒด ํ•ด์‹œ๋ฅผ ์ฒ˜๋ฆฌํ•˜์ง€ ์•Š์œผ๋ฉด ์‚ฌ์šฉ์ž์—๊ฒŒ ํ•ด๊ฐ€ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด ๋ช…๋ น์€ ํ•œ ๋‹ฌ์— 10~100๋งŒ ๋ฒˆ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์ž‘๊ณ  ์‰ฌ์šด ๋ณ€ํ™”๊ฐ€ ์•„๋‹ˆ๋ฉฐ ์–ด๋–ค ๋ณ€ํ™”๋ฅผ ๋งŒ๋“ค ๋•Œ ์˜ค๋Š” ์„ฑ๋‚œ ๋ฐ˜๋ฐœ์„ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•˜๋Š” ์‚ฌ๋žŒ๋“ค์ด ์ด ๋ฌธ์ œ์— ๋Œ€ํ•ด ํ•‘๊ณ„๋ฅผ ๋Œ€๋Š” ๊ฒƒ๋„ ์•„๋‹™๋‹ˆ๋‹ค.

์˜ˆ์ „์— PR์„ ํ•˜์‹  ๋ถ„๋“ค์€ ์‹œ๊ฐ„์„ ์ชผ๊ฐœ์–ด ๊ฐ์‚ฌํ•˜์ง€๋งŒ ๋๊นŒ์ง€ ํ•˜์ง€ ์•Š์€ ๊ฒƒ์ด ์‚ฌ์‹ค์ž…๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—์„œ ํ•ต์‹ฌ ๊ฐœ๋ฐœ์ž๋Š” _์‹œ๊ฐ„์ด ์ œํ•œ๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์šฐ๋ฆฌ๋Š” ์ž์› ๋ด‰์‚ฌ์ž์ด๊ฑฐ๋‚˜ ๋งŽ์€ ํ”„๋กœ์ ํŠธ์— ๋ถ„์‚ฐ๋˜์–ด ์ฐธ์—ฌํ•˜๊ฑฐ๋‚˜ ์ฐธ์—ฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ชจ๋‘ ์ฃผ์˜๋ฅผ ์š”ํ•˜๋Š” ๋‹ค์–‘ํ•œ ๋ฌธ์ œ๊ฐ€ ์žˆ์œผ๋ฉฐ ์ด๊ฒƒ์€ ๊ทธ ์ค‘ ํ•˜๋‚˜์ผ ๋ฟ์ž…๋‹ˆ๋‹ค. Paul์€ ๋‹จ์ˆœํžˆ ์ด ๋ฌธ์ œ์— ๋Œ€ํ•ด ping์„ ๋ณด๋‚ด๋Š” ๊ฒƒ์€ ๋„์›€์ด ๋˜์ง€ ์•Š์œผ๋ฉฐ(๊ทธ๋ ‡์ง€ ์•Š์Œ) ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ์›ํ•˜๋ฉด ๋ˆ„๊ตฐ๊ฐ€(ํ•ต์‹ฌ ๊ฐœ๋ฐœ์ž ์ค‘ ํ•œ ๋ช… ํฌํ•จ)๊ฐ€ ์ƒ๋‹นํ•œ ๋…ธ๋ ฅ์„ ๊ธฐ์šธ์ด๊ธฐ๋กœ ๊ฒฐ์ •ํ•  ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ ค์•ผ ํ•œ๋‹ค๊ณ  ๋งํ–ˆ์Šต๋‹ˆ๋‹ค. ์ˆ˜๋ฐฑ๋งŒ์˜ ๊ธฐ๋ณธ ๋™์ž‘์„ ๋ณ€๊ฒฝํ•˜๊ฑฐ๋‚˜ ์ง์ ‘ ์ˆ˜ํ–‰ํ•˜์‹ญ์‹œ์˜ค.

์šฐ๋ฆฌ๋Š” ์‚ฌ๋žŒ๋“ค์ด ์ด๊ฒƒ์„ ์›ํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋ถ€์กฑํ•œ ๊ฒƒ์€ ์ด๋ฏธ ์ œ๊ธฐ๋œ ๋‹ค์–‘ํ•œ ์šฐ๋ ค์™€ ๋ฌธ์ œ๋ฅผ ๋ชจ๋‘ ์ˆ˜์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ˆ˜์ • ํ”„๋กœ๊ทธ๋žจ์„ ๊ธฐ๊บผ์ด ๊ฐœ๋ฐœํ•˜๋ ค๋Š” ์‚ฌ๋žŒ์ด๋ฉฐ PR ๊ฒ€ํ†  ์ค‘์— ํ•„์—ฐ์ ์œผ๋กœ ๋‚˜ํƒ€๋‚  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

@pfmoore ๊ทธ๋Ÿฌํ•œ ๋Œ“๊ธ€์ด ๊ธฐ์—ฌ์ž์˜ ๋…ธ๋ ฅ์„ ํ„ํ•˜ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์‚ฌ์‹ค์„ ์•Œ๊ณ  ๊ณ„์…จ์Šต๋‹ˆ๊นŒ? ๊ทธ๊ฒƒ์ด ๋‚ด๊ฐ€ ๋ณด๊ธฐ์— ๊ทธ๋ ‡์Šต๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ์˜ ์ „์ฒด ๊ธฐ๋ก์„ ๋”ฐ๋ž๋Š”์ง€ ํ™•์‹คํ•˜์ง€ ์•Š์ง€๋งŒ, ์ด ํŠน๋ณ„ํ•œ ๊ฒฝ์šฐ์—๋Š” ๋งค์šฐ ์ž˜๋ชป๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

@rgommers ์ง„์‹ฌ์ธ๊ฐ€์š”? ๊ทธ ๋Œ“๊ธ€์€ ๋ช‡ ๋‹ฌ ์ „์˜ ๊ฒƒ์ด๋ฉฐ ์—ฌ๊ธฐ์—์„œ ๋ฌธ๋งฅ์— ๋งž์ง€ ์•Š๊ฒŒ ์ธ์šฉ๋˜์—ˆ์Šต๋‹ˆ๋‹ค(์†”์งํžˆ ์ €๋Š” @pradyunsg ๊ฐ€ ๋‹ต์žฅ์„ ํ•˜๊ณ  ์žˆ๋˜ ๋„์›€์ด ๋˜์ง€ ์•Š๊ณ  ๋ƒ‰์†Œ์ ์ธ ๋Œ“๊ธ€์— ๋Œ€ํ•œ ์‘๋‹ต์œผ๋กœ ๊ทธ๊ฒƒ์„ ์ธ์šฉํ•˜๋Š” ๋ฐ ๋ฌธ์ œ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค). ๋‚˜๋Š” ๋‹น์‹ ์ด ์ „์ฒด ์—ญ์‚ฌ๋ฅผ ๊ฒ€ํ† ํ–ˆ๋‹ค๋ฉด ๋งฅ๋ฝ์—์„œ ๋‚ด ์˜๊ฒฌ์„ ๋ณด์•˜์„ ๊ฒƒ์ด๋ผ๊ณ  ์ œ์•ˆํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

๋‚ด๊ฐ€ ๊ทธ "์˜คํ”„ ๋ฒ ์ด์Šค"์˜€๋‹ค๋ฉด ๋ฌธ๋งฅ์„ ๋ฒ—์–ด๋‚˜ ์ง€๊ธˆ ๋”ฐ์ง€๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ๋‚ด๊ฐ€ ๋งํ•  ๋‹น์‹œ 5์›”์— ๊ทธ๋ ‡๊ฒŒ ๋งํ•  ์ˆ˜ ์žˆ์—ˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋‚ด๊ฐ€ ๋ˆ„๊ตฐ๊ฐ€๋ฅผ ๊ธฐ๋ถ„ ๋‚˜์˜๊ฒŒํ–ˆ๋‹ค๋ฉด ์‚ฌ๊ณผํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ์ œ ์˜๋„๊ฐ€ ์•„๋‹ˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์†”์งํžˆ, ๋‚˜๋Š” ์ด ๋ฌธ์ œ๊ฐ€ ๋ชจ๋“  ์‚ฌ๋žŒ์ด ๋ฐ›์•„๋“ค์ผ ์ˆ˜ ์žˆ๋Š” ๋””์ž์ธ์— ๋„๋‹ฌํ•˜๊ธฐ๊ฐ€ ๋„ˆ๋ฌด ์–ด๋ ต๋‹ค๋Š” ๊ฒƒ์„ ์ฆ๋ช…ํ•˜๊ณ  ์žˆ๋‹ค๋Š” ์‚ฌ์‹ค์— ๋‹ค๋ฅธ ๋ˆ„๊ตฌ๋ณด๋‹ค ์ขŒ์ ˆํ–ˆ์Šต๋‹ˆ๋‹ค. ์ œ ์˜๊ฒฌ์—์„œ ์ €๋Š” ๊ท ํ˜•์„ ์œ ์ง€ํ•˜๋ ค๊ณ  ๋…ธ๋ ฅํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ํ•œํŽธ์œผ๋กœ๋Š” ์‚ฌ๋žŒ๋“ค์ด ํ•˜๋Š” ๊ณตํ—Œ์— ์ง„์‹ฌ์œผ๋กœ ๊ฐ์‚ฌํ•˜์ง€๋งŒ ๋‹ค๋ฅธ ํ•œํŽธ์œผ๋กœ๋Š” ์ด์™€ ๊ฐ™์€ ๋ฌธ์ œ์— ๋Œ€ํ•ด ์ฝ”๋”ฉ์€ ์†”์งํžˆ ๊ฐ€์žฅ ํ•„์š”ํ•œ ์ž‘์—…์ž…๋‹ˆ๋‹ค. ๋งค์šฐ ์ž์ฃผ ๊ธฐ๊ณ ์ž๋Š” ์ด ์‚ฌ์‹ค์„ ์ธ์ •ํ•˜์ง€ ์•Š์œผ๋ฉฐ, ์ด๊ฒƒ์ด ๋ถˆ์™„์ „ํ•œ PR์„ ๋ฐ›๋Š” ๊ณณ์ž…๋‹ˆ๋‹ค. ์‚ฌ๋žŒ๋“ค์ด ์‚ฌ๋žŒ๋“ค์—๊ฒŒ ์ž์‹ ์˜ ๋””์ž์ธ์ด ๊ดœ์ฐฎ๋‹ค๋Š” ๊ฒƒ์„ ์„ค๋“ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ์ž‘์—… ๋ฐ/๋˜๋Š” ๊ฐ€๋Šฅํ•œ ๋ฐฉ์‹์œผ๋กœ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์žฌ์ž‘์—…ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ์ž‘์—…์— ์ขŒ์ ˆํ•˜๋Š” ๊ฒฝ์šฐ์ž…๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์˜ (์ข…์ข… ์ƒ์ถฉ๋˜๊ณ  ์ผ๊ด€์„ฑ์ด ์—†๋Š”!) ๊ฒฌํ•ด๋ฅผ ๊ณ ๋ คํ•˜๋Š” ๊ฒƒ์„ ์ •๋ง ์ข‹์•„ํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” ๊ทธ๋“ค์ด ๋น„ํ˜„์‹ค์ ์ธ ๊ธฐ๋Œ€๋ฅผ ๊ฐ€์ง€๊ณ  ์™€์„œ ๊ฒฐ๊ณผ์ ์œผ๋กœ ๋‚˜์œ ๊ฒฝํ—˜์„ ํ•˜๊ธฐ๋ณด๋‹ค๋Š” ๊ด€๋ จ๋œ ๊ฒƒ์„ ์ดํ•ดํ•˜๊ณ  ํ”„๋กœ์„ธ์Šค์— ์ฐธ์—ฌํ–ˆ์œผ๋ฉด ํ•ฉ๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ์— ๋Œ€ํ•œ ํ† ๋ก ์— ์ฐธ์—ฌํ•œ ๋ชจ๋“  ์‚ฌ๋žŒ์€ ๋‹ค์–‘ํ•œ ์ ‘๊ทผ ๋ฐฉ์‹์˜ ์žฅ๋‹จ์ ์— ๋Œ€ํ•ด _๋งŽ์€_ ์‹œ๊ฐ„์„ ํˆฌ์žํ–ˆ์Šต๋‹ˆ๋‹ค. ์‹œ๊ฐ„์ด ์˜ค๋ž˜ ๊ฑธ๋ฆฐ๋‹ค๊ณ  ํ–‰๋ณตํ•œ ์‚ฌ๋žŒ์€ ์—†์„ ๊ฒƒ ๊ฐ™์•„์š”. ๊ฐœ์ธ์ ์œผ๋กœ upgrade-all ๋ช…๋ น์˜ ๋ถ€์กฑ(๋ณ€๊ฒฝ ์‚ฌํ•ญ์˜ ์ผ๋ถ€์ผ ๋ฟ์ด๋ฉฐ ๊ฐ€์žฅ ๋จผ์ € ๊ตฌํ˜„๋˜๋Š” ๊ฒƒ์€ ์•„๋‹˜)์€ ์ •๊ธฐ์ ์œผ๋กœ ์ €๋ฅผ ๊ดด๋กญํž™๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ๋•Œ๋•Œ๋กœ(์†”์งํžˆ "๊ฐ€๋”" ๊ทธ ์ด์ƒ์ž…๋‹ˆ๋‹ค) ์‚ฌ๋žŒ๋“ค(๋Œ€๊ฐœ ํ† ๋ก ์ด๋‚˜ ์ฝ”๋“œ์— ์‹ค์ œ๋กœ ๊ธฐ์—ฌํ•˜์ง€ ์•Š์€ ์‚ฌ๋žŒ๋“ค)์ด "์ด๊ฒƒ์€ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ์™œ ์•„์ง ๊ตฌํ˜„ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๊นŒ?" ์†”์งํžˆ ๋งํ•ด์„œ ์นจ์ฐฉํ•จ์„ ์œ ์ง€ํ•˜๊ณ  ๊ทธ๋Ÿฐ ์‚ฌ๋žŒ๋“ค์„ _ํ•˜์ง€_ ์•Š๋Š” ๊ฒƒ์€ ์–ด๋ ต์Šต๋‹ˆ๋‹ค.

์ž˜ ์ž‘๋™ํ•˜๋Š” ํ”„๋กœ์ ํŠธ์—์„œ ๋ฌธ์ œ์— ์ •๋ง๋กœ ๊ด€์‹ฌ์„ ๊ฐ–๋Š” ํ•ต์‹ฌ ๊ฐœ๋ฐœ์ž๋Š”

์ด ์˜๊ฒฌ์ด pip ๊ฐœ๋ฐœ์ž๊ฐ€ ์ด ๋ฌธ์ œ๋ฅผ ์ˆ˜์ •ํ•˜๋Š” ๋ฐ ๊ด€์‹ฌ์ด ์—†๋‹ค๋Š”(๊ทธ๋ฆฌ๊ณ  pip์— ๋Œ€ํ•œ ์•”์‹œ๋กœ) ํ•ด์„๋  ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ๊ณ„์‹ญ๋‹ˆ๊นŒ? ์šฐ๋ฆฌ ๋ชจ๋‘๋Š” ์‚ฌ๋žŒ๋“ค์˜ ๊ธฐ๋ถ„์„ ์ƒํ•˜๊ฒŒ ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ์‹์œผ๋กœ ๋ง์„ ํ•  ์œ„ํ—˜์ด ์žˆ์Šต๋‹ˆ๋‹ค. pip ๊ฐœ๋ฐœ์ž๋ฅผ ๋น„ํŒํ•˜๋ ค๋Š” ์˜๋„๊ฐ€ ์•„๋‹ˆ์—ˆ์„ ๊ฑฐ๋ผ ํ™•์‹ ํ•ฉ๋‹ˆ๋‹ค. ์ œ๊ฐ€ ๋ˆ„๊ตฌ์—๊ฒŒ๋„ ๋ถˆ์พŒ๊ฐ์„ ์ฃผ๋ ค๊ณ  ํ•œ ๊ฒƒ์ด ์•„๋‹ˆ๋ผ๊ณ  ๊ฐ€์ •ํ•ด ์ฃผ์‹ญ์‹œ์˜ค.

๋น ๋ฅธ ํ–‰์•„์›ƒ์„ ์กฐ์งํ•˜๊ณ  ์ผ์ข…์˜ ๊ฒฐ์ •์„ ๋‚ด๋ฆด ๊ฒƒ์ž…๋‹ˆ๋‹ค.

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

๋˜๋Š” ๊ทธ๋Ÿฌํ•œ ๊ฒฐ๋ก ์„ ์–ป์„ ์ˆ˜ ์žˆ์„ ๋งŒํผ ์ถฉ๋ถ„ํžˆ ์ž‘์—…ํ•˜๋„๋ก ํ•œ๋‘ ์‚ฌ๋žŒ์—๊ฒŒ ์œ„์ž„ํ•˜์‹ญ์‹œ์˜ค.

๊ทธ๋ž˜์„œ ์ด ํฐ ๊ฒฐ์ •์„ ๋‘ ์‚ฌ๋žŒ์ด ์ผ๋ฐฉ์ ์œผ๋กœ ํ•ด์•ผ ํ•œ๋‹ค๋Š” ๋ง์”€์ด์‹ญ๋‹ˆ๊นŒ? ์•„๋งˆ๋„ ์ด๊ฒƒ์ด ์šฐ๋ฆฌ๊ฐ€ ํ•ด๊ฒฐ์ฑ…์„ ์–ป์„ ์ˆ˜ ์žˆ๋Š” ์œ ์ผํ•œ ๋ฐฉ๋ฒ•์ผ ์ˆ˜ ์žˆ์ง€๋งŒ ์‹ค์ œ๋กœ pip์—์„œ ๊ฒฐ์ •์ด ๋‚ด๋ ค์ง€๋Š” ๋ฐฉ์‹์€ ์•„๋‹™๋‹ˆ๋‹ค(Python๊ณผ ๋‹ฌ๋ฆฌ ์šฐ๋ฆฌ๋Š” ์ง‘ํ–‰ ์˜์‚ฌ ๊ฒฐ์ • ๊ถŒํ•œ์ด ์žˆ๋Š” BDFL์ด ์—†์Šต๋‹ˆ๋‹ค). ๋‹น์‹ ์ด ์›ํ•œ๋‹ค๋ฉด ๊ทธ๊ฒƒ์ด ์šฐ๋ฆฌ๋ฅผ "์ž˜ ์ž‘๋™ํ•˜๋Š” ํ”„๋กœ์ ํŠธ"๊ฐ€ ์•„๋‹ˆ๋ผ๊ณ  ์ฃผ์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ์ œ ๊ฒฌํ•ด๊ฐ€ ์•„๋‹ˆ์ง€๋งŒ ๋‹น์‹ ์ด ์›ํ•œ๋‹ค๋ฉด ๊ทธ๊ฒƒ์— ๋Œ€ํ•ด ๋™์˜ํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์•„๋‹ˆ๋ฉด ์ตœ์†Œํ•œ ์‚ฌ๊ณผํ•˜๊ณ  PR ์ œ์ถœ์ž์—๊ฒŒ ๊ฐ์‚ฌ์˜ ๋ง์„ ์ „ํ•˜์‹ญ์‹œ์˜ค.

์šฐ๋ฆฌ๊ฐ€ ๋ฌด์—‡์— ๋Œ€ํ•ด ์‚ฌ๊ณผํ•ด์•ผ ํ•˜๋Š”์ง€ ์ž˜ ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ ๋„์›€์ด ๋œ๋‹ค๋ฉด ๊ธฐ๊บผ์ด ์‚ฌ๊ณผํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์•„๋ฌด๋„ ๊ทธ์—๊ฒŒ ์ด ์ œ์•ˆ์„ ์™„๋ฃŒํ•˜๋Š” ๊ฒƒ์ด ์–ผ๋งˆ๋‚˜ ์–ด๋ ค์šด ์ผ์ธ์ง€ ๋ช…ํ™•ํ•˜๊ฒŒ ์ดํ•ดํ•˜์ง€ ๋ชปํ–ˆ๋‹ค๋Š” ์‚ฌ์‹ค์— ๋Œ€ํ•ด ๋˜๋Š” ๊ทธ๊ฐ€ ํ† ๋ก ์„ ๊ด€๋ฆฌํ•˜๊ณ  ์ฐธ๊ฐ€์ž๋“ค์„ ํ•ฉ์˜์— ์ด๋ฅด๋„๋ก ๋„์™”์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๊ณต์ •ํ•˜๊ฒŒ ๋งํ•ด์„œ, ๊ด€๋ จ๋œ _๋‹ค๋ฅธ__ ๋ˆ„๊ตฌ๋„ ๋‹น์‹œ์— ์ด๊ฒƒ์ด ์‚ฌ์‹ค์ผ์ง€ ๋ชฐ๋ž๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์ €๋Š” ์—ฌ๊ธฐ์„œ ์ด์•ผ๊ธฐํ•˜๋Š” ๊ฒƒ์ด ์ฃผ๋กœ ๋’ค๋Šฆ์€ ์ƒ๊ฐ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

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

"์ง€ํ‚ค์ง€ ์•Š์€" ๊ฒƒ์— ๋Œ€ํ•ด ๊ทธ๋ฅผ ๋น„๋‚œํ•˜๋Š” ๋Œ€์‹ .

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

[์œ„์˜ ๋ง์”€์— ์ œ๊ฐ€ ๊ฑฐ์น ๊ฒŒ ๋ณด์ด์…จ๋‹ค๋ฉด ์‚ฌ๊ณผ๋“œ๋ฆฝ๋‹ˆ๋‹ค(๋‹ค์‹œ ํ•œ๋ฒˆ!). ๊ทธ๋Ÿฌ๋‚˜ ๋‚ด ์—ฌ๊ฐ€ ์‹œ๊ฐ„์˜ ๋งŽ์€ ๋ถ€๋ถ„์„ ์ฝ๊ณ  ๋‚ด๊ฐ€ (๋˜๋Š” ๋‚ด๊ฐ€ ๊ด€๋ จ๋œ ํ”„๋กœ์ ํŠธ) ์–ด๋–ป๊ฒŒ ๋“  ์ถฉ๋ถ„ํžˆ ํ•˜์ง€ ์•Š์€ ๋ถˆ๋งŒ์„ ์ฒ˜๋ฆฌ ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ทธ๊ฒƒ์€ ์•…์ˆœํ™˜์ž…๋‹ˆ๋‹ค. ์ž”์†Œ๋ฆฌ ๋•Œ๋ฌธ์— ์—ฌ๊ฐ€ ์‹œ๊ฐ„์— ์˜คํ”ˆ ์†Œ์Šค ์ž‘์—…์— ๋Œ€ํ•œ ์˜์š•์„ ์žƒ์Šต๋‹ˆ๋‹ค. ๋ฌผ๋ก  ์ด๋Š” ๋” ์ ์€ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ์˜๋ฅผ ์ง€ํ‚ค๋ ค๊ณ  ํ•˜๋‹ค๊ฐ€ ๊ฐ€๋” ์‰ฝ์ง€๊ฐ€ ์•Š์•„์š”]

PR์ด ์–ด๋–ป๊ฒŒ ๊ด€๋ฆฌ๋˜๊ณ  ์žˆ๋Š”์ง€์— ๋Œ€ํ•œ ์ด ๋ฉ”ํƒ€ ํ† ๋ก ์— ๋Œ€ํ•ด ๋” ์ด์ƒ ์–ธ๊ธ‰ํ•  ๊ณ„ํš์ด ์—†์Šต๋‹ˆ๋‹ค. ์ €๋Š” ์˜ค๋Š˜ ์ €๋…์— ์ด ๋‹ต๋ณ€์„ ์ž‘์„ฑํ•˜๋Š” ๋ฐ ํ•œ ์‹œ๊ฐ„์„ ๋ณด๋ƒˆ์Šต๋‹ˆ๋‹ค. ๋ˆ„๊ตฐ๊ฐ€์˜ ๊ธฐ๋ถ„์„ ์ƒํ•˜๊ฒŒ ํ•  ์ˆ˜ ์žˆ๋Š” ๋ง์„ ํ•˜์ง€ ์•Š์œผ๋ ค๊ณ  ํ–ˆ์Šต๋‹ˆ๋‹ค. (๊ทธ๋ฆฌ๊ณ  ์ €๋Š” ์‹คํŒจํ–ˆ์Šต๋‹ˆ๋‹ค:-(). ๊ทธ๋ฆฌ๊ณ  ์ €๋Š” ๊ทธ ์‹œ๊ฐ„์„ ๊ฐ€์กฑ๊ณผ ํ•จ๊ป˜, ํŽธ์•ˆํ•˜๊ฒŒ, ๋” ์ƒ์‚ฐ์ ์ธ ์ผ์„ ํ•˜๊ฑฐ๋‚˜.

๊ทธ๋ž˜์„œ @pradyunsg ๊ฐ€ ์šฐ๋ฆฌ ๋ชจ๋‘๊ฐ€ ๋งŒ์กฑํ•  ์ˆ˜ ์žˆ๋Š” PR์„ ์ž‘์„ฑํ•˜๊ณ  ๋ฌด์ตํ•œ ๋ฉ”ํƒ€ ํ† ๋ก ์„ ์ค‘๋‹จํ•˜๋„๋ก ๋‹ค์‹œ ๋„์™€

๊ทธ๋ž˜์„œ @pradyunsg ๊ฐ€ ์šฐ๋ฆฌ ๋ชจ๋‘๊ฐ€ ๋งŒ์กฑํ•  ์ˆ˜ ์žˆ๋Š” PR์„ ์ž‘์„ฑํ•˜๊ณ  ๋ฌด์ตํ•œ ๋ฉ”ํƒ€ ํ† ๋ก ์„ ์ค‘๋‹จํ•˜๋„๋ก ๋‹ค์‹œ ๋„์™€

์˜ˆ, ๋ถ€ํƒํ•ฉ๋‹ˆ๋‹ค. :์ˆœ๊ฒฐํ•œ:

์•„, ์žŠ์–ด๋ฒ„๋ ธ์–ด์š”.

@rgommers ๋Š” ๋‹ค์Œ๊ณผ
๊ทธ๊ฒƒ๋„ ๋‚จ๋‹ค๋ฅธ ๋ˆ๊ธฐ๋ฅผ ๋ณด์—ฌ์ฃผ๊ณ  ์žˆ๋Š” ๋“ฑ์žฅ ํ•˜๊ธฐ ์ „์˜ ์ผ์ด๋‹ค.

๋ณด์™„์ฑ…์œผ๋กœ ์‚ผ๊ฒ ์Šต๋‹ˆ๋‹ค... ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

@pfmoore ๋Š” ๋‹ค์Œ๊ณผ
ํŠนํžˆ ๋ชจ๋“  ๋์—†๋Š” ํ† ๋ก ๊ณผ ๋ฐฉํ–ฅ ๋ณ€๊ฒฝ์˜ ํ˜„์žฌ ํฌ์ƒ์ž๊ฐ€ ๋œ @pradyunsg ์—๊ฒŒ. ํฌ๊ธฐํ•˜์ง€ ์•Š์•„ ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

์ฒœ๋งŒ์—์š”.

(์•„์ง!!)

๋‚˜๋Š” ๊ทธ๊ฒƒ์ด ๊ทธ ์ƒํƒœ์— ์ด๋ฅด์ง€ ์•Š๊ธฐ๋ฅผ ์ •๋ง๋กœ ๋ฐ”๋ž๋‹ˆ๋‹ค. IMO๊ฐ€ ๊ทธ๋ ‡๊ฒŒ ๋œ๋‹ค๋ฉด ์ •๋ง ๋‚˜์œ ์ƒํ™ฉ์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. (๋‚˜๋Š” ๊ทธ๋Ÿฐ ์‹์œผ๋กœ ๊ฑฐ๋งŒํ•˜๋‹ค)

๋‚˜๋Š” ์—ญ์‚ฌ๋ฅผ ๊ฒ€ํ† ํ•˜๋Š” ๋™์•ˆ ๋‹ค์Œ์„ ์ผ๊ณ  ๋‚˜์ค‘์— ์ฐธ์กฐํ•˜๊ณ  ๋งŒ์ผ์„ ๋Œ€๋น„ํ•˜์—ฌ ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์ด ๋‚˜๋ฅผ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ๋„๋ก ์—ฌ๊ธฐ์— ์˜ฌ๋ฆฌ๋Š” ๊ฒƒ์ด ์ข‹์„ ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค.

  • ๋น„ ๊ธฐ์ˆ ์ :๊ธฐ์ˆ ์  ๋น„์œจ์ด ์–ผ๋งˆ๋‚˜ ํฐ์ง€ ๊นจ๋‹ซ๊ณ (๋‚ด๊ฐ€ _์ •๋ง_ ๋ณด์ˆ˜์ ์œผ๋กœ ์ƒ๊ฐํ–ˆ๋˜ ๊ฒƒ๋ณด๋‹ค ํ›จ์”ฌ ํผ) ์ด์— ๋Œ€ํ•œ ์‹œ๋„๊ฐ€ ์ด๋ฏธ ์‹คํŒจํ•œ ์ ์ด ์žˆ์Œ์„ ๊นจ๋‹ซ๊ณ  ์ž‘์—…ํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ๋‚˜๋Š” ์ง€๋ฃจํ–ˆ๊ณ  ์–ด์จŒ๋“  ๋ฌด์Šจ ์ผ์ด ์ผ์–ด๋‚ฌ๋Š”์ง€ ์•Œ์•„์•ผ ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ƒํ™ฉ์— ๋Œ€ํ•ด ๊ธ€์„ ์ผ์Šต๋‹ˆ๋‹ค.

    • ์•„๋งˆ๋„ ํ•„์š”ํ•œ ๊ฒƒ๋ณด๋‹ค ๋” ๋งŽ์€ ์‹œ๊ฐ„(์—ฌ๊ธฐ์— ๊ณต๊ฐ„์ด ์žˆ์Šต๋‹ˆ๊นŒ?)์„ ๋ณด๋ƒˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ ์–ด๋„ ์ €๋Š” ์ € ์ž์‹ (๊ทธ๋ฆฌ๊ณ  ๋‹ค๋ฅธ ๋ชจ๋“  ์‚ฌ๋žŒ?)์— ๋Œ€ํ•œ ๋ฌธ์ œ์— ๋Œ€ํ•œ ์ข‹์€ ๊ฐœ์š”๋ฅผ ์–ป์—ˆ์Šต๋‹ˆ๋‹ค.

  • ์“ฐ๊ณ  ๋‚˜์„œ ๊ณผ๋„ํ•˜๊ฒŒ ํฅ๋ถ„ํ–ˆ๋‹ค. :smiley: ์„ธ์ƒ์— ๋ณด์—ฌ์คฌ์Šต๋‹ˆ๋‹ค!
  • ์—…๊ทธ๋ ˆ์ด๋“œ ๋ช…๋ น ๊ตฌํ˜„์— ๋Œ€ํ•œ (๊ธด!!!) ํ† ๋ก ์„ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค.

    • ํ† ๋ก ์—์„œ ๋ช‡ ๊ฐ€์ง€ ์œ ์šฉํ•œ ์˜คํ”„์ƒท ์•„์ด๋””์–ด๊ฐ€ ๋‚˜์™”์Šต๋‹ˆ๋‹ค. ๋™์ผํ•œ ๋ฌธ์ œ๋ฅผ ์œ„ํ•ด ์ƒˆ๋กœ์šด ๋ฌธ์ œ๊ฐ€ ์ƒ์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

  • ํ† ๋ก ์€ ์„ค์น˜ ๋™์ž‘์„ upstall๋กœ ๋ณ€๊ฒฝํ•˜๋Š” ์•„์ด๋””์–ด๋กœ ์ด์–ด์ง‘๋‹ˆ๋‹ค. ์ด๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ๋น„์—ด์‹ฌ ์—…๊ทธ๋ ˆ์ด๋“œ๋ฅผ ์ˆ˜ํ–‰ํ•˜๊ณ  --target ์˜ต์…˜์ด ์ œ๊ณตํ•˜๋Š” ๊ธฐ๋Šฅ์˜ ์ผ๋ถ€๋ฅผ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค - 3๊ฐ€์ง€.

    • ์ด๊ฒƒ์€ ์šฐ๋ฆฌ๊ฐ€ ์‹ค์ˆ˜๋ฅผ ํ•œ ๊ณณ์ž…๋‹ˆ๋‹ค. ์•„๋ฌด๋„ ์ด ๋ถ€๋ถ„์„ ๊นจ๋‹ซ์ง€ ๋ชปํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— 3๊ฐœ์˜ (๊ณต์ •ํ•œ) ๋…๋ฆฝ์ ์ธ ๋ณ€๊ฒฝ ์‚ฌํ•ญ๊ณผ ํ•˜๋‚˜๋กœ ๊ตฌํ˜„๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

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

    • ์ด์ „ ๊ฐ€์ • ์ค‘ ์ผ๋ถ€๊ฐ€ ๊นจ์กŒ๊ณ  ์ตœ์†Œํ•œ์˜ ์ค‘๋‹จ ๋ณ€๊ฒฝ์„ ๋จผ์ € ์ˆ˜ํ–‰ํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.

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

์˜ˆ, ์ง€๊ธˆ์€ pip install --upgrade ์ˆ˜์ •์—๋งŒ ์ง‘์ค‘ํ•˜๊ณ  ๋‹ค๋ฅธ ๋ชจ๋“  ๊ฒƒ์€ ๋‚จ๊ฒจ๋‘๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ์–ด์จŒ๋“  ๋‹ค๋ฅธ ์ž‘์—…์— ๋Œ€ํ•œ ์š”๊ตฌ ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค.

@pfmoore @dstuff ์‚ฌ๋ ค๊นŠ์€ ๋‹ต๋ณ€์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ๋ˆ„๊ตฐ๊ฐ€๋ฅผ ํ™”๋‚˜๊ฒŒ ํ•˜๋ ค๋Š” ์˜๋„๋Š” ์•„๋‹ˆ์—ˆ์œผ๋ฏ€๋กœ ๊ทธ๋Ÿฐ ์‹์œผ๋กœ ๋“ค๋ ธ๋‹ค๋ฉด ์‚ฌ๊ณผ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์—์„œ ๊ธด ํ† ๋ก ์„ ์›ํ•˜๋Š” ์‚ฌ๋žŒ์ด ์—†๊ธฐ ๋•Œ๋ฌธ์— ๋ชจ๋“  ๋‹ต๋ณ€์— ๋‹ตํ•˜์ง€ ์•Š๊ฒ ์Šต๋‹ˆ๋‹ค.

๋‚ด๊ฐ€ ๋งํ–ˆ์„ ๋•Œ ๋‹น์‹ ์€ 5์›”์— ๊ทธ๋ ‡๊ฒŒ ๋งํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋•Œ 2๋‹ฌ ๋™์•ˆ Github์„ ๋– ๋‚˜ ์žˆ์—ˆ๋Š”๋ฐ ๊ทธ ๋Œ“๊ธ€์„ ์ฒ˜์Œ ๋ณด์•˜์„ ๋•Œ ๊ท€์ฐฎ์•˜์Šต๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ ์ด ํฐ ๊ฒฐ์ •์„ ๋‘ ์‚ฌ๋žŒ์ด ์ผ๋ฐฉ์ ์œผ๋กœ ํ•ด์•ผ ํ•œ๋‹ค๋Š” ๋ง์”€์ด์‹ญ๋‹ˆ๊นŒ?

ํ…Œ์ด๋ธ”์˜ ๋ชจ๋“  ์˜ต์…˜์€ ํ˜„์ƒ ์œ ์ง€๋ณด๋‹ค ํ›จ์”ฌ ๋‚ซ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  5.5๋…„์ด ์ง€๋‚œ ํ›„ ์—ฌ๊ธฐ์˜ ์—ฌ๋Ÿฌ ๋ฌธ์ œ/PR๊ณผ ๋ฉ”์ผ๋ง ๋ฆฌ์ŠคํŠธ์— ์ˆ˜๋ฐฑ ๊ฐœ์˜ ๋Œ“๊ธ€์ด ํผ์กŒ์ง€๋งŒ ์•„์ง ๋” ๋งŽ์€ ๋Œ“๊ธ€์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ๊ฒƒ์ด๋ผ๊ณ  ํ™•์‹ ํ•˜์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค. ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ด ๋ฌธ์ œ๊ฐ€ ๋‹ค์‹œ ์ค‘๋‹จ๋˜๋ฉด ๋ถ„๋ช…ํžˆ ๊ทธ๋ ‡์Šต๋‹ˆ๋‹ค. ํ•œ๋‘ ๋ช…์„ ์ง€๋ช…ํ•˜๊ณ  ์„ ํƒ์„ ํ•˜์‹ญ์‹œ์˜ค.

์šฐ๋ฆฌ๊ฐ€ ๋ฌด์—‡์— ๋Œ€ํ•ด ์‚ฌ๊ณผํ•ด์•ผ ํ•˜๋Š”์ง€ ์ž˜ ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ ๋„์›€์ด ๋œ๋‹ค๋ฉด ๊ธฐ๊บผ์ด ์‚ฌ๊ณผํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์•„๋ฌด๋„ ๊ทธ์—๊ฒŒ ์ด ์ œ์•ˆ์„ ์™„๋ฃŒํ•˜๋Š” ๊ฒƒ์ด ์–ผ๋งˆ๋‚˜ ์–ด๋ ค์šด ์ผ์ธ์ง€ ๋ช…ํ™•ํ•˜๊ฒŒ ์ดํ•ดํ•˜์ง€ ๋ชปํ–ˆ๋‹ค๋Š” ์‚ฌ์‹ค์— ๋Œ€ํ•ด ๋˜๋Š” ๊ทธ๊ฐ€ ํ† ๋ก ์„ ๊ด€๋ฆฌํ•˜๊ณ  ์ฐธ๊ฐ€์ž๋“ค์„ ํ•ฉ์˜์— ์ด๋ฅด๋„๋ก ๋„์™”์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ํ›„์ž๋ฅผ ์˜๋ฏธํ–ˆ๋‹ค. ๋•Œ๋•Œ๋กœ ๋‚˜๋Š” ๋‚ด ํ”„๋กœ์ ํŠธ ์ค‘ ํ•˜๋‚˜์— ๋Œ€ํ•œ ๊ฒฐ์ •์— ๋Œ€ํ•ด ๋งˆ์Œ์„ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ์ผ์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ๋‚˜๋Š” ์ƒˆ๋กœ์šด ๋ฐฉํ–ฅ์„ ๋ถ„๋ช…ํžˆ ํ•ด์•ผ ํ•œ๋‹ค๋Š” ์ฑ…์ž„๊ฐ์„ ๋Š๋‚€๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ทธ ๋ณ€๊ฒฝ์˜ ๊ฒฐ๊ณผ๋ฅผ ์ฒ˜๋ฆฌํ•  ์‹œ๊ฐ„์ด ์—†๋‹ค๋ฉด ์‚ฌ๊ณผํ•˜์‹ญ์‹œ์˜ค(๋‹จ 30์ดˆ๋ฉด ๋ฉ๋‹ˆ๋‹ค....).

๊ทธ๋Ÿฌ๋‚˜ ๊ทธ์˜ ์›๋ž˜ PR์ด ๋๊นŒ์ง€ ๊ด€๋ฆฌ๋˜์ง€ ์•Š์€ ๊ฒƒ์ด ์‚ฌ์‹ค์ž…๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๊ทธ๊ฒƒ์€ ์‚ฌ์‹ค์ผ ๋ฟ์ž…๋‹ˆ๋‹ค.

๊ทธ๊ฒƒ์€ ์‚ฌ์‹ค์ด ์•„๋‹ˆ๋ผ ๊ฒฌํ•ด์ž…๋‹ˆ๋‹ค. ์ œ ์ƒ๊ฐ์—๋Š” PR์ด ์™„๋ฃŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด์ œ ๋…น์ƒ‰ ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๊ฑฐ๋‚˜ ๊ฑฐ๋ถ€ํ•˜๋Š” ์ผ๋งŒ ๋‚จ์•˜์Šต๋‹ˆ๋‹ค. ๊ทธ๋Š” ๋‚ด๊ฐ€ ๊ธฐ์—ฌ์ž์—๊ฒŒ ๊ธฐ๋Œ€ํ•˜๋Š” ๋ชจ๋“  ๊ฒƒ์„ ํ•ด์ฃผ์—ˆ์Šต๋‹ˆ๋‹ค.

๊ท€ํ•˜์˜ ํšŒ์‹  ํ›„์— ์ €๋Š” pip ๊ฐœ๋ฐœ์ž๊ฐ€ ๊ธฐ์—ฌ์ž์™€ ํ•ต์‹ฌ ๊ฐœ๋ฐœ์ž์—๊ฒŒ ๊ธฐ๋Œ€ํ•˜๋Š” ๋ฐ”๊ฐ€ ์ œ๊ฐ€ ์•Œ๊ณ  ์žˆ๋Š” ๋‹ค๋ฅธ ํ”„๋กœ์ ํŠธ์™€ ๋งค์šฐ ๋‹ค๋ฅด๋‹ค๋Š” ๊ฒƒ์„ ๊นจ๋‹ฌ์•˜์Šต๋‹ˆ๋‹ค. ์ €๋Š” ํ•ต์‹ฌ ๊ฐœ๋ฐœ์ž๊ฐ€ ์ƒˆ๋กœ์šด ๊ธฐ์—ฌ์ž๋ฅผ ์•ˆ๋‚ดํ•˜๊ณ , ๊ฒฉ๋ คํ•˜๊ณ , ํ•„์š”ํ•œ ๊ฒฝ์šฐ ํ”ผ๋“œ๋ฐฑ์„ ์ œ๊ณตํ•˜๊ณ , ๋…ผ์Ÿ์˜ ์—ฌ์ง€๊ฐ€ ์žˆ๋Š” ๋ฌธ์ œ(๋Œ€๋ถ€๋ถ„์˜ ๊ธฐ์—ฌ์ž๋Š” ๊ธฐ์ˆ ๋„ ๊ด€์‹ฌ๋„ ์—†๊ณ  ์ข…์ข… ํ•ต์‹ฌ ๊ฐœ๋ฐœ์ž๊ฐ€ ๋˜๋Š” ๋ฌธ์ œ)๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐ ๋„์›€์„ ์ค„ ๊ฒƒ์œผ๋กœ ๊ธฐ๋Œ€ํ•ฉ๋‹ˆ๋‹ค. ํ•„์š”. ๋‹น์‹ ์€ ์ƒˆ๋กœ์šด ๊ธฐ์—ฌ์ž์—๊ฒŒ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋งํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค: _"๋‹น์‹ ์ด ์šฐ๋ฆฌ๋ฅผ ๊ด€๋ฆฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ๋งˆ์Œ์„ ๋ฐ”๊พธ๊ฑฐ๋‚˜, ์„œ๋กœ ๋™์˜ํ•˜์ง€ ์•Š๊ฑฐ๋‚˜, ํฅ๋ฏธ๋ฅผ ์žƒ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์„ ๊ด€๋ฆฌํ•˜๋Š” ๊ฒƒ์€ ๋‹น์‹ ์˜ ์ผ์ž…๋‹ˆ๋‹ค"_. ์–ด์ฉŒ๋ฉด ๊ทธ๊ฒƒ์ด ์ด ํ”„๋กœ์ ํŠธ์˜ ๋ณธ์งˆ์ด๊ณ  ๊ทธ๋ž˜์•ผ ํ•˜๋Š” ๊ฒƒ์ธ์ง€๋„ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค.

์ด ์ฃผ์ œ์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•˜๋Š” ๋™์•ˆ ์ด ํ† ๋ก ์— ๊ธฐ์—ฌํ•œ ๋ชจ๋“  ๋ถ„๋“ค๊ป˜ ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

๋™์˜. ๊ธฐ์—ฌํ•œ ๋ชจ๋“  ๋ถ„๋“ค๊ป˜ ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

  • ๊ทธ๋ฆฌ๊ณ  ์ €๋Š” ์—ฌ๊ธฐ์—์„œ ์™„์ „ํžˆ ์ง„์ง€ํ•ฉ๋‹ˆ๋‹ค. ๊ฒฝํ—˜์„ ํ†ตํ•ด ๊ทธ๊ฒƒ์ด ์–ผ๋งˆ๋‚˜ ๊ณ ๊ฐˆ๋  ์ˆ˜ ์žˆ๋Š”์ง€ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฐฐ์ˆ˜์ค‘์ž…๋‹ˆ๋‹ค. ๊ฐœ์ธ์ ์œผ๋กœ ์ €๋Š” ์—ฌ๊ธฐ์™€ distutils-sig๋ฅผ ๊ณ ์ˆ˜ํ•ฉ๋‹ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ์ด๊ฒƒ์ด Python ์ƒํƒœ๊ณ„์™€ ์ œ ํŒจํ‚ค์ง€ ์‚ฌ์šฉ์ž์—๊ฒŒ ์ค‘์š”ํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋‘ ๊ณณ ๋ชจ๋‘ ์ œ๊ฒŒ ๊ธ์ •์ ์ธ ์—๋„ˆ์ง€๋ฅผ ์ฃผ์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค.

๋ ˆ์ด๋” ์•„๋ž˜๋กœ ๋ฏธ๋„๋Ÿฌ์งˆ ๊ฒฝ์šฐ๋ฅผ ๋Œ€๋น„ํ•˜์—ฌ - #3972 :์Šค๋งˆ์ผ:

๋‹น์‹ ์€ ์ƒˆ๋กœ์šด ๊ธฐ์—ฌ์ž๋“ค์—๊ฒŒ "๋‹น์‹ ์ด ์šฐ๋ฆฌ๋ฅผ ๊ด€๋ฆฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ๋งˆ์Œ์ด ๋ฐ”๋€Œ๊ฑฐ๋‚˜, ์„œ๋กœ ๋™์˜ํ•˜์ง€ ์•Š๊ฑฐ๋‚˜, ํฅ๋ฏธ๋ฅผ ์žƒ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์„ ๊ด€๋ฆฌํ•˜๋Š” ๊ฒƒ์€ ๋‹น์‹ ์˜ ์ผ์ž…๋‹ˆ๋‹ค"๋ผ๊ณ  ๋งํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์–ด์ฉŒ๋ฉด ๊ทธ๊ฒƒ์ด ์ด ํ”„๋กœ์ ํŠธ์˜ ๋ณธ์งˆ์ด๊ณ  ๊ทธ๋ž˜์•ผ ํ•˜๋Š” ๊ฒƒ์ธ์ง€๋„ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค.

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

์ง€์ ํ•ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ๋ช…์‹ฌํ•˜๊ณ  ์•ž์œผ๋กœ ๊ทธ๋Ÿฐ ์ธ์ƒ์„ ์ฃผ์ง€ ์•Š๋„๋ก ๋…ธ๋ ฅํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

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

์•ˆํƒ€๊นŒ์šด ์ƒํ™ฉ์€ ์šฐ๋ฆฌ ๋ชจ๋‘๊ฐ€ ์—ฌ๊ธฐ์—์„œ ํ”„๋กœ์„ธ์Šค๋ฅผ ํ†ตํ•ด ๋ชจ๋“  ๊ธฐ์—ฌ์ž๋ฅผ ์•ˆ๋‚ดํ•˜๋Š” ๋ฐ ๋„์›€์„ ์ฃผ๊ณ  ์‹ถ์ง€๋งŒ ์ธ๋ ฅ์ด ์—†๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์•ฝ๊ฐ„์˜ ์ ์„ฑ ์ฃผ๊ธฐ๋ฅผ ๊ฐ–๋Š” ๊ฒฝํ–ฅ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ์šฐ๋ฆฌ๋Š” ๊ทธ๋ ‡๊ฒŒ ํ•  ์ˆ˜ ์žˆ๋Š” ์ธ๋ ฅ์ด ์—†๊ธฐ ๋•Œ๋ฌธ์— pip๊ฐ€ ์ž‘๋™ํ•˜๋Š” ๋ฐฉ์‹์— ๋Œ€ํ•œ ๋ฉ˜ํƒˆ๋ฆฌํ‹ฐ๋ฅผ ๊นจ๋‹ฌ์€ ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ด๋Š” ์ƒˆ๋กœ์šด ์‚ฌ๋žŒ๋“ค์„ ์‰ฝ๊ฒŒ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๊ทธ๋“ค์—๊ฒŒ pip์— ๋Œ€ํ•œ ์ปค๋ฐ‹ ๊ถŒํ•œ์„ ์ฃผ๊ธฐ์— ์ถฉ๋ถ„ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์šฐ๋ฆฌ๊ฐ€ ์ง€์†์ ์œผ๋กœ ์ธ์›์ด ๋ถ€์กฑํ•˜๊ณ  ๋จธ๋ฆฌ๋ฅผ ๋ฌผ ์œ„๋กœ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ๊ณ ๊ตฐ๋ถ„ํˆฌํ•˜๊ณ  ์žˆ์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค(์ ์–ด๋„ ๋‚ด๊ฐ€ ๋Š๋ผ๋Š” ๋ฐ”์ž…๋‹ˆ๋‹ค. ์ฃผ๋‹น 70-90์‹œ๊ฐ„์„ ์ผ์ •ํ•˜๊ฒŒ ์œ ์ง€ํ•˜๋Š” ๊ฒƒ์€ ์‚ฌ๋žŒ์—๊ฒŒ ์ •๋ง ํž˜๋“  ์ผ์ž…๋‹ˆ๋‹ค./).

@pradyunsg ๋ฆฌ๋ทฐ #3972๋Š” ๋‚ด TODO ๋ชฉ๋ก์— ์žˆ์ง€๋งŒ ์•„์ง ์ ์ค‘ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

@pradyunsg ๋ฆฌ๋ทฐ #3972๋Š” ๋‚ด TODO ๋ชฉ๋ก์— ์žˆ์ง€๋งŒ ์•„์ง ์ ์ค‘ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

๊ฐ์‚ฌ ํ•ด์š”!

์ด๊ฒƒ์€ ์šฐ๋ฆฌ๊ฐ€ ์ง€์†์ ์œผ๋กœ ์ธ์›์ด ๋ถ€์กฑํ•˜๊ณ  ๋จธ๋ฆฌ๋ฅผ ๋ฌผ ์œ„๋กœ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ๊ณ ๊ตฐ๋ถ„ํˆฌํ•˜๊ณ  ์žˆ์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค(์ ์–ด๋„ ๋‚ด๊ฐ€ ๋Š๋ผ๋Š” ๋ฐ”์ž…๋‹ˆ๋‹ค. ์ฃผ๋‹น 70-90์‹œ๊ฐ„์„ ์ผ์ •ํ•˜๊ฒŒ ์œ ์ง€ํ•˜๋Š” ๊ฒƒ์€ ์‚ฌ๋žŒ์—๊ฒŒ ์ •๋ง ํž˜๋“  ์ผ์ž…๋‹ˆ๋‹ค./).

๊ทธ๊ฑด ์–ด๋ ต๋‹ค. Numpy์™€ Scipy๋Š” ๋‚ด๊ฐ€ ์ž‘์—…์„ ์‹œ์ž‘ํ–ˆ์„ ๋•Œ ๊ทธ๋Ÿฐ ์ƒํ™ฉ์— ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์žฌ๋ฏธ ์—†์–ด. ๋‹น์‹ ์ด ํ•˜๋Š” ๋ชจ๋“  ๊ฒƒ์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ๋Š” ์ด์ œ ์ •๋ง ๊ธธ๊ณ  ์ •๋ง ์˜ค๋ž˜๋˜์—ˆ๊ณ , ๋งŽ์€ ๊ฒƒ๋“ค์ด ๋…ผ์˜๋˜์—ˆ์œผ๋ฉฐ ๋„ˆ๋ฌด ๋งŽ์€ ์ผ์ด ๋ฐœ์ƒํ–ˆ์œผ๋ฉฐ ์ด ๋ฌธ์ œ๋Š” ๊ฑฐ์˜ ๋‚ฎ์€ ์‹ ํ˜ธ/๋…ธ์ด์ฆˆ์— ๋„๋‹ฌํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  ์ผ์ด ์ผ์–ด๋‚œ ๊ฒƒ์„ ๋ณด๊ธฐ๋Š” ์–ด๋ ต์Šต๋‹ˆ๋‹ค.

FWIW์—์„œ upgrade ์ด ์นด๋“œ์— ์žˆ์—ˆ๋˜ ์ด์œ ๋Š” install --upgrade ์— ๊นจ์ง„ ๊ธฐ๋ณธ๊ฐ’์ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ์ด์ œ ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐ ํ•œ ๊ฑธ์Œ ๋” ๋‹ค๊ฐ€์„ฐ๊ธฐ ๋•Œ๋ฌธ์— ์ƒˆ๋กœ์šด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€์žฅ ์ข‹์Šต๋‹ˆ๋‹ค.

์œ„์˜ ๋ฌธ์ œ๋กœ ์ธํ•ด ์ด ๋ฌธ์ œ๊ฐ€ ์ข…๋ฃŒ๋˜์—ˆ์œผ๋ฉฐ ์—ฌ๊ธฐ์—์„œ ํ•ด๊ฒฐ๋˜์ง€ ์•Š์€ ๊ฒƒ์œผ๋กœ ๋ณด์ด๋Š” ๋ชจ๋“  ๋ฌธ์ œ์— ๋Œ€ํ•ด ์ƒˆ๋กœ์šด ๋ฌธ์ œ๊ฐ€ ์ƒ์„ฑ๋  ๊ฒƒ์„ ์ œ์•ˆํ•ฉ๋‹ˆ๋‹ค. 2๊ฐ€์ง€๋ฅผ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ๊ธฐ๋ณธ ์—…๊ทธ๋ ˆ์ด๋“œ ์ „๋žต์„ only-if-needed ํ•ฉ๋‹ˆ๋‹ค.
  • #988์— ์˜์กดํ•˜๋Š” "์„ธ๊ณ„ ์—…๊ทธ๋ ˆ์ด๋“œ" ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•˜์‹ญ์‹œ์˜ค.

16๋…„ 9์›” 15์ผ์— Nick Coghlan [email protected] ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ผ์Šต๋‹ˆ๋‹ค.

@RonnyPfannschmidt Windows ์‚ฌ์šฉ์ž๋Š” ์—ฌ์ „ํžˆ Linux ์‚ฌ์šฉ์ž๋ฅผ 18:1๋กœ ๋Šฅ๊ฐ€ํ•˜๋ฉฐ,
๋ฐฐํฌํŒ ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ ์ปค๋ฎค๋‹ˆํ‹ฐ์™€ ๋น„๊ตํ•  ๋งŒํ•œ ๊ฒƒ์ด ์—†์Šต๋‹ˆ๋‹ค.
์ด ์‹œ์ ์—์„œ ๋Œ€์ฒด(ํ•ต์‹ฌ ๊ธฐ์ˆ ์€ ์ตœ๊ทผ์—
๋ฒ„์ „, ํŒจํ‚ค์ง• ๋ฐ ํ๋ ˆ์ด์…˜ ์ปค๋ฎค๋‹ˆํ‹ฐ๋Š” ๊ทธ๋ ‡์ง€ ์•Š์Šต๋‹ˆ๋‹ค). ์ฆ‰ ๊ทธ๋“ค์€
pip ๋ฐ conda์™€ ๊ฐ™์€ ์‚ฌ์šฉ์ž ์ˆ˜์ค€ ๋„๊ตฌ์— ํ›จ์”ฌ ๋” ์˜์กดํ•˜์—ฌ
๋Š์Šจํ•˜๊ฒŒ.

๊ทธ๋Ÿผ ์•„๋‹Œ๊ฐ€
์ฝ˜๋‹ค ์—…๋ฐ์ดํŠธ --all
์ถฉ๋ถ„ํ•˜๋‹ค?

@Liso77
๊ทธ๋ ‡์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

Conda์™€ pip๋Š” ๋‹ค๋ฅธ ๋ชฉํ‘œ๋ฅผ ๊ฐ€์ง„ ๋„๊ตฌ์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์ด ์ฃผ์ œ์— ๋Œ€ํ•œ ํ›Œ๋ฅญํ•œ ๊ธ€์ž…๋‹ˆ๋‹ค. 3๋ฒˆ ํ•ญ๋ชฉ์ด ๊ฐ€์žฅ ๊ด€๋ จ์ด ์žˆ์Šต๋‹ˆ๋‹ค.


๋ชจ๋“  ์—…๊ทธ๋ ˆ์ด๋“œ์— ๋Œ€ํ•œ ๋…ผ์˜๊ฐ€ ๋‹ค์‹œ ํ‘œ๋ฉดํ™”๋˜๋ฉด(์ƒˆ ๋ฌธ์ œ๊ฐ€ ๋˜๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค) ๋‚ด ํˆฌํ‘œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ฒ ์ž๋ฅผ ์ง€์ •ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

pip install --upgrade :all:

pip install --upgrade :all: ์€(๋Š”) ๋งค์šฐ ์ด์ƒํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ์˜ค๋Š˜๋‚  ๋ชจ๋“  ์‚ฌ๋žŒ๋“ค์ด ํ•˜๊ณ  ์žˆ๋Š” POSIX ์˜๋ฏธ๋ก ์„ ๊ณ ์ˆ˜ํ•ฉ์‹œ๋‹ค: pip install --upgrade --all

ํŒจํ‚ค์ง€ ์ด๋ฆ„์ด๋‚˜ ์ง€์ •์ž๊ฐ€ ์—†๋Š” pip install --upgrade ์–ด๋–ป์Šต๋‹ˆ๊นŒ? ์‹ค์ˆ˜๋กœ ์‰ฝ๊ฒŒ ์‹คํ–‰ํ•˜๋ ค๋ฉด?

pip-tools ๋Š” pip-compile -P ํ•ฉ๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๊ฐ€ ์ผ์„ ํ•˜๊ณ  ๋‚˜๋ฉด ์šฐ๋ฆฌ๋Š” ์ž์ „๊ฑฐ ๋ณด๊ด€์†Œ๋ฅผ ํ•ด์•ผ ํ• ์ง€๋„ ๋ชฐ๋ผ
๊ตฌํ˜„... :)

2017๋…„ 2์›” 12์ผ ์ผ์š”์ผ 20:55 FichteFoll [email protected]์—์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ผ์Šต๋‹ˆ๋‹ค.

ํŒจํ‚ค์ง€ ์ด๋ฆ„ ์—†์ด pip install --upgrade ๋˜๋Š”
์ง€์ •์ž? ์‹ค์ˆ˜๋กœ ์‰ฝ๊ฒŒ ์‹คํ–‰ํ•˜๋ ค๋ฉด?

โ€”
๋‹น์‹ ์ด ์–ธ๊ธ‰๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์„ ๋ฐ›๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ๋‹ต์žฅํ•˜๊ณ  GitHub์—์„œ ํ™•์ธํ•˜์„ธ์š”.
https://github.com/pypa/pip/issues/59#issuecomment-279225595 ๋˜๋Š” ์Œ์†Œ๊ฑฐ
์Šค๋ ˆ๋“œ
https://github.com/notifications/unsubscribe-auth/ADH7SfnSBflH8rK3nFLw1hvYBaovjbcGks5rbyRUgaJpZM4AJ4Py
.

pip list --outdated ์—์„œ ์ง์ ‘ ์ˆ˜์ง‘ํ•  ์ˆ˜ ์žˆ๋Š” ํ˜•์‹์œผ๋กœ ๋ชฉ๋ก์„ ์ƒ์„ฑํ•˜๋Š” sed , cut ๋“ฑ ์—†์ด) pip install --upgrade (์˜ˆ: pip list --outdated --format install | xargs pip install --upgrade ๋˜๋Š” ๋ฐฑํ‹ฑ๊ณผ ์œ ์‚ฌํ•œ ๊ฒƒ)?

์–ด๋–ค ๊ตฌ๋ฌธ์ด ์‚ฌ์šฉ๋˜๋“  ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๊ฒƒ์€ ์ด ๋ช…๋ น์„ ๋„์ž…ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๊ทธ ๋™์•ˆ ๋‚˜๋Š” ๋‹น์‹ ์ด ์‹œ๋„ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค
https://github.com/jgonggrijp/pip-review
pip-review --local --interactive ๋กœ ์—…๋ฐ์ดํŠธํ•˜๋ ค๋ฉด ํŒจํ‚ค์ง€๋ณ„๋กœ ์š”์ฒญํ•˜์‹ญ์‹œ์˜ค. ๋ณ„๋กœ ์ข‹์ง€๋Š” ์•Š์ง€๋งŒ ์—†๋Š” ๊ฒƒ๋ณด๋‹ค๋Š” ๋‚ซ์Šต๋‹ˆ๋‹ค.

@SMH17 ๊ณ ๊ฐ์„ ๋Œ€์‹ ํ•˜์—ฌ Python ํŒจํ‚ค์ง• ์‚ฌ์šฉ์„ฑ ๊ฐœ์„  ์ž‘์—…์— ์ž๊ธˆ์„ ์ง€์›ํ•˜๋Š” ๊ฐœ๋ฐœ ์‹œ๊ฐ„์„ ๊ณต์‹์ ์œผ๋กœ ์ œ๊ณตํ•˜๋Š” ์ƒ์šฉ Python ๊ณต๊ธ‰์—…์ฒด๊ฐ€ ์ •ํ™•ํžˆ 0๊ฐœ์ด๊ธฐ ๋•Œ๋ฌธ์— ์•„์ง ๋ˆ„๋ฝ๋˜์—ˆ๋‹ค๋Š” ๊ฒƒ์ด ์ „์ ์œผ๋กœ ๋ฏฟ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

์ด ๋ฌธ์ œ์™€ ๊ด€๋ จํ•˜์—ฌ ๊ธด๊ธ‰ํ•˜์ง€ ์•Š์€ ์ƒํ™ฉ์— ๋Œ€ํ•œ ์ถ”๊ฐ€ ์ปจํ…์ŠคํŠธ๋กœ, ์ผ๋ฐ˜์ ์ธ ๊ถŒ์žฅ ์‚ฌํ•ญ์€

  • ์ž‘์—… ํ™˜๊ฒฝ ์ •์˜๋ฅผ ์†Œ์Šค ์ œ์–ด ํ•˜์— ์œ ์ง€ํ•˜์—ฌ ๋‹ค๋ฅธ ์‹œ์Šคํ…œ์—์„œ ์žฌํ˜„์„ฑ์„ ํ–ฅ์ƒ์‹œํ‚ต๋‹ˆ๋‹ค(https://github.com/jazzband/pip-tools ๋˜๋Š” https://github.com/kennethreitz/pipenv์™€ ๊ฐ™์€ ๊ฒƒ์„ ์‚ฌ์šฉํ•˜์—ฌ ํ•ด๋‹น ์ •์˜๋ฅผ ์ตœ์‹  ์ƒํƒœ๋กœ ์œ ์ง€) )
  • ์•Œ๋ ค์ง€์ง€ ์•Š์•˜๊ฑฐ๋‚˜ ๊ณต๊ฐœ๋˜์ง€ ์•Š์€ ๋ณด์•ˆ ์ทจ์•ฝ์ ์— ๋Œ€ํ•œ ๋…ธ์ถœ ์ฐฝ์„ ์ตœ์†Œํ™”ํ•˜๊ธฐ ์œ„ํ•ด ์ƒˆ๋กœ์šด ์ข…์†์„ฑ ๋ฆด๋ฆฌ์Šค๋กœ ์ •๊ธฐ์ ์œผ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋Š” ๊ฒƒ์„ ๋ชฉํ‘œ๋กœ ํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋ ‡๋‹ค๊ณ ํ•ด์„œ ์—ฌ๊ธฐ์— ์ œ์•ˆ๋œ ๋ช…๋ น์ด ์œ ์šฉํ•˜์ง€ ์•Š๋‹ค๋Š” ์˜๋ฏธ๋Š” ์•„๋‹™๋‹ˆ๋‹ค. ํ˜„์žฌ ์ž‘์—… ํ™˜๊ฒฝ์ด ์ด๋ฏธ pip-compile + pip-sync ๋˜๋Š” pipenv lock ํ†ตํ•ด ์œ ์ง€ ๊ด€๋ฆฌ๋˜๊ณ  ์žˆ๋Š” ๊ฒฝ์šฐ ๊ทธ ๊ฐ€์น˜๊ฐ€ ํ˜„์ €ํžˆ ๋–จ์–ด์ง‘๋‹ˆ๋‹ค. pipenv install .

@qwcode๊ฐ€ ์—…๋ฐ์ดํŠธํ•œ ์ดํ›„ pip install ์— ๋ช‡ ๊ฐ€์ง€ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ์žˆ์—ˆ๋˜ ๊ฒƒ ๊ฐ™์œผ๋ฏ€๋กœ ์›๋ž˜ ์„ค๋ช…์„ ์—…๋ฐ์ดํŠธํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

์•ˆ๋…•ํ•˜์„ธ์š” ์—ฌ๋Ÿฌ๋ถ„.

๋‹ค์Œ ๋ช…๋ น์œผ๋กœ ์ธํ•ด ์ผ๋ถ€ Python ํŒจํ‚ค์ง€ ์ข…์†์„ฑ์ด ์†์ƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

pip install --upgrade packageName ์€ ํŒจํ‚ค์ง€๋ฅผ ์žฌ๊ท€์ ์œผ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ–ˆ์Šต๋‹ˆ๋‹ค.

--upgrade ์˜ต์…˜์˜ ๊ธฐ๋ณธ ๋™์ž‘์„ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ์ฆ‰, ๋ช…๋ น์ค„์—์„œ ์ง€์ •๋œ ํŒจํ‚ค์ง€๋งŒ ์ œ๊ฑฐํ•˜๊ณ  ๋‹ค์‹œ ์„ค์น˜ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ด๊ฑด ์–ด๋•Œ์š” ?

@sebma ๊ธฐ๋ณธ ๋™์ž‘์€ ๋ณ€๊ฒฝ๋˜์–ด์„œ๋Š” ์•ˆ๋œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ์— -no-dependencies ํ”Œ๋ž˜๊ทธ๋ฅผ ์‚ฌ์šฉํ•ด ๋ณผ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž‘๋™ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค:+1:

@sebma , @aaossa , ๊ธฐ๋ณธ ์—…๊ทธ๋ ˆ์ด๋“œ ์ „๋žต์ด ๋ฏธ๋ž˜์— ๋ณ€๊ฒฝ๋  ๊ฒƒ์ด ์ด๋ฏธ ๊ฑฐ์˜ ๊ฒฐ์ •๋˜์—ˆ์Œ์„ ๋‘ ์‚ฌ๋žŒ ๋ชจ๋‘์—๊ฒŒ ์•Œ๋ ค๋“œ๋ฆฝ๋‹ˆ๋‹ค(์ฐธ์กฐ: https://github.com/pypa/pip/issues/3871# ๋ฌธ์ œ์˜๊ฒฌ-247789343). ํ•„์š”ํ•œ ๊ธฐ๋Šฅ(์˜ˆ: --upgrade-strategy ์ธ์ˆ˜)์ด https://github.com/pypa/pip/pull/3972 ์— ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค

@pradyunsg๊ฐ€ ์•ž์„œ ์–ธ๊ธ‰ ํ–ˆ๋“ฏ์ด ์ด ๋ฌธ์ œ๋Š” ์ผ์ข…์˜ ๋‚จ์€ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. ์ฒซ ๋ฒˆ์งธ ๋ถ€๋ถ„์€ ํ˜„์žฌ ์ฒ˜๋ฆฌ๋˜๊ณ  ์žˆ์œผ๋ฉฐ(๋‚ด ์ฒซ ๋ฒˆ์งธ ๋‹จ๋ฝ ์ฐธ์กฐ) ๋‘ ๋ฒˆ์งธ ๋ถ€๋ถ„์€ ์ด ํŒจํ‚ค์ง€๊ฐ€ ์—ฌ์ „ํžˆ ์—ด๋ ค ์žˆ๋Š” ์œ ์ผํ•œ ์ด์œ ์ธ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๊ทธ ์ดํ›„๋กœ ๋ณ„๋„์˜ "์—…๊ทธ๋ ˆ์ด๋“œ ์ „์ฒด" ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ๋Š”์ง€ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค.

์š”๊ตฌ ์‚ฌํ•ญ ํŒŒ์ผ์— ๋Œ€ํ•œ ๋ฉ‹์ง„ ๋Œ€ํ™”์‹ ์—…๊ทธ๋ ˆ์ด๋“œ ํ”„๋กœ๊ทธ๋žจ์„ ์ถœ์‹œํ–ˆ์Šต๋‹ˆ๋‹ค. https://github.com/simion/pip-upgrader

ํ•„์š”ํ•œ ๊ฒฝ์šฐ์—๋งŒ ๊ธฐ๋ณธ ์—…๊ทธ๋ ˆ์ด๋“œ ์ „๋žต์„ ์ „ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

4500์ด ํ–ˆ์Šต๋‹ˆ๋‹ค.

#988์— ์˜์กดํ•˜๋Š” "์„ธ๊ณ„ ์—…๊ทธ๋ ˆ์ด๋“œ" ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•˜์‹ญ์‹œ์˜ค.

์ด์— ๋Œ€ํ•œ ๋…ผ์˜๋Š” 4551์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.


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

pip upgrade๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ๋น„์žฌ๊ท€์ (--recursive ์˜ต์…˜ ์ œ๊ณต)์ด๋ผ๋Š” ์ ์„ ์ œ์™ธํ•˜๊ณ  pip install --upgrade์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค. ํ˜„์žฌ์˜ ์žฌ๊ท€์  ๊ธฐ๋ณธ ๋™์ž‘์€ ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์—๊ฒŒ ์Šฌํ””์„ ์•ˆ๊ฒจ์ฃผ์—ˆ์Šต๋‹ˆ๋‹ค(#304). ์ง€๊ธˆ ๋น„์žฌ๊ท€์  ์—…๊ทธ๋ ˆ์ด๋“œ๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ์—ฌ๊ธฐ๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

์—…๊ทธ๋ ˆ์ด๋“œ ๋ช…๋ น์„ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ pip install upgrade ์ด๋ฏธ ์„ค์น˜๋œ ํŒจํ‚ค์ง€๋ฅผ ๋งŒ๋“ค์ง€ ์•Š๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. pip๋Š” ์ด์ œ ๊ธฐ๋ณธ์ ์œผ๋กœ ๋น„์žฌ๊ท€์  ์—…๊ทธ๋ ˆ์ด๋“œ๋ฅผ ์ง€์›ํ•˜๋ฉฐ --upgrade-strategy eager ๋’ค์—์„œ ์žฌ๊ท€ ๋™์ž‘์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

pip upgrade-all์€ ์„ค์น˜๋œ ๋ชจ๋“  ํŒจํ‚ค์ง€๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œํ•ฉ๋‹ˆ๋‹ค.

4551์ด ์กด์žฌํ•˜๋ฉฐ ์ด์— ๋Œ€ํ•ด ์ƒˆ๋กœ์šด ํ† ๋ก ์„ ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. #988์ด ์™„๋ฃŒ๋˜๋ฉด.


@dstufft @xavfernandez @pfmoore ์ด ๋ฌธ์ œ๋ฅผ ๋‹ซ์•„์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋Š” ์‚ฌ๋žŒ์ด ์žˆ์Šต๋‹ˆ๊นŒ?

ํŽธ์ง‘ (2017๋…„ 5์›” 18์ผ): ๊ตฌ๋‘์  + ์ž‘์€ ํ…์ŠคํŠธ ์ถ”๊ฐ€๋จ

ํ•ฉ๋ฆฌ์ ์ธ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์—ฌ๋Ÿฌ๋ถ„ ์•ˆ๋…•ํ•˜์„ธ์š”,
์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฐ„๋‹จํ•œ ์Šคํฌ๋ฆฝํŠธ/์š”์ ์„ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.

https://gist.github.com/serafeimgr/b4ca5d0de63950cc5349d4802d22f3f0

๋‹จ์ˆœํžˆ ์ด๊ฒƒ์„ ํ•˜์ง€ ์•Š๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

pip install --upgrade $(pip list --outdated | awk '{print $1}' | tr '\n' ' ')

๋‹ค๋ฅธ ํŒจํ‚ค์ง€์˜ ์ข…์†์„ฑ์„ ์ถฉ์กฑํ•˜์ง€ ์•Š๋Š” ๋ฒ„์ „์„ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์‹ค์ œ๋กœ๋Š” ์‰ฝ์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

@serafeimgr ์˜ ์š”์  ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ทธ๋ฆฌ๊ณ  ๋•๋ถ„์— ์ €๋Š” ์œ ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ช…๋ น์ค„ ๋„๊ตฌ pip_upgrade_outdated ๋ฅผ ์ž‘์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค . github์˜ ์†Œ์Šค . ํ”ผ๋“œ๋ฐฑ ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค.

( ์ด ๋ฌธ์ œ ๋„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค. ์˜ˆ, ๋ณ‘๋ ฌ ์‹คํ–‰์€ ํŠนํžˆ ์œ„ํ—˜ํ•˜๋ฉฐ, ์˜ˆ, ์ด๋กœ ์ธํ•ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿผ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ด ์ด์™€ ๊ฐ™์€ ๊ฒƒ์„ ํ•ญ์ƒ ์†์œผ๋กœ ์‹คํ–‰ํ•˜๋ฏ€๋กœ ์œ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.)

์‹œ๊ฐ„์„ ๋‚ด์–ด ์™„์ „ํ•œ ์†”๋ฃจ์…˜์„ ๊ตฌ์ถ•ํ•ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.
์ด ๊ธฐ๋Šฅ์„ ํ•์œผ๋กœ ํ‘ธ์‹œํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ฐพ๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

์–ด์จŒ๋“  pipenv & pipfile์ด pip/requirements.txt๋ฅผ ๋Œ€์ฒดํ•  ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.
์•„๋งˆ๋„ @kennethreitz ๊ฐ€ ๋กœ๋“œ๋งต๊ณผ --upgrade all ๊ธฐ๋Šฅ์— ๋Œ€ํ•ด ๋” ๋งŽ์ด ์•Œ๊ณ  ์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

@qoheniac | tr ... ์ด(๊ฐ€) ์ค‘๋ณต๋ฉ๋‹ˆ๋‹ค.

์ด ์Šค๋ ˆ๋“œ๋Š” ๋‹ซํžŒ ํ›„ ์ตœ๊ทผ ํ™œ๋™์ด ์—†์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ž๋™์œผ๋กœ ์ž ๊ฒผ์Šต๋‹ˆ๋‹ค. ๊ด€๋ จ ๋ฒ„๊ทธ์— ๋Œ€ํ•œ ์ƒˆ ๋ฌธ์ œ๋ฅผ ์—ฌ์‹ญ์‹œ์˜ค.

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