Virtualenv: virtualenv ๊ฒฝ๋กœ์— ๊ณต๊ฐ„์ด ์žˆ์–ด Pip ์‹คํŒจ

์— ๋งŒ๋“  2016๋…„ 12์›” 08์ผ  ยท  7์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: pypa/virtualenv

'/Users/.../venv/bin/pip' ํ”„๋กœ์„ธ์Šค๋ฅผ ์‹คํ–‰ํ•˜์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด์œ :
'/Users/.../venv/bin/pip' ํŒŒ์ผ์ด ์กด์žฌํ•˜์ง€ ์•Š๊ฑฐ๋‚˜ ์‹คํ–‰ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

homebrew๋ฅผ ํ†ตํ•ด ์„ค์น˜๋œ python 2.7
pip๋ฅผ ํ†ตํ•ด ์„ค์น˜๋œ virtualenv

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

+1. ๋‚˜๋Š” ๋˜ํ•œ์ด ๋ฌธ์ œ์— ์ง๋ฉด ํ•ด ์žˆ์Šต๋‹ˆ๋‹ค.

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

Apple์˜ XNU ์ปค๋„[1]๊ณผ Linux[2]๋Š” ๋ชจ๋‘ ์ฒซ ๋ฒˆ์งธ ๊ณต๋ฐฑ์—์„œ ์ธํ„ฐํ”„๋ฆฌํ„ฐ ์ด๋ฆ„์„ ์ž˜๋ผ๋ƒ…๋‹ˆ๋‹ค. ์ฆ‰, ๊ณต๋ฐฑ์ด ์žˆ๋Š” ๊ฒฝ๋กœ(' ' 0x20 ๋ฐ '\t' 0x09)๋Š” ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” virtualenv๊ฐ€ ๊ทธ๋Ÿฌํ•œ ๊ฒฝ๋กœ๋ฅผ ๊ธˆ์ง€ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

[1] https://github.com/opensource-apple/xnu/blob/10.11/bsd/kern/kern_exec.c#L532 -L535
[2] https://github.com/torvalds/linux/blob/v4.9-rc8/fs/binfmt_script.c#L60 -L68

์ด ๋ฌธ์ œ๋Š” https://github.com/pypa/pip/issues/923 ๊ณผ ๋™์ผํ•œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

+1. ๋‚˜๋Š” ๋˜ํ•œ์ด ๋ฌธ์ œ์— ์ง๋ฉด ํ•ด ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ #53 "virtualenv์˜ ๋ฃจํŠธ ๊ฒฝ๋กœ์— ์žˆ๋Š” ๊ณต๋ฐฑ์ด ์Šคํฌ๋ฆฝํŠธ๋ฅผ ๋Š์Šต๋‹ˆ๋‹ค"์˜ ๋ณต์ œ๋ณธ์ฒ˜๋Ÿผ ๋ณด์ž…๋‹ˆ๋‹ค.
https://github.com/pypa/virtualenv/issues/997#issuecomment -270681253, "virtualenv๊ฐ€ ๊นจ์ง€๊ธฐ ์‰ฌ์šด ์ปค๋„ shebang ๊ตฌ๋ฌธ ๋ถ„์„์œผ๋กœ ์ธํ•ด ์†์ƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค." ๊ทธ๋ฆฌ๊ณ  ๊ทธ๋Ÿฐ ์˜๋ฏธ์—์„œ #1014 "๊ฒฝ๋กœ์— ์ด๋ชจํ‹ฐ์ฝ˜์ด ์žˆ๋Š” ๋””๋ ‰ํ† ๋ฆฌ์™€ ํ˜ธํ™˜๋˜์ง€ ์•Š์Œ"์€ ์ทจ์•ฝํ•œ ์ปค๋„ shebang ๊ตฌ๋ฌธ ๋ถ„์„์œผ๋กœ ์ธํ•ด virtualenv๊ฐ€ ์†์ƒ๋˜๋Š” ๋˜ ๋‹ค๋ฅธ ์˜ˆ์ž…๋‹ˆ๋‹ค. ๊ฒฝ๋กœ์— ASCII๊ฐ€ ์•„๋‹Œ ๋ฌธ์ž๊ฐ€ ์žˆ์œผ๋ฉด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

๊นจ์ง€๊ธฐ ์‰ฌ์šด ์ปค๋„ shebang ๊ตฌ๋ฌธ ๋ถ„์„์˜ ์„ธ ๊ฐ€์ง€ ์ธก๋ฉด์„ ๋ชจ๋‘ ํ•˜๋‚˜์˜ ๋ฌธ์ œ๋กœ ์ˆ˜์ง‘ํ•˜์—ฌ ํ•˜๋‚˜์˜ ์ˆ˜์ • ์‚ฌํ•ญ์ด ๊ณต๋ฐฑ, ๊ธธ์ด ๋ฐ ๋น„ ASCII ๋ฌธ์ž๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ํ™•์‹ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ๊ฐ€์žฅ ์˜ค๋ž˜๋œ ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์— #53์„ ์ถ”์ฒœํ•ฉ๋‹ˆ๋‹ค.

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

์ด ๋ฌธ์ œ๋Š” #53์—์„œ ์ถ”์ ํ•œ ๊ทผ๋ณธ์ ์ธ ๋ฌธ์ œ์˜ ์ง•ํ›„์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. https://github.com/pypa/virtualenv/issues/53#issuecomment -429672379์— ๋”ฐ๋ฅด๋ฉด "์ด ๋ฒ„๊ทธ๋Š” 2018-04-14์— ๋ฆด๋ฆฌ์Šค๋œ pip 10.0.0์—์„œ ์ˆ˜์ •๋œ ๊ฒƒ์œผ๋กœ ๋ณด์ž…๋‹ˆ๋‹ค." ๊ทธ๋ ‡๋‹ค๋ฉด ์ด ๋ฌธ์ œ๋Š” pip 10.0.0์—์„œ๋„ ์ˆ˜์ •๋˜์—ˆ์Šต๋‹ˆ๊นŒ?

๋‹น์‹ ์ด ๋งž์Šต๋‹ˆ๋‹ค, ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

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