์ด๊ฒ์ด ๋ฐฐํฌ / setuptools / virtualenv์ธ์ง ํ์คํ์ง ์์ง๋ง,
virtualenv๋ฅผ ์ค์นํ๋ฉด
/ var / lib / hudson / home / jobs / Minification WebHelpers / workspace / python / 2.4
๊ทธ๋ฐ ๋ค์ ./bin/easy_install์ ์คํํฉ๋๋ค.
bash : ./bin/easy_install : "/ var / lib / hudson / home / jobs / Minification : ์๋ชป๋ ์ธํฐํ๋ฆฌํฐ : ํด๋น ํ์ผ ๋๋ ๋๋ ํ ๋ฆฌ ์์
๊ฒฝ๋ก ์ด๋ฆ์ ๊ณต๋ฐฑ์ ์ฌ๋ฐ๋ฅด๊ฒ ๋ฐ๋ฅด์ง ์๋ ๊ฒ ๊ฐ์ต๋๋ค.
+1, Mac OS X 10.7.3 ๋ฐ Python 2.7.1์์ ํ์ธ
์ข ์ง์ฆ๋๊ณ , ์์ ํ๋ฉด ์ข์ ๊ฒ์ ๋๋ค.
์ด๋ฆ์ ๊ณต๋ฐฑ์ด์๋ virtualenv๋ฅผ ๋ง๋ค ์ ์์ง๋ง (# 278 ์ฐธ์กฐ), ๋์ค์ easy_install๊ณผ pip๊ฐ ์ฐ์ฐํ ๋ฐ๊ฒฌ๋ฉ๋๋ค.
% virtualenv "foo bar"
New python executable in foo bar/bin/python
Installing setuptools............done.
Installing pip...............done.
% ./foo\ bar/bin/easy_install nose
zsh: ./foo bar/bin/easy_install: bad interpreter: "/tmp/cfl/foo: no such file or directory
127 % ./foo\ bar/bin/pip install nose
zsh: ./foo bar/bin/pip: bad interpreter: "/tmp/cfl/foo: no such file or directory
๋๋ ๋ํ ์ด๊ฒ์ด OS X (์ฌ๊ธฐ 10.8)์ ๋ฌธ์ ์์ ํ์ธํ๊ธฐ ์ํด ์ฌ๊ธฐ์ ์์ต๋๋ค. VIRTUAL_ENV ๋ณ์์ bin์ shebangs๋ฅผ ํธ์งํ๋ฉด ์๋ํ๋๋ก ํ ์ ์์ง๋ง ์๋ก์ด env๋ ๊ฒฝ๋ก์ ๋ชจ๋ ๊ณต๊ฐ์์ ์ง์ํฉ๋๋ค. ๋ถํ ๋๋ผ์ด๋ธ์ ์ด๋ฆ์ด ์ผ๋ฐ์ ์ผ๋ก "Macintosh HD"์ด๋ฏ๋ก ๋ชจ๋ ๊ฒฝ๋ก๊ฐ "/ Volumes / Macintosh HD ..."๋ก ์์ํ๋ค๋ ์ ์ ๊ฐ์ํ ๋ OS X์ ํฐ ๋ฌธ์ ์ ๋๋ค.
๋ด๊ฐ ์ฌ์ฉํ๋ ํดํน์ ๋ค์๊ณผ ๊ฐ์ด ์๋ํฉ๋๋ค.
๋น / ํ์ฑํ :
VIRTUAL_ENV='/Volumes/Macintosh\ HD/path/to/my/project'
bin / pip ๋ฐ bin / easy_install :
#!"/Volumes/Macintosh\ HD/path/to/my/project/venv/bin/python"
๊ฒฝ๋ก์ ๊ณต๊ฐ์ ํ์ถ ํ ํ ํ์ด ์๋ํ๋ ๊ฒ ๊ฐ์ต๋๋ค.
์ ์ด๊ฒ์ด ๋ซํ์ต๋๊น? ์ฌ์ ํ ๋งค์ฐ ๋ฌธ์ ์ ๋๋ค. ๋ด ์ค์๋ฅผ ์์ ํด๋ ์์ง ์ด๋ ค์์ด
์ด ๋ฌธ์ ๋ ์ฌ์ ํ ์ด๋ ค ์์ต๋๋ค.
๋๋ ๋ด ํ ๋๋ ํ ๋ฆฌ์์ ๋ด๊ฐ ์์ ํ๊ณ ์ถ์ (๊ทธ๋ ์ง ์์ผ๋ฉด ๊ณต๋ฐฑ์ด์๋) ์ฌ๋ณผ๋ฆญ ๋งํฌ๋ฅผ ๋ง๋๋์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์์์์ต๋๋ค.
Mac ๋๋ฌธ์ ๋๋ ์ด๊ฒ์๋ณด๊ณ ์์ต๋๋ค. ์คํฌ๋ฆฝํธ์ shebang ์ค์! # / usr / bin / env python ๋ฐ ๋ชจ๋ ์์
์ผ๋ก ์๋ ํธ์งํ์ฌ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํฉ๋๋ค. ๊ทธ๋ฌ๋ ๋ค๋ฅธ ์ฌ๋๋ค์ด ์ธ๊ธํ๋ฏ์ด ์ด๊ฒ์ ๊ฐ๊ฐ์ ์๋ก์ด env์ env์ ์ค์น๋ ์ถ๊ฐ ์คํฌ๋ฆฝํธ๋ก ์ํ๋์ด์ผํฉ๋๋ค.
์ด๊ฒ์ ๊ณต๊ฐ์ ์ด์ค์ผ์ดํํ๊ฑฐ๋ is_darwin ์ธ ๊ฒฝ์ฐ / usr / bin / env๋ฅผ ์ฌ์ฉํ๋ ์ฝ๋์์ ์ฝ๊ฒ ์์ ํด์ผํฉ๋๋ค. ๊ทธ๋ฌ๋ ๋๋ ์ด๊ฒ์ ๋ํด ๊ฑฐ์ ๋ฉ์ฒญ์ด์ด๊ธฐ ๋๋ฌธ์ ๋๋ ํ๋ฆด ์ ์์ต๋๋ค.
์ด๊ฒ์ Mac๋ง์์ํ ๊ฒ์ด ์๋๋ผ ๊ธฐ๋ณธ์ ์ผ๋ก * nix ์์คํ ์ ์ฌ์ / ๋์์ ์ผ๋ถ์ ๋๋ค.
shebang ์ค์ ์ฒซ ๋ฒ์งธ ์ธ์์๋ ๊ณต๋ฐฑ์ ์ฌ์ฉํ ์ ์์ผ๋ฉฐ (๋์ ๋ณ๋์ ์ธ์๋ก ๋ฐ๋) ์ผ๋ฐ์ ์ผ๋ก ์ด์ค์ผ์ดํ / ๋ฐ์ดํ๋ ํ์ฉ๋์ง ์์ต๋๋ค.
http://lists.gnu.org/archive/html/bug-bash/2008-05/msg00053.html
๋๋ ์๋์ฝ๋ค์์๋์ด ๋ฌธ์ ์ ๋ถ๋ชํ๋ค. ๋๋ผ์ด๋ธ ์ด๋ฆ์ ๊ณต๋ฐฑ์ด ์๊ธฐ ๋๋ฌธ์ Mac์์๋ง ๋ฐ์ํฉ๋๋ค.
# 611์ ์ํด ์์ ๋ ๊ฒ ๊ฐ์ต๋๋ค. ํ ๋ฆฌํ์คํธ์ ํจ๋ฅ์ ๋ํ ๋ฆฌ๋ทฐ๊ฐ ์์ต๋๊น?
๋๋ฌด ์ง์ฆ๋๊ฒ, ์ต๋ํ ๋นจ๋ฆฌ ์์ ํด์ผํฉ๋๋ค.
@Ivoz๊ฐ ๊ฒ์ ํ ๋งํฌ๋ฅผ ์ฐธ์กฐํ์ญ์์ค. ์ด๊ฒ์ Unix ์ ํ ์ฌํญ์ ๋๋ค. # 611์ shebang ์ค์์ ๋ฐฑ ์ฌ๋์ ์ด์ค์ผ์ดํ๋ฅผ ์ง์ํ๋ ๊ฒฝ์ฐ ์ผ๋ถ Unix ๋ณํ์์ ์๋ ํ ์ ์์ง๋ง ์ด๋ค ๋ฒ์ ์ด ์ํํ๋์ง ๋ช ํํ์ง ์์ต๋๋ค (์ฝ๋๋ ํ์ธํ์ง ์๊ณ ๋งน๋ชฉ์ ์ผ๋ก ์ํํฉ๋๋ค. ์ง์๋์ง ์๋ ๊ฒฝ์ฐ ๋์์ด๋ฉ๋๋ค ...)
์ด๊ฒ์ด ์ ๋์ค๊ฐ shebang ๋ผ์ธ์ ์ฒ๋ฆฌํ๋ ๋ฐฉ์์ ๊ฒฐ๊ณผ๋ผ๋ ๊ฒ์ ์ฌ์ค์ด์ง๋ง, # 611์ด ์ผ๋ถ ์์คํ ์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ณ ๋ค๋ฅธ ์์คํ ์ ๋ฌธ์ ๋ฅผ ์ ํ์ํค์ง ์์ผ๋ฉด ์ฌ์ ํ ๊ฐ์ ์ด ๋ ๊น์?
๊ทธ๊ฒ์ด ์ฌ์ค์ด๋ผ๋ฉด ๊ทธ๋ ์ต๋๋ค. ํ์ง๋ง ์ ๋ ์ ๋์ค ๊ฐ๋ฐ์๊ฐ ์๋๊ธฐ ๋๋ฌธ์ # 611์ ๋ํด ์ธ๊ธ ํ ์ ์์ต๋๋ค. ์ํฉ์ ์ ํ์ํค๋ ๊ฒฝ์ฐ๊ฐ์์ ์ ์์ต๋๋ค. ๋ ์ด์ ๋์ ๋๋ฆด ์ ์์ด์ ์ฃ์กํฉ๋๋ค.
๊ทธ๋ด ์ ์์ง. # 611์ ์๋ง๋ ๋ ์ ์คํ๊ฒ ์ดํด๋ณด๊ณ ํ๋ฆฐ์ง ์ผ์ด์ค์ ๋ํด ํ ์คํธํด์ผ ํ ๊ฒ์ ๋๋ค.
๋ ๋์ ๊ฒ์ Windows์์ ๋์ผํ ์ค๋ฅ๋ก ๊ธฐ๋ณธ Jenkins ๊ฒฝ๋ก์์ ์ค๋จ๋ฉ๋๋ค.
์น๋ช
์ : Python ์ธํฐํ๋ฆฌํฐ ๊ฒฝ๋ก์ ๊ณต๋ฐฑ์ด ํ์ฉ๋์ง ์์ต๋๋ค. C : Program Files (x86) Jenkinsshiningpandajobsc3418983virtualenvsd41d8cd9
์ด ๋ฌธ์ ์ ์ํฅ์ ๋ฐ์์ต๋๋ค. StackOverflow ์์ ์ฐพ์ ์ง์นจ #!/usr/bin/env python
์ค์ ํ์ฌ pip
์๋ํ๋๋ก ๊ด๋ฆฌํ์ต๋๋ค.
๊ทธ๋ฌ๋์ด ์๋ฃจ์ ์ด ๋ชจ๋ ๊ฒฝ์ฐ์ ์๋ํ๋์ง ํ์คํ์ง ์์ต๋๋ค. ์ด๋ค Python์ด ์คํ ๋ ์ง ํ์คํ์ง ์์ต๋๋ค.
์ค์น๋ ์คํฌ๋ฆฝํธ์ shebang์ "env python"์ผ๋ก ๋ณ๊ฒฝํ๋ฉด ํ์ฑํ ๋ virtualenv์์๋ง ์๋ํฉ๋๋ค. ์คํฌ๋ฆฝํธ๋ ๋ช ์ ์ ์ ๋ ๊ฒฝ๋ก๋ก ์์ฑ๋์ด ํญ์ venv์์ Python์ ์ฌ์ฉํ๋ฏ๋ก ์คํฌ๋ฆฝํธ์ ํ์ํ ์ค์น๋ ํจํค์ง๋ฅผ ์ฐพ์ต๋๋ค.
๋ด ์ ์์ ๋๊ตฐ๊ฐ (์๋ง๋์ด โโ๋ฌธ์ ์ ์ํฅ์๋ฐ๋ ์ฌ๋์ด์ง๋ง ์ต์ํ ๋ฌธ์ ๊ฐ ์๊ณ ํด๊ฒฐ ๋ฐฉ๋ฒ์ด์๋ ํ๋ซํผ์ ๋๊ตฐ๊ฐ)์ด ๋ค์๊ณผ ๊ฐ์ ๋ผ์ธ์ ๋ฐ๋ผ ํ์ธ์ ๊ตฌํํ๋ ํ ์์ฒญ์ ์ ๊ณตํ๋ ๊ฒ์ ๋๋ค.
์ถ๊ฐ ํ๋ซํผ ํ์ธ์ ์ถ๊ฐํ๊ธฐ ๋งํ๋ฉด ์ดํด ๋น์ฌ์๊ฐ ์ถ๊ฐ๋ก ์ถ๊ฐ ํ ์ ์์ต๋๋ค.
์ด์์ ์ผ๋ก๋ ํ๋ซํผ XXX๊ฐ ๊ณต๋ฐฑ์ด์๋ ๊ฒฝ๋ก๋ฅผ ์ง์ํ๋ ๋ฐฉ๋ฒ์ ํ์ธํ๋ ๋ฌธ์์ ๋ํ ๋งํฌ๊ฐ์๋ ์ฃผ์์ ํฌํจํ์ฌ ํฅํ ๊ด๋ฆฌ์๊ฐ ํ์ธํ ์ฐธ์กฐ๋ฅผ ๊ฐ๊ฒํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ๊ฐ์ธ์ ์ผ๋ก ์ด๋ค ์์ ์ด ์๋ํ๊ณ ์ด๋์ ์๋์ง ๋ช ํํ์ง ์์ต๋๋ค.
์ด๋ฌํ ํ๋ซํผ ๋ณ ๋ณํ์ /usr/bin/env
์ฌ์ฉํด์๋ ์๋ฉ๋๋ค. @merwok์ด ์ง์ ํ๋ฏ์ด, ๊ทธ ๊ฒฐ๊ณผ ํ๋์ด ๋ณ๊ฒฝ๋ฉ๋๋ค. shebang์ ํ๊ฒฝ์ ํ์ฑํํ๋ _without_ ์คํฌ๋ฆฝํธ๋ฅผ ์คํํ ์ ์๋๋ก ์๋์ ์ผ๋ก ์์ฑ๋์์ต๋๋ค.
๋์์ด ์์๋๋ก ์๋ํ๋์ง ํ์ธํ๊ธฐ ์ํด ๋ช ๊ฐ์ง ํ ์คํธ๋ฅผ ์ถ๊ฐํ๋ ๊ฒ๋ ๋งค์ฐ ์ ์ฉ ํ ๊ฒ์ ๋๋ค. ์ค์ ๋ก ํด๋น ํ๋ซํผ์์ ์คํํ์ง ์์ ๋ ํ๋ซํผ XXX์ ๋ํ ํ ์คํธ๋ฅผ ํ์ฉํฉ๋๋ค.
@pfmoore ๋ด๊ฐ ์ธ๊ธํ๋ฏ์ด ์ต๊ทผ์์ด ๋ฌธ์ ์ ์ํฅ์ ๋ฐ์ Linux Mint 18์ ์คํํ๊ณ ์์ต๋๋ค. Virtualenv์ ๊ธฐ์ฌํ ์ ์ด ์์ง๋ง ํ์ฌ Python Brasil์ ์์ผ๋ฉฐ ์คํ๋ฆฐํธ ์ ์ฉ ํ๋ฃจ๋ฅผ ๋ณด๋ผ ์์ ์ ๋๋ค. ์๋!
https://lists.gnu.org/archive/html/bug-bash/2008-05/msg00052.html ์ ๋ฐ๋ฅด๋ฉด ๋ฐฑ ์ฌ๋์ ๋๋ ๋ฐ์ดํ๋ก ์ด์ค์ผ์ดํํ๋ ๊ฒ์ ์๋ํ์ง ์์ต๋๋ค.
์คํ์ ์ผ๋ก ๋ฐฑ ์ฌ๋์ ๋ ๋ฐ์ดํ๋ฅผ ์ฌ์ฉํ ์ด์ค์ผ์ดํ๊ฐ OSX 10.11.6์์ ์๋ํ์ง ์์์ ํ์ธํ ์ ์์ต๋๋ค.
virtualenv๋ ์ปค๋์ ์์กดํ๋ shebangs๋ฅผ ๋ฉ๋ฆฌํด์ผํฉ๋๋ค. Linux, XNU (macOS ์ปค๋), FreeBSD, OpenBSD ๋ฐ NetBSD ์์ค ์ฝ๋๋ฅผ ํ์ธํ์ต๋๋ค. ๊ทธ๋ค ์ค ๋๊ตฌ๋ shebang์ ๊ณต๊ฐ์ ์ฒ๋ฆฌ ํ ์ โโ์์ต๋๋ค.
์์ ํ๊ธฐ ์ ์ ๊ณต๋ฐฑ์ ์ฌ์ฉํ์ง ๋ง์ญ์์ค.
Python 3์ ์๋ก์ด venv์ ๋ํ ๊ฒฝ๊ณ ๋ฅผ ์ถ๊ฐํ๋ ํจ์น๋ฅผ ์ ์ถํฉ๋๋ค. ์ด๋ virtualenv์ ๋งค์ฐ ์ ์ฌํ์ง๋ง @vsajip์ ์ํด ๊ฑฐ๋ถ๋์์ต๋๋ค : http://bugs.python.org/issue28446. ์ค์ ๋ก ๊ทธ๊ฒ์ ํ์ด์ฌ์ ์๋ชป์ด ์๋๋ผ ์ด์ ์ฒด์ ์ ์๋ชป์ ๋๋ค. ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์์ต๋๊น?
์ถ๊ฐ ๋ฐ์ดํฐ ํฌ์ธํธ๋ก ์์๋๋ก ๋ณด์ด๋ Windows์ ๋์์ ํ์ธํ์ญ์์ค.
```C : UsersVinay> python34python -m venv "Tempaaa bbb"
C : UsersVinay> "Tempaaa bbbScriptspip"--version
C : Tempaaa bbblibsite-packages (python 3.4)์ pip 6.0.8
C : UsersVinay> pyzzer -i "Tempaaa bbbScriptspip.exe"
๋ฐ์ฌ๊ธฐ๊ฐ ์์ต๋๋ค.
Shebang : #! "C : Tempaaa bbbScriptspython.exe"
์์นด์ด๋ธ ๋ด์ฉ :
__main__.py
C : UsersVinay> "Tempaaa bbbScriptspython"-m pip install -U pip
pip ๋ฒ์ 6.0.8์ ์ฌ์ฉํ๊ณ ์์ง๋ง ๋ฒ์ 9.0.1์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
'pip install --upgrade pip'๋ช
๋ น์ ํตํ ์
๊ทธ๋ ์ด๋๋ฅผ ๊ณ ๋ คํด์ผํฉ๋๋ค.
https://pypi.python.org/ ์์ pip ์์ง [...] / pip-9.0.1-py2.py3-none-any.whl # md5 = 297 [...]
์บ์ ๋ pip-9.0.1-py2.py3-none-any.whl ์ฌ์ฉ
์์ง ๋ ํจํค์ง ์ค์น : pip
๊ธฐ์กด ์ค์น ๋ฐ๊ฒฌ : pip 6.0.8
pip-6.0.8 ์ ๊ฑฐ :
pip-6.0.8์ ์ฑ๊ณต์ ์ผ๋ก ์ ๊ฑฐํ์ต๋๋ค.
pip-9.0.1์ ์ฑ๊ณต์ ์ผ๋ก ์ค์นํ์ต๋๋ค.
C : UsersVinay> "Tempaaa bbbScriptspip"--version
C : Tempaaa bbblibsite-packages (python 3.4)์ pip 9.0.1
```
Windows์ virtualenv ์คํฌ๋ฆฝํธ๋ distlib๊ฐ PC / launcher.c์์ ์์ฒด shebang ํ๋กํ ์ฝ์ ์ ์ํ๋ฏ๋ก ์๋ํฉ๋๋ค. ์๋ง๋ POSIX๋ ์ ๋ขฐํ ์์๋ ์ปค๋ ๋์ ์ฌ์ฉ์ ๊ณต๊ฐ shebang ํ์์ ๋น์ทํ ๊ฒ์ ๊ฐ์ง ์ ์์ต๋๋ค.
์ ๋ขฐํ ์์๋ ์ปค๋ ๋์ ์ฌ์ฉ์ ๊ณต๊ฐ shebang ํ์
์ Bash๊ฐ ์ด๊ฒ์ ํ ์ ์๋์ง ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. (์๋ฅผ ๋ค์ด) ์ปค๋ ๊ณต๊ฐ์ด๋ผ๊ณ ์๊ฐํ์ง ์์ต๋๋ค.
Shebang์ ์ ์ธ๋ถ์์ ์ฌ์ฉํ ์ ์์ด์ผํ๊ธฐ ๋๋ฌธ์ ์ปค๋ ๊ณต๊ฐ์์ ์ฒ๋ฆฌ๋ฉ๋๋ค.
๊ธฐ์ ์ ์ธ๋ถ ์ฌํญ:
UNIX ๊ณ์ด ์์คํ
(Linux, Mac, * BSD, ...)์์๋ fork () ๋ฐ exec ()๋ฅผ ํตํด ์ ํ๋ก๊ทธ๋จ์ด ์์ฑ๋ฉ๋๋ค. exec ()๋ ์ ํ๋ก๊ทธ๋จ์ ์คํํ๋ Windows์ CreateProcess ()์ ์ ์ฌํฉ๋๋ค. UNIX ๊ณ์ด ์์คํ
์์ exec ()๋ ๊ฒฐ๊ตญ ์์คํ
ํธ์ถ execve ()๋ฅผ ํธ์ถํฉ๋๋ค. ํ์์ ๊ธฐ๋ฅ์ ์ปค๋์์ ๊ตฌํ๋๋ฏ๋ก shebang ๊ตฌ๋ฌธ ๋ถ์์ ์ปค๋์์ ์ํ๋ฉ๋๋ค.
C ๋ผ์ด๋ธ๋ฌ๋ฆฌ์์ ๊ตฌํํ ์ ์๊ฑฐ๋ ์ ์ ์ฐ๊ฒฐ๋ ํ๋ก๊ทธ๋จ์ด๋ ์์คํ
ํธ์ถ์ ์ง์ ์ฌ์ฉํ๋ ํ๋ก๊ทธ๋จ (int 80 ๋๋ sysenter ๋ฑ์ ํตํด)์ ์๋ํ์ง ์์ต๋๋ค.
๊ฒฝ๋ก์ ๊ณต๋ฐฑ์ด์๋ ๊ฐ์ ํ๊ฒฝ์ ์์ฑ์ ๊ธ์งํด์ผ ํ ์๋ ์์ต๋๋ค. ์ด์จ๋ ์์๋๋ก ์๋ํ์ง ์์ต๋๋ค
Shebang์ ์ ์ธ๋ถ์์ ์ฌ์ฉํ ์ ์์ด์ผํ๊ธฐ ๋๋ฌธ์ ์ปค๋ ๊ณต๊ฐ์์ ์ฒ๋ฆฌ๋ฉ๋๋ค.
์,ํ์ง๋ง ์์คํ
ํธ์ถ์ด ENOEXEC
๋ฐํํ๋ฉด ์์ด ์์ฒด์ ์ผ๋ก ๊ตฌ๋ฌธ ๋ถ์์ ์ํ ํ ์ ์์ต๋๊น? ๋๋ ๊ทธ๊ฒ์ด ๋ฒ๋ ์ ์บ์ผ ์ ์๋ค๋ ๊ฒ์ ์๊ณ ์์ต๋๋ค ...
ํฅ๋ฏธ๋ก์ด ์ ๋ณด-Linux์ ์ปค๋ ๊ธฐ๋ฅ์ ์ค๋ Python ์ปค๋ฏธํฐ Martin von Lรถwis๊ฐ ์์ฑํ ๊ฒ์ผ๋ก ๋ณด์ ๋๋ค. :-)
์ด ํ์ด์ง๋ ๋ํ ํฅ๋ฏธ๋ก์ด ์ฝ๊ธฐ์์ต๋๋ค : http://www.in-ulm.de/~mascheck/various/shebang/
์,ํ์ง๋ง ์์คํ ํธ์ถ์ด
ENOEXEC
๋ฐํํ๋ฉด ์์ด ์์ฒด์ ์ผ๋ก ๊ตฌ๋ฌธ ๋ถ์์ ์ํ ํ ์ ์์ต๋๊น?
์๊ณผ ๊ธฐ๋ณธ ์ปค๋ ์ฌ์ด์ IMO ๋ค๋ฅธ ์๋ฏธ๋ ์ฌ์ฉ์์ ๊ฐ๋ฐ์์๊ฒ ๋ง์ ํผ๋์ ๊ฐ์ ธ์ฌ ๊ฒ์ ๋๋ค. ํ์ฌ ์ต์ํ bash ๋ฐ zsh๋ execve ()๊ฐ ์คํจ ํ ๋ ๊ตฌ๋ฌธ ๋ถ์์ ์ํํ์ง๋ง ๋ ๋์ ์ค๋ฅ๋ณด๊ณ ๋ฅผ ์ํด์๋ง ํด๋ฐฑ์ ์ ๊ณตํ์ง ์์ต๋๋ค.
ํฅ๋ฏธ๋ก์ด ์ ๋ณด-Linux์ ์ปค๋ ๊ธฐ๋ฅ์ ์ค๋ Python ์ปค๋ฏธํฐ Martin von Lรถwis๊ฐ ์์ฑํ ๊ฒ์ผ๋ก ๋ณด์ ๋๋ค. :-)
ํฅ๋ฏธ ๋กญ๊ตฐ์! ๋๋ ๊ทธ๊ฒ์ ๋์น ์ฑ์ง ๋ชปํ์ต๋๋ค :) ๋ํ ์ถ๊ฐ ์๋ฃ์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค. ์ปค๋ ์์ค ์ฝ๋๋ฅผ ์ฝ๋ ๊ฒ์ด ๊ฐ์ฅ ๋น ๋ฅธ ๋ฐฉ๋ฒ์ด์ง๋ง ์ด๋ฌํ ๋ฌธ์๋ ์ฌ์ ํ ๋์์ด๋ฉ๋๋ค.
@fbidu ์ ์์ด๋์ด์ ๋ํด :
๊ฒฝ๋ก์ ๊ณต๋ฐฑ์ด์๋ ๊ฐ์ ํ๊ฒฝ์ ์์ฑ์ ๊ธ์งํด์ผ ํ ์๋ ์์ต๋๋ค. ์ด์จ๋ ์์๋๋ก ์๋ํ์ง ์์ต๋๋ค
์ทจ์ฝํ ๊ฒฝ๋ก๊ฐ์๋ ๊ฐ์ ํ๊ฒฝ์ ๋ง๋๋ ๊ฒ์ ๊ฒฝ๋ก ์ฒ๋ฆฌ์ ์ฝ๋ ์ผ์ด์ค๋ฅผ ํ ์คํธํ๋ ๋ฐ ์ ์ฉํฉ๋๋ค. ์ด ์์์๋ ์ปค๋์ด ์ด๋ป๊ฒ ์์๋๋์ง ๋ณด์ฌ์ค๋๋ค. ๋ด ์๊ฐ์ ๋ด๊ฐ http://bugs.python.org/issue28446์ ๊ฒ์ ํ ํจ์น์ฒ๋ผ ๊ธ์งํ๋ ๋์ ๊ฒฝ๊ณ ๋ฅผ ์ถ๊ฐํ๋ ๊ฒ์ ๋๋ค.
# 994 "Pip์ด virtualenv ๊ฒฝ๋ก์ ๊ณต๊ฐ์ผ๋ก ์คํจ"ํ๋ ๊ฒ์ด์ด ๋ฌธ์ ์ ์ค๋ณต์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
https://github.com/pypa/virtualenv/issues/997#issuecomment -270681253์ "virtualenv๊ฐ ๊นจ์ง๊ธฐ ์ฌ์ด ์ปค๋ shebang ๊ตฌ๋ฌธ ๋ถ์์ผ๋ก ์์๋์์ต๋๋ค."์ ์ฃผ์์ ๋ฐ๋ณตํ๊ณ ์ถ์ต๋๋ค. ๊ทธ๋ฐ ์ ์ ์์ # 1014 "๊ฒฝ๋ก์ ์ด๋ชจํฐ์ฝ์ด์๋ ๋๋ ํ ๋ฆฌ์ ํธํ๋์ง ์์"์ ์ทจ์ฝํ ์ปค๋ shebang ๊ตฌ๋ฌธ ๋ถ์์ผ๋ก ์ธํด virtualenv๊ฐ ์์๋๋ ๋ ๋ค๋ฅธ ์์ ๋๋ค. ์ฌ์ค ๊ฒฝ๋ก์ ASCII๊ฐ ์๋ ๋ฌธ์๊ฐ ์์ผ๋ฉด ๋ฌธ์ ๊ฐ ๋ฐ์ํฉ๋๋ค.
๊นจ์ง๊ธฐ ์ฌ์ด ์ปค๋ shebang ๊ตฌ๋ฌธ ๋ถ์์ ์ธ ๊ฐ์ง ์ธก๋ฉด์ ๋ชจ๋ ํ๋์ ๋ฌธ์ ๋ก ์์งํ์ฌ ํ๋์ ์์ ์ด virtualenv ๊ฒฝ๋ก์์ ๊ณต๋ฐฑ, ๊ธธ์ด ๋ฐ ๋น ASCII ๋ฌธ์๋ฅผ ์ฒ๋ฆฌ ํ ์ โโ์๋์ง ํ์ ํ ์ ์์ต๋๊น? ๊ฐ์ฅ ์ค๋๋ ๋ฌธ์ ์ด๊ธฐ ๋๋ฌธ์์ด ๋ฌธ์ ๋ฅผ ์ถ์ฒํฉ๋๋ค.
์์ ์์ ์ํ๋ ๋์ a) ๊ณต๋ฐฑ์ด ์๊ฑฐ๋ b) ๋๋ฌด ๊ธธ๊ฑฐ๋ c) ๋น ASCII ๋ฌธ์๊ฐ์๋ ๊ฒฝ๋ก์ ํ๊ฒฝ์ ์์ฑํ๋ผ๋ ์์ฒญ์ ๋ฐ์์ ๋ virtualenv๊ฐ ๊ฒฝ๊ณ ๋ฅผ ์ถ๋ ฅํ๋ ๊ฒ์ด ์ข์ ๊ฒ ๊ฐ์ต๋๋ค. ์ผ๋ถ ๋ฌธ์์ ๋ฌธ์ฅ๋ ๋์์ด ๋ ๊ฒ์ ๋๋ค.
์ฌ์ค ๊ฒฝ๋ก์ ASCII๊ฐ ์๋ ๋ฌธ์๊ฐ ์์ผ๋ฉด ๋ฌธ์ ๊ฐ ๋ฐ์ํฉ๋๋ค.
# 1014์ ์ด์ ๋ ์ปค๋์ด ์๋ virtualenv์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. # 900์์ ๋งค์ฐ ์ ์ฌํ ๋ฌธ์ ๋ฅผ ์์ ํ๋ ํจ์น๊ฐ ์์ต๋๋ค.
์๋
ํ์ธ์,
์ด๊ฒ์ ๋งค์ฐ ์ฑ ๊ฐ์๊ณ ๊ฒ๋ณด๊ธฐ์ ๋๋ฌด๋ ๋จ์ํ ๊ฒ (์ ์ด๋ ๋จ์ํ ์์ธ)์ผ๋ก ์ธํด ์์ฒญ๋ ์๊ฐ ๋ญ๋น์
๋๋ค.
์ด๋ฆ์ ๋ฐ๊พธ๊ฑฐ๋ (๊ฐ๋ฅํ ๊ฒฝ์ฐ) ๋งํฌ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ์ด๋ป์ต๋๊น (๊ณต๋ฐฑ์์ด /virtualenvs/python3.5์ ๊ฐ์ ๋๋ ํ ๋ฆฌ๋ฅผ ๋ง๋ ๋ค์ ์๋ ๋๋ ํ ๋ฆฌ์ ๋ํ ์ํํธ ๋งํฌ๊ฐ๋๊ฒํ ๊น์?).
๊ณต๊ฐ์์ด /virtualenvs/python3.5์ ๊ฐ์ ๋๋ ํ ๋ฆฌ ์์ฑ
๋ค๋ฅธ ํ๋ก์ ํธ virtualenvwrapper๋ ๋งค์ฐ ์ ์ฌํ ์์ ์ ์ํํ์ต๋๋ค.
๊ฒ๋ณด๊ธฐ์๋ ๋๋ฌด ๋จ์ ํด ๋ณด์ ๋๋ค (์ ์ด๋ ๋จ์ํ ์์ธ).
๋ ๋ค ๊ฐ๋จํ์ง ์์ต๋๋ค. ์์ธ์ ์ปค๋ ๊ตฌ๋ฌธ ๋ถ์ ์ฝ๋์ ๊ด๋ จ์ด ์์ผ๋ฉฐ ํด๊ฒฐ ๋ฐฉ๋ฒ์๋ ์ฌ์ฉ์ ๊ณต๊ฐ ์ฒ๋ฆฌ๊ฐ ํ์ํฉ๋๋ค.
6 ๋ ํ์๋ ์ฌ์ ํ ๋ฌธ์ ์ ๋๊น?
์ด ๋ฌธ์ ๋ 2 ์ฃผ ์ ์ ๋๋ฅผ ๊ดด๋กญ ํ์ต๋๋ค. ์, ์ฌ์ ํ ๋ฌธ์ ์ ๋๋ค.
virtualenv ๋ฌธ์ ๊ฐ ์๋๋ผ Unix ๋ฌธ์ ์ด๋ฏ๋ก Unix ์ปค๋ ์ ํ์ด ์ ๊ฑฐ๋์ง ์๋ ํ "์์ "๋์ง ์์ ๊ฐ๋ฅ์ฑ์ด ์์ต๋๋ค.
์ฒซ ๋ฒ์งธ virtualenv ๋ฒ๊ทธ๋ virtualenv๊ฐ ์ผ์์ ์ผ๋ก virtualenv ์ฌ์ฉ์์๊ฒ ๋ฌธ์ ๋ฅผ ์ผ์ผํค๋ ์ ํ ์ฌํญ์ด ์์์๋ ๋ถ๊ตฌํ๊ณ ํน์ Unix ์ปค๋ ๊ธฐ๋ฅ์ ์ฌ์ฉํ์ฌ ์ ์คํ ํ์ผ์ ๊ตฌํํ๊ธฐ๋ก ๊ฒฐ์ ํ๋ค๋ ๊ฒ์ ๋๋ค. Virtualenv๋ ์ ์คํ ํ์ผ์ ๋ํด ๋ค๋ฅธ ๋ฉ์ปค๋์ฆ์ ์ฌ์ฉํ์ฌ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์์ต๋๋ค. ๋ ๋ฒ์งธ virtualenv ๋ฒ๊ทธ๋ ์ฒซ ๋ฒ์งธ ๋ฒ๊ทธ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ์ฌ์ฉ์๊ฐ ์ด๋ป๊ฒ virtualenv๋ฅผ ์ฌ์ฉํด์ผํ๋์ง์ ๋ํ ๋ฌธ์๊ฐ์๋ ๊ฒ์ ๋๋ค (ASCII ์ ์ฉ ๋ฌธ์๊ฐ ์๊ณ ๊ณต๋ฐฑ์ด์๋ ์งง์ ๊ฒฝ๋ก์์๋ง virtualenv๋ฅผ ์์ฑํ์ญ์์ค). ์ธ ๋ฒ์งธ virtualenv ๋ฒ๊ทธ๋ ์ฌ์ฉ์๊ฐ ์ฒซ ๋ฒ์งธ ๋ฒ๊ทธ๋ฅผ ํธ๋ฆฌ๊ฑฐํ๋ virtualenv ๊ฒฝ๋ก๋ฅผ ์ ํํ๊ณ ์ ์ฉํ ๊ฒฝ๊ณ ๋ฉ์์ง๋ฅผ ์ถ๋ ฅํ๋ ๊ฒฝ์ฐ๋ฅผ ๊ฐ์งํ๋ ๋ฉ์ปค๋์ฆ์ด ์๋ค๋ ๊ฒ์ ๋๋ค. virtualenv ๊ธฐ์ฌ์๊ฐ ์ํฉ์ ๊ฐ์ ํ๊ธฐ ์ํด ํ ์์๋ ์ผ์ด ๋ง์ด ์์ต๋๋ค.
@JDLH ์ฒซ ๋ฒ์งธ "๋ฒ๊ทธ"์ ๋ํด : virtualenv๊ฐ ์๋๋ผ distlib์ ์ํด ์ฒ๋ฆฌ๋์ง ์๊ณ https://bitbucket.org/pypa/distlib/pull-requests/31/์ ๊ตฌํ์ด
์ฒซ ๋ฒ์งธ virtualenv ๋ฒ๊ทธ๋ virtualenv๊ฐ ํน์ Unix ์ปค๋ ๊ธฐ๋ฅ์ ์ฌ์ฉํ์ฌ ์ ์คํ ํ์ผ์ ๊ตฌํํ๊ธฐ๋ก ์ ํํ๋ค๋ ๊ฒ์ ๋๋ค.
@JDLH ์ด๊ฒ์ virtualenv
์๋ง ๊ตญํ๋์ง ์์ต๋๋ค.- _all_ Unix ์คํฌ๋ฆฝํธ ํ์ผ (์ฆ, shebang ์ค์ด์๋ ํ์ผ)์์ด ์ปค๋ ๊ธฐ๋ฅ์ ์ฌ์ฉํฉ๋๋ค.-๊ทธ๋ฆฌ๊ณ virtualenv
(๋๋ ๊ทธ ๋ฐ์ ๋ค๋ฅธ ๊ฒ)์ด ์ฌ๋ฐ ๋ช
ํ ๋งํ ์ค๋๋ ฅ์๋ ์ด์ ๊ฐ ์์ต๋๋ค. ๊ธฐ์กด ๋ฉ์ปค๋์ฆ์ด ๋๋ฆฌ ์ฌ์ฉ๋๊ณ ์ ์ดํด ๋ ๋ ์์ ํ ์๋ก์ด ์คํฌ๋ฆฝํธ ๋์คํจ์น ๋ฐฉ๋ฒ์
๋๋ค. ์ธํฐํ๋ฆฌํฐ ๊ฒฝ๋ก ( virtualenv
๊ด๋ จ ์์)์ ๊ณต๋ฐฑ์ด์๋ ์คํฌ๋ฆฝํธ๋ฅผ ์ง์ ์์ฑํ๋ฉด ๋์ผํ ๋ฌธ์ ๊ฐ ๋ฐ์ํฉ๋๋ค.
virtualenv ๊ธฐ์ฌ์๊ฐ ์ํฉ์ ๊ฐ์ ํ๊ธฐ ์ํด ํ ์์๋ ์ผ์ด ๋ง์ด ์์ต๋๋ค.
๊ธฐ์ฌ์์ ์๊ฐ์ ๋ํ ์์ฒญ์ด ๋ง์ ๊ฒ์ ๋๋ค. ์ด ๋ฌธ์ ๋ ๊ณต๋ฐฑ์ด์๋ ๊ธด ๊ฒฝ๋ก / ๊ฒฝ๋ก๊ฐ ์ฌ์ฉ๋๋ ๋น๊ต์ ์ ์ ์์ ๊ฒฝ์ฐ์ ์ํฅ์์ค๋๋ค. ์ํฅ์๋ฐ๋ ์ฌ์ฉ์ ์ค ์ผ๋ถ๊ฐ ํ์ง ๋ฐ ๊ฒฝ๊ณ ๋ฉ์์ง์ ๋์์ด๋๋ ํจ์น๋ฅผ ์ ์ํจ์ผ๋ก์จ ๊ธฐ์ฌ์๋ค์ ๋์ธ ์์์ ๊ฒ์ ๋๊น? ๊ทธ๋ฅ ์์ด๋์ด.
@ yan12125 distlib
์ฌ์ฉํ๋ฉด ์ํ๋๋๋ก shebang ์ค์์ ์คํ ํ์ผ์ ์ง์ ํ ์ ์์ต๋๋ค. ๊ณต๋ฐฑ / ๊ธด ์ค์ ๋ํ ์ปค๋ ์ ํ์ ์ด์ ๋ฒ์ ๊ณผ์ ํธํ์ฑ์ผ๋ก ์ธํด Linux ๊ฐ๋ฐ์๊ฐ ์์ ํ์ง ๋ชปํ ์ ์์ต๋๋ค. shebang ์คํ ํ์ผ (Mozilla ์คํฌ๋ฆฝํธ ํดํน์ ํด๋นํ๋ ์ผ๋ฐํ)์ ๋ํ ์ฌ์ฉ์ ์ง์ ๋ฌธ์์ด์ ์ ๊ณต ํ ์ ์์ผ๋ฉฐ distlib
๋ ์คํฌ๋ฆฝํธ์ ์์ฑํด์ผํ๋ฏ๋ก distlib
์ฒ๋ผ ์คํ ํ ์ ์์ต๋๋ค
์ด๊ฒ์ virtualenv์๋ง ๊ตญํ๋์ง ์์ต๋๋ค.
@vsajip ์ด๊ฒ์ ์ง์ ํ ์ง์ ์ ๋๋ค. ๋ค๋ฅธ ์ํํธ์จ์ด๋ virtualenv๊ฐ ์ ํํ ๋์ผํ shebang ๋ฉ์ปค๋์ฆ์ ์ฌ์ฉํ์ง๋ง์ด ๋ฌธ์ ์ ์์ ์
virtualenv (๋๋ ๊ธฐํ)๊ฐ ์์ ํ ์๋ก์ด ์คํฌ๋ฆฝํธ ๋์คํจ์น ๋ฐฉ๋ฒ์ ์ฌ์ฐฝ์กฐ ํ ์ค๋๋ ฅ์๋ ์ด์ ๊ฐ ์์ต๋๋ค.
๋น์ ์ด ๋งํ๋ ๊ฒ์ ์๋ ์ ๊ฑธ์ณ์ด ๋ฌธ์ ๋ฅผ ๊ฒช์ ์ฌ๋๋ค์ด ๊ฒฝํ ํ ๋ฌธ์ ๊ฐ "๊ฐ๋ ฅํ"๊ฒ์ด ์๋๋ผ๋ ๊ฒ์ ๋๋ค. ๋๋ ๋ง์ ์ฌ๋๋ค์ด ์๋ ์ ๊ฑธ์ณ์ด ๋ฌธ์ ๋ฅผ ๋ฐ๊ฒฌํ๊ณ ๋ ผํํ๋ ์ด์ ๋ ๊ทธ๋ค์ด ๋ฌธ์ ๋ฅผ "๋งค๋ ฅ์ "์ด๋ผ๊ณ ์๊ฐํ๊ธฐ ๋๋ฌธ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ํ์คํ ๊ทธ๋ ์ต๋๋ค.
์ํฅ์๋ฐ๋ ์ฌ์ฉ์ ์ค ์ผ๋ถ๊ฐ ํ์ง ๋ฐ ๊ฒฝ๊ณ ๋ฉ์์ง์ ๋์์ด๋๋ ํจ์น๋ฅผ ์ ์ํจ์ผ๋ก์จ ๊ธฐ์ฌ์๋ค์ ๋์ธ ์์์ ๊ฒ์ ๋๊น? ๊ทธ๋ฅ ์์ด๋์ด.
์ ๋ virtualenv์์ ๋๋ถ๋ถ์ ์์ ์ ์ํํ๋ ์ถฉ์คํ ์ฌ๋๋ค๊ณผ์ด ๋ฌธ์ ๊ฐ ๊ทธ ์ํฅ์ ์ค์ด๊ธฐ ์ํด ๋ ธ๋ ฅํ ๋งํผ ์ถฉ๋ถํ ๋งค๋ ฅ์ ์ด๋ผ๊ณ โโ์๊ฐํ๋ ๋ฐฉ๋ฌธ์๋ฅผ ๋ชจ๋ ํฌํจํ๊ธฐ ์ํด "๊ธฐ์ฌ์"๋ผ๋ ๋จ์ด๋ฅผ ์ ํํ์ต๋๋ค. ๋ฌธ์ ๊ฐ ๋งค๋ ฅ์ ์ด๋ผ๊ณ โโ์๊ฐํ๋ ์ฐ๋ฆฌ๋ ํจ์น๋ฅผ ์ ๊ณตํด์ผํ๋ค๊ณ ๋งํ๋ ๊ฒ์ด ํ๋นํฉ๋๋ค.
virtualenv๋ฅผ ์ ์๋ ์ถฉ์คํ ์ฌ๋๋ค์ด ์ ๋งํ ์ ๊ทผ ๋ฐฉ์์ ์ ์ ํ ์ ์๋ค๋ฉด ๋์์ด ๋ ๊ฒ์
๋๋ค. virtualenv ~/my\ long\ path\ with\ spaces
๋ฅผ ์
๋ ฅํ๋ ์ฌ์ฉ์์๊ฒ ๊ฒฝ๊ณ ๋ฉ์์ง๋ฅผ ์ฝ์
ํ๋ ค๋ฉด ํด๋น ์ฝ๋๊ฐ ๊ฐ์ฅ ์ ํฉํ ์์น๋ ์ด๋์
๋๊น? ์ฒซ ๋ฒ์งธ ๊ธฐ์ฌ๋ฅผํ๋ ๋ฐฉ๋ฌธ์์ ์ฅ์ ๋ฌผ์ ์ ๊ฑฐํ๊ธฐ ์ํด ์ถฉ์คํ ์ฌ๋๋ค์ด ๊ณต์ ํ ์์๋ ๊ทธ๋ฌํ ํจ์น์ ๋ํ ๋ช
๋ฐฑํ์ง ์์ ์ ์ฝ์ด ์์ต๋๊น? ์ถฉ์คํ ์ฌ๋๋ค์ ๊ทธ๋ฌํ ํจ์น๋ฅผ ๋ฐ์๋ค์ด๋ ๊ฒ์ ๋ํด ์ญ์ฌ์ ์ธ ๋ฐ๋๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๊น? (๋ด ๋ง์, ๊ฒฝ๊ณ ๋ฉ์์ง๋ฅผ ์ถ๊ฐ ํ ์๊ฐ์ ์ฒ์์ผ๋ก ์๊ฐํ ์ฌ๋์ด ๋ ์๋ ์์ต๋๋ค. ์์ง ๋ฐ์ํ์ง ์์ ์ด์ ๊ฐ์์ ๊ฒ์
๋๋ค.)
๊ณต๋ฐฑ์ ํฌํจํ๊ณ ์์ ํ ์์๋ ์ ์๋ ค์ง ๊ฒฝ๋ก๊ฐ ์์ต๋๋ค. /Users/iulian/Library/Mobile Documents/com~apple~CloudDocs
. ๋ฐ๋ผ์ iCloud์์ virtualenv
๋ก ๊ด๋ฆฌ๋๋ ์ผ๋ถ ์คํฌ๋ฆฝํธ๋ฅผ ์ ์งํ๋ ค๋ ์ฌ๋์ ๋๊ตฌ๋์ด ๋ฌธ์ ์ ๋ถ๋ช ํ๋๋ค.
virtualenv๋ฅผ ์ ์๋ ์ถฉ์คํ ์ฌ๋๋ค์ด ์ ๋งํ ์ ๊ทผ ๋ฐฉ์์ ์ ์ ํ ์ ์๋ค๋ฉด ๋์์ด ๋ ๊ฒ์ ๋๋ค.
๊ธ์, ์ฐ๋ฆฌ๊ฐ ์๊ณ ์๋ค๋ฉด, ์ฐ๋ฆฌ๊ฐ ๊ทธ๋ ๊ฒ ํ ๊ฒ์ ๋ํ ๋นํ์ ์์ ๊ฐ์ํ ๋ ์ฐ๋ฆฌ๋ ์๋ง๋์ด ๋ฌธ์ ๋ฅผ ๋๋ฌด ์ค๋ซ๋์ ํด๊ฒฐ๋์ง ์์ ์ฑ๋ก ๋์ง ์์์ ๊ฒ์ ๋๋ค :-(
virtualenv ~ / my long path๋ฅผ ๊ณต๋ฐฑ์ผ๋ก ์ ๋ ฅํ๋ ์ฌ์ฉ์์๊ฒ ๊ฒฝ๊ณ ๋ฉ์์ง๋ฅผ ์ฝ์ ํ๋ ค๋ฉด ํด๋น ์ฝ๋๊ฐ ๊ฐ์ฅ ์ข์ ์์น๋ ์ด๋์ ๋๊น?
์ธ์ ๊ตฌ๋ฌธ ๋ถ์ ์ฝ๋๋ฅผ ์ดํด๋ณด๊ณ ๊ฒฝ๋ก๊ฐ ๊ฒฐ์ ๋๋ฉด ๊ฒ์ฌ๋ฅผ ์ถ๊ฐํ์ฌ ์์ํ ์ ์์ต๋๋ค.
์ฒซ ๋ฒ์งธ ๊ธฐ์ฌ๋ฅผํ๋ ๋ฐฉ๋ฌธ์์ ์ฅ์ ๋ฌผ์ ์ ๊ฑฐํ๊ธฐ ์ํด ์ถฉ์คํ ์ฌ๋๋ค์ด ๊ณต์ ํ ์์๋ ๊ทธ๋ฌํ ํจ์น์ ๋ํ ๋ช ๋ฐฑํ์ง ์์ ์ ์ฝ์ด ์์ต๋๊น?
์ฌ๊ธฐ์์ ๋ฌธ์ ๋ชฉ๋ก์ ๊ฒ์ํ์ฌ์ด ๋ฌธ์ ๋ฐ ๊ธฐํ ๋ฌธ์ ์ ๋ํ ๋ค์ํ ์๊ฒฌ์ ์๋ ๊ฐ ๊ฒ์ํ์ฌ ์ฐพ์ ์ ์์ง๋ง ๋จผ์ ๊ฒฝ๋ก๊ฐ ์๋ ํ ๋ ๊ฒฝ๋ก๋ฅผ ๊ฑฐ๋ถ ํ ํ์๊ฐ ์์ต๋๋ค. ์ฆ, OS์ ์ ํ ์ฌํญ์ ํ์ ํด์ผํฉ๋๋ค. ๋ถ๊ณผํฉ๋๋ค. ์ด๋ ์์คํ ๋ง๋ค ํฌ๊ฒ ๋ค๋ฆ ๋๋ค. Windows๋ ๊ณต๋ฐฑ๊ณผ ๊ธด ํ์ผ ์ด๋ฆ์ ํ์ฉํ๊ณ , ์ผ๋ถ Unix ์์คํ ์ ๊ณต๋ฐฑ์ ํ์ฉํ๊ณ , ์ผ๋ถ๋ ์ธ์ฉ ํ ๊ณต๋ฐฑ์ด์๋ ๊ฒฝ๋ก๊ฐ ํ์ํ๊ณ , ์ผ๋ถ๋ ๋งค์ฐ ์งง์ ๊ธธ์ด ์ ํ (32 ์?), ์ผ๋ถ๋ ๋ ๊ธธ๋ค. ... ๋ง์ ์ ํ ์ฌํญ์ด ์ ๋ฌธ์ํ๋์ด ์์ง ์์ผ๋ฉฐ ๋งค์ฐ ์ ์ต๋๋ค. ๊ธฐ์ฌ์๋ ์ฌ์ฉ ๊ฐ๋ฅํ ๋ฌธ์๋ฅผ ๋ณด์ํ๊ธฐ์ ์ถฉ๋ถํ ๋ชจ๋ ๊ฐ๋ฅ์ฑ์ ํ ์คํธ ํ ์์๋ ์ถฉ๋ถํ ์์คํ ์ ์ก์ธ์ค ํ ์ ์์ต๋๋ค.
์ถฉ์คํ ์ฌ๋๋ค์ ๊ทธ๋ฌํ ํจ์น๋ฅผ ๋ฐ์๋ค์ด๋ ๊ฒ์ ๋ํด ์ญ์ฌ์ ์ธ ๋ฐ๋๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๊น?
์๋์, "์ฒซ๋์ ์๊ฐํ๋ ๊ฒ๋ง ํผ ๊ฐ๋จํ๋ค๊ณ ๊ฐ์ ํ์ง ๋ง๊ณ ์ฐ๋ฆฌ๊ฐ ์ง์ํด์ผํ๋ ๋ค์ํ (๋๋ก๋ ๊ฝค ๋ชจํธํ) ์์คํ ์ ๋ชจ๋ ๋ฌด์ํ์ง ๋ง์ญ์์ค".
๋๊ตฐ๊ฐ๊ฐ ์ด๊ฒ์ ์ฐ๋ฅด๊ณ ์ถ์ดํ๊ณ -๋ด๊ฐ ๊ฐ์ธ์ ์ผ๋ก "์ฒซ ๋ฒ์งธ ๊ธฐ์ฌ"๋ก ์ถ์ฒํ๋ ๊ฒ์ด ์๋๋ผ๋ ๊ฒ์ ์๊ณ ์์ด์ผํ๋ค๋ฉด, ๊ทธ๋ค์ ๋ค์ํ ์ด์์์ ์ฌ์ฉ ๊ฐ๋ฅํ ๋ชจ๋ ์ญ์ฌ๋ฅผ ์ฝ๋ ๊ฒ์ผ๋ก ์์ํด์ผํฉ๋๋ค (์ผ๋ถ ์ด๊ฒ๊ณผ ์ฐ๊ฒฐ๋์ด ์๊ณ , ๋ค๋ฅธ ๊ฒ๋ค์ ์๋ง๋ ๊ทธ๋ ์ง ์์ ๊ฒ์ ๋๋ค. ์ผ๋ถ๋ ์๋ง๋ pip ํธ๋์ปค์ ์ด์ฉ๋ฉด distlib ๋๋ setuptools ํธ๋์ปค์์์ ๊ฒ์ ๋๋ค.) ๊ทธ๋ฆฌ๊ณ ๋ค์ํ OS์ ์ํด ๋ถ๊ณผ ๋ ์ ์ฝ์ ์๋ก์ด PR์ ์์ฝํฉ๋๋ค. "์ด๋ฌํ ์กฐ๊ฑด์ด ์ถฉ์กฑ๋์ง ์์ผ๋ฉด virtualenv์์ ์ฌ์ฉํ๋ shebang ํค๋๊ฐ ์์๋๋ก ์๋ํ์ง ์์ผ๋ฏ๋ก virtualenv๋ ๋ช ์๋ ์กฐ๊ฑด๊ณผ ์ผ์นํ์ง ์๋ ๋๋ ํ ๋ฆฌ์์ ํ๊ฒฝ ์์ฑ์ ์ง์ํ์ง ์์ต๋๋ค"๋ผ๋ ๋ฌธ์ ํจ์น๋ก ์ ์ํ์ญ์์ค. PR์๋ ๋ฌธ์ํ ๋ ์กฐ๊ฑด์ด ์ถฉ์กฑ๋์ง ์์ ๊ฒฝ์ฐ ๊ฒฝ๊ณ ํ๋ ์ฝ๋ ๋ณ๊ฒฝ์ด ํฌํจ๋๊ฑฐ๋ ํฅํ ์์ ์ผ๋ก์ด๋ฅผ ์ ์ ํ ์ ์์ต๋๋ค (๋ด๊ฐ ๊ธฐ์ตํ๋ ๋ฐ์ ๊ฐ์ด ์์คํ ์ธ๋ถ ์ ๋ณด๋ฅผ ์ ํํ ์กฐ์ฌํ์ฌ ์ ํ์ด ์ ์ฉ๋๋ ๊ฒ์ ์ ์ ์์ต๋๋ค. "Ubuntu ํจ์น ๋ ์ปค๋๋ก "...). ๊ฐ์ธ์ ์ผ๋ก ๋๋ ์ผ์ด ์คํจ ํ ๊ฒ์ผ๋ก ์๋ ค์ง ๊ฒฝ์ฐ์๋ง ํ๋๊ทธ๋ฅผ ์ง์ ํ๊ณ ํ์คํ์ง ์์ ๊ฒฝ์ฐ ์นจ๋ฌตํ๋ค๋ ๊ฒฝ๊ณ ๋ก ๊ด์ฐฎ์ ๊ฒ์ ๋๋ค. ํ์ง๋ง์ด ๋จ๊ณ์์๋ ๋ฌธ์ ์ ์ฉ ํจ์น๋ก๋ ๊ด์ฐฎ์ต๋๋ค.
๊ทธ๋ฐ ๋ค์ ๋ค๋ฃจ๋ ์์คํ ์ ์ก์ธ์ค ํ ์์๋ ์ฌ๋๋ค๋ก๋ถํฐ ํจ์น์ ๋ํ ๊ฒํ ๋ฅผ ๋ฐ์์ผํฉ๋๋ค. ์์ ์ธ๊ธํ๋ฏ์ด ํต์ฌ ๊ฐ๋ฐ์๋ FreeBSD, OpenBSD ๋๋ Solaris๋ฅผ ์ฌ์ฉํ์ง ์๊ธฐ ๋๋ฌธ์ ์ฌ๊ธฐ์ ์ค์ ๋ก ๋์์ ์ค ์ ์์ต๋๋ค. ๋๋ ...
๋ถ๋ถ ์์ ์ ์ํํ๊ณ ๋ฌธ์์ OSX์ ๋ํ ๊ฒฝ๊ณ ๋ง ์ถ๊ฐ ํ PR์ ๋ง๋ค ์๋ ์์ต๋๋ค. ์ด๊ฒ์ด์ด ๋ฌธ์ ์ ๋ํ ๋ถ๋ง์ ๋ฉ์ถ ์ ์์์ง๋ ๋ชจ๋ฅด๊ฒ ์ง๋ง (๊ฐ์ฅ ์์ฃผ ๋ฐ์ํ๋ ์์คํ ์ด ๋ฌด์์ธ์ง ๋ชจ๋ฅด๊ฒ ์ต๋๋ค) ์ถฉ๋ถํ ์๋ ์์ต๋๋ค. ์๋ง๋ OSX๋ฅผ ์ฌ์ฉํ๋ ํต์ฌ ๊ฐ๋ฐ์ ์ค ํ ๋ช ์ด์ด๋ฅผ ๋ณํฉํด๋ ๊ด์ฐฎ์ ๊ฒ์ ๋๋ค.
๋์์ด ๋๋์?
์ดํด๊ฐ ์๋๋ ๋ถ๋ถ์ด ์์ง๋ง (์ : bin/pip
#!/bin/sh
"/my/long path/with spaces/pythonx.y" "/path/to/my project/with spaces/venv/bin/real-pip" "$@"
๊ทธ๋ฐ ๋ค์ ํ์ฌ pip
์คํฌ๋ฆฝํธ๋ฅผ real-pip
? ์ ์ฐ๋ฆฌ๊ฐ shebang์ ์ง์ ์ฌ์ฉ ํด์ผํ๋์ง ๋ชจ๋ฅด๊ฒ ์ต๋๋ค.
@ raxod502 ๋๋ ์ด๊ฒ์ด Windows์์ ์๋ํ์ง ์์ ๊ฒ์ด๋ผ๋ ๊ฒ์ ์๊ณ ์๋ค๊ณ ๊ฐ์ ํฉ๋๋ค. ๋ํ ๋ ๋ฒ์งธ ์ค์ ํ์ํ "์ ์์ ์ธ"์ฃผ๋ฌธ์ด ๋น์ ์ด์ฃผ๋ ๊ฒ๋ณด๋ค ๋ ๋ณต์กํ๋ค๊ณ ์๊ฐํฉ๋๋ค (๊ฐ์ธ์ ์ผ๋ก ์ด์ ๋ ๋ชจ๋ฅด๊ฒ ์ง๋ง). ์น ๊ฒ์์ ํตํด ์ ์ ํ ์ ๊ทผ ๋ฐฉ์์ ์ฐพ์ ์ ์์ต๋๋ค. ์ ๊ทผ ๋ฐฉ์์ผ๋ก "
๋๋ $
๋ฌธ์๊ฐ์๋ ๊ฒฝ๋ก์ ๋ํด ์ด๋ค ์ผ์ด ๋ฐ์ํฉ๋๊น?
์ด๋ฌํ ์ข ๋ฅ์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์๋ค๊ณ ๊ฐ์ ํ๋ฉด ๋ค์ ๋จ๊ณ๋ PR (์์ ์๊ฒฌ์ ๋ฐ๋ผ)์ ์ ์ถํ๋ ๊ฒ์ด๋ฉฐ ์ด์ ๋ํ ์ธ๋ถ ์ฌํญ์ ๋ํด ํ ๋ก ํ ์ ์์ต๋๋ค. ๊ด๋ จ๋ Unix์์ ์์ ํ๋ virtualenv ์ฝ์ด ์ปค๋ฏธํฐ ์ค ํ๋ ์ด์์ ํ๋ณดํด์ผํฉ๋๋ค. Windows ์ฌ์ฉ์๋ก์ ์ ๋ ์ด์ ๊ฐ์ Unix ๊ด๋ จ PR์ ๋ณํฉํ์ง ์์ ๊ฒ์ ๋๋ค.
๋ฟก๋ฟก
@ raxod502 ๊ฐ ์ ์ํ ์๋ฃจ์
์ .bat ์คํฌ๋ฆฝํธ ํ์ผ afaik?
@gst ์งง์ ๋๋ต, ์๋์. ๊ธด ๋๋ต์ http://paul-moores-notes.readthedocs.io/en/latest/wrappers.html์ ๋๋ค . ์๋ ๋์์ด ์ ์ ๋ํด ๋ง์ ํ ๋ก ์ด ์์๊ณ ๋๊ตฐ๊ฐ๊ฐ ๋ค๋ฅธ ์๋ฃจ์ ์ ์ ์ ํ ๋๋ง๋ค exe ๋ํผ, ๋ฌธ์ ๊ฐ ์์ต๋๋ค.
์ด ๊ฒฝ์ฐ์ด ๋ฌธ์ ๋ Windows์๋ ์กด์ฌํ์ง ์์ต๋๋ค . ๋ฐ๋ผ์ Windows ํ๊ฒฝ์์ ์๋ฌด๊ฒ๋ ๋ณ๊ฒฝํ ์ด์ ๊ฐ ์ ํ ์์ต๋๋ค. ๋ชจ๋ ๋ณ๊ฒฝ ์ Unix๋ก๋ง ์ ํ
์ข์ ๋๋ต์ ์ํด thx :)
exe ๋ํผ ์ธ์๋ ๋ฌธ์ ๊ฐ์์์ต๋๋ค.
๊ฐ์ธ์ ์ผ๋ก ๋๋ ๊ทธ๊ฒ๊ณผ ํจ๊ป ์ด ์ ์์ต๋๋ค (ํ์ํ๋ค๋ฉด).
๊ธด ๊ฒฝ๋ก์ ๊ณต๋ฐฑ์ด์๋ ๊ฒฝ๋ก๋ฅผ ์ฒ๋ฆฌํ๊ธฐ ์ํด distlib
์ ์
๋ฐ์ดํธํ์ต๋๋ค. Harald Nordgren์ ํจ์น๋ฅผ ์ง์ ์ฌ์ฉํ์ง๋ ์์์ง๋ง (๋ช ๊ฐ์ง ๋ฌธ์ ๊ฐ์์์ต๋๋ค-์๋ฅผ ๋ค์ด ํ
์คํธ๊ฐ ์์ ์) ์ ๊ทผ ๋ฐฉ์์ ๋์ผํฉ๋๋ค-์คํ ํ์ผ๋ก '/ bin / sh'๋ฅผ ์ฌ์ฉํฉ๋๋ค. pip
/ virtualenv
๊ด๋ฆฌ์๋ ํ์ฌ ๋ฒ์ ์ distlib
์ ์ฅ์๋ฅผ ๋ก์ปฌ๋ก ๋ฒค๋ ๋ง ํ ํ ํ
์คํธ ํ ์ ์์ต๋๋ค.
pip์ ๊ฐ๋ฐ ๋ฒ์ ์ ์ด์ distlib์ ์ต์ ๋ฒ์ ์ ๊ณต๊ธํฉ๋๋ค. ์ฆ, pip๋ ์ด์ ๋๋ ํฐ๋ฆฌ ์ด๋ฆ์ ๊ณต๋ฐฑ์ ์ ์ฒ๋ฆฌํฉ๋๋ค.
๋ด๊ฐ ์ดํดํ๋ ๋ฐ์ ๊ฐ์ด, pip์ ๋ค์ ๋ฆด๋ฆฌ์ค์ virtualenv ๋ฆด๋ฆฌ์ค๊ฐ ๋ง๋ค์ด์ง๋ฉด์ด ๋ฌธ์ ๊ฐ ํด๊ฒฐ ๋ ๊ฒ์ ๋๋ค. ์์ฑ ๋ ๋ชจ๋ ์๋ก์ด virtualenv๋ pip์ ์ํด ์ค์น๋ ๋ฐ์ด๋๋ฆฌ์ ๋ง์ฐฌ๊ฐ์ง๋ก ๊ฒฝ๋ก์ ๊ณต๊ฐ์ ์ง์ํฉ๋๋ค (setuptools์ ๊ฐ์ ์ผ๋ถ ๊ธฐ๋ฐํ ๊ฒฝ์ฐ ์ ์ธ). 'pip์ ์ํด ์ง์ ์ค์น๋์ง ์์ ๋ํผ).
์ ๋ gvfs๋ฅผ ์ฌ์ฉํ์ฌ ์ฌ์ฉ์ ๊ณต๊ฐ์ ์ผ๋ฐ ๊ณต์ ๋ฅผ ๋ง์ดํธํ๊ณ gvfs์ ์ํด ์์ฑ ๋ ๋ง์ดํธ ๊ฒฝ๋ก์ ํํฌ๋ก ์ธํด virtualenv / pip ๋ฑ์ ์ฐพ๊ธฐ ์์ํ์ต๋๋ค.
๊ฒฝ๋ก์๋ ๊ณต๊ฐ์ด ์์ง๋ง virtualenv / pip ๋ฑ์ ๋ฌด๋ฆ์ ๊ฐ์ ธ๊ฐ๋ ๋ค๋ฅธ ๋ง์ ๊ฒ๋ค์ด
/run/user/1000/gvfs/smb-share:server=bolt,share=eng/projects/msp/mrfbus/land
๋ด๊ฐ ๋ณผ ์์๋ ํ ํ์ฌ gvfs์๋ ์์ฑ ๋ ๋ง์ดํธ ์ง์ ์ ๊ฒฝ๋ก์์ ๊ตฌ๋์ ์ ๋ฐฉ์งํ๋ ์ต์ ์ด ์์ต๋๋ค. ๋ด ์ ์ผํ ํด๊ฒฐ ๋ฐฉ๋ฒ์ gvfs ๋ง์ดํธ์ virtualenv๋ฅผ ์์ฑํ์ง ์๋ ๊ฒ์ ๋๋ค.
@pradyunsg ๋ค์ pip ๋ฆด๋ฆฌ์ค์ ๋ํ ์ผ์ ์ด ์์ต๋๊น? ๋ง์ง๋ง ๊ฒ์ 1 ๋ ์ด ๋์๊ณ ,์ด ์ ๋ง ๊ฐ๋จํ ์์ ์ด virtualenv์ ๋ํ๋ ๋๊น์ง ๋๋ฌด ์ค๋ ๊ธฐ๋ค๋ฆฌ๋ ๊ฒ์ ์ด๋ฆฌ์์ ๊ฒ ๊ฐ์ต๋๋ค.
์๋ ํ์ธ์ @ raxod502!
๋ค, ๊ณง ๊บผ๋ด๊ณ ์ถ์ต๋๋ค. ๋ฌธ์ ๋ PEP 518์ ์ถ์ ํ ๊ฐ๋ฐ์ ์๊ฐ์ด ๋ถ์กฑํ๋ค๋ ๊ฒ์ ๋๋ค. PEP 518์ด์๋ ํ 10์ด์์ ์๋ ์์ง๋ง, ๊ณํ์ ์ ํ ์๊ฐ์ ์ฐพ๋ ๋ฐ ๋ฌ๋ ค ์์ต๋๋ค.
์ด ๋ฒ๊ทธ๋ 2018-04-14์ ์ถ์ ๋ pip 10.0.0์ ์ํด ์์ ๋ ๊ฒ์ผ๋ก ๋ณด์ ๋๋ค. ์๋ฐํ ์์ ์ ๋งํ๋ ๊ฒ์์ด์๋ค distlib 0.2.6 ์์ ๊ณผ PIP์ vendoredํ๊ณ , PR4819 ์ฒซ ๋ฒ์งธ ์ฃผ์ฌ์ 10.0.0b2 ๋ฑ์ฅ ๋ 10 ์ 2017 ๋ .
๊ธฐ๋ณธ ์์ ์ฌํญ์ distlib์ ์ปค๋ฐ 9285cca์์๋ ๊ฒ์ผ๋ก ๋ณด์
๋๋ค . vsajip์ด 2017 ๋
5 ์ 28 ์ผ์ ์ฌ๊ธฐ์์ ์ธ๊ธ ํ๋ฏ์ด ์ ๊ทผ ๋ฐฉ์์ Harald Nordgren์ ์์ด๋์ด๋ฅผ ๋ฐ๋ฆ
๋๋ค. ๊ฐ๋จํ ๊ฒฝ์ฐ (OS๊ฐ Posix๊ฐ ์๋๊ฑฐ๋ ๊ฒฝ๋ก๊ฐ ์ถฉ๋ถํ ์งง๊ณ ๊ณต๋ฐฑ์ด ์์)์๋ ๊ณ์ ๋จ์ shebang์ ์ฌ์ฉํ์ง๋ง ๋จ์ํ์ง ์์ ๊ฒฝ์ฐ์๋ ์ฌ์ฉํฉ๋๋ค. ๋์ /bin/sh exec
๋ช
๋ น์ ์ฌ์ฉํ์ฌ ๊ธธ๊ฑฐ๋ ๊ณต๋ฐฑ์ด ํฌํจ ๋ ๊ฒฝ๋ก๋ฅผ ์ฒ๋ฆฌ ํ ์ โโ์์ต๋๋ค.
Mac OS X 10.11.6์์ ๋น ๋ฅธ ํ
์คํธ๋ฅผ ์ํํ์ฌ ๊ณต๋ฐฑ์ด์๋ ๊ธด ๊ฒฝ๋ก์ ๊ฐ์ ํ๊ฒฝ์ ๋ง๋ ๋ค์ pip3 install
๋ฅผ ํธ์ถํ๋ฉด ์๋ํ๋ ๊ฒ ๊ฐ์ต๋๋ค. ์ด ๋ฒ๊ทธ์ ์ค๋ช
๋ ๋ชจ๋ ๊ฒ์ด ๋ชจ๋ OS์์ ์์ ๋์๋์ง ์์ ํ ํ
์คํธํ์ง๋ ์์์ต๋๋ค.
Ubuntu 16.04.5 LTS๋ฅผ ์ฌ์ฉํ์ฌ pip๋ฅผ 9.0.1์์ 18.1๋ก ์ ๊ทธ๋ ์ด๋ํ๊ณ (๋ฌ๋ ฅ ๊ธฐ๋ฐ ๋ฒ์ ์ผ๋ก ์ ํ) virtualenv๋ฅผ 15.0.1์์ 16.0.0์ผ๋ก ์ ๊ทธ๋ ์ด๋ ํ ํ ๋ฌธ์ ๊ฐ ์ฌ๋ผ์ง ๊ฒ ๊ฐ์ต๋๋ค.
sudo pip install --upgrade pip
sudo pip install --upgrade virtualenv
์ด์ ๋ชจ๋ pip
๋ช
๋ น์ ๋ฃจํธ ๊ฒฝ๋ก์ ๊ณต๋ฐฑ์ด์๋ virtualenv์์ ์ ๋๋ก ์๋ํฉ๋๋ค.
@JLDH ๋ฐ @gandie ์์ ํ์ธ ํ๋๋ก์ด ๋ฌธ์ ๋ ์ด์ ํด๊ฒฐ๋์์ต๋๋ค. ์ต์ ๋ฒ์ ์ pip ๋ฐ virtualenv๋ virtualenv์ ๋ฃจํธ์ ๊ณต๋ฐฑ์ด์์ ๋ ์ ๋๋ก ์๋ํฉ๋๋ค.
์ด๊ฑฐ ๋ซ์! ๊ธฐ๋ณธ ์์ @vsajip์ ๋ํ ์์ ์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค!
์ด์ ํฐ์ผ :ํ์ง๋ง ์๋๋ ์ด์
@rirl , ๋ซํ ์ด์์ ๋๊ธ์ ๋จ๊ธฐ๋ ๊ฒ์ ์์ด๋์ด์ ๊ด์ฌ์ ๋ ๊ฐ๋ฅ์ฑ์ด ๋ฎ์ต๋๋ค. ๋ฌธ์ ์ ํด๊ฒฐ์ฑ ์ด ์ฃผ์ด์ก์ต๋๋ค. ์ด ์๋ฃจ์ ์ ์ฌ์ฉํ๋ ์๋ก์ด virtulenv๊ฐ ๋ค๋ฅธ ์์ ์ ์ํํจ์ผ๋ก์จ ๊ฐ์ ๋ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ๋ค๋ฉด ์๋ก์ด ๋ณ๊ฒฝ์ ์ ์ํ๋ ๊ฒ์ ๋๋ค. ์๋ก์ด ์ด์๋ฅผ ์ฌ๋ ๊ฒ์ ๊ณ ๋ คํ๊ณ , ์ด๋ค ๋ณํ๊ฐ ์ผ์ด๋์ผํ๋ค๊ณ ์๊ฐํ๋์ง ๋งํ๊ณ , ์ ๋ณํ๊ฐ ์๋ก์ด virtualenv๋ณด๋ค ๋์์ง์ ๋ํ ์ฌ๋ก๋ฅผ ๋ง๋์ญ์์ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
@JLDH ๋ฐ @gandie ์์ ํ์ธ ํ๋๋ก์ด ๋ฌธ์ ๋ ์ด์ ํด๊ฒฐ๋์์ต๋๋ค. ์ต์ ๋ฒ์ ์ pip ๋ฐ virtualenv๋ virtualenv์ ๋ฃจํธ์ ๊ณต๋ฐฑ์ด์์ ๋ ์ ๋๋ก ์๋ํฉ๋๋ค.
์ด๊ฑฐ ๋ซ์! ๊ธฐ๋ณธ ์์ @vsajip์ ๋ํ ์์ ์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค!