pip๊ฐ OS Python์ด ์ค์น๋ ์์คํ
์ ์ค์น๋๋ฉด ํ์ฌ pip install foo
์ ํ์ผ ๊ถํ์ด ์๊ธฐ ๋๋ฌธ์ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ ๋ฌธ์ ๊ฐ ์์ต๋๋ค. ์ด๋ก ์ธํด ์ฌ๋๋ค์ ์์คํ
Python์ ์ ์ญ์ ์ผ๋ก ์ค์น๋๋ sudo pip install foo
๋ฅผ ๋์ ์คํํ๊ฒ ๋ฉ๋๋ค. ์ด๊ฒ์ ์ฌ๋๋ค์ด ์์คํ
ํจํค์ง ๊ด๋ฆฌ์๋ฅผ ์ฌ์ฉํด์ผ ํ ๋ ์์คํ
์์ค ํจํค์ง๋ฅผ ๊ด๋ฆฌํ๊ธฐ ์ํด pip๋ฅผ ์ฌ์ฉํ๋ ๋ฌธ์ ๋ฅผ ๋ง๋ญ๋๋ค.
๊ทธ๋์ ๋ด ์๋๋ pip๊ฐ ๊ธฐ๋ณธ์ ์ผ๋ก --user๋ก ์ค์ ๋์ด์ผ ํ๋ค๋ ๊ฒ์ ๋๋ค. ๊ทธ๋ฌ๋ ์ฌ๊ธฐ์๋ ๋ช ๊ฐ์ง ๋ฌธ์ ๊ฐ ์์ต๋๋ค.
/root/.local/
์ ์ค์นํ๋ ๊ฒ์ ๊ทธ๋ค์ง ์ ์ฉํ์ง ์์ ๊ฒ ๊ฐ์ต๋๋ค.get-pip
๋ฐ pypa ์ค์น ์ง์นจ ์ ๋ํด ๋ฌด์์ ์๋ฏธํฉ๋๊น?--user
์ค์น๋ ์ ์ญ easy_install
d ํจํค์ง๋ณด๋ค ์ฐ์ ์์๊ฐ ๋ฎ์ต๋๋ค. ์ด๋ ๋งค์ฐ ์์์น ๋ชปํ ๊ฒฐ๊ณผ์ผ ์ ์์ต๋๋ค.์ฌ๊ธฐ์ ๊ด๋ จ๋ ์ฌ๋ฌ ๋ฌธ์ ๊ฐ ์์ต๋๋ค. #624 #1443 #1153 #1500 #1051
/cc @ncoghlan
์ด๊ฒ์ pypa ์ค์น ์ง์นจ์์ ๋ฌด์์ ์๋ฏธํฉ๋๊น?
ํ์ฌ ๋ฃจํธ ๋๋ ๊ด๋ฆฌ์ ์ก์ธ์ค์ ๋ํ ์ธ๊ธ์ ๊ฐ์ฃผ์ ์์ผ๋ฏ๋ก ์ง์นจ์ ๊ธฐ๋ณธ์ ์ผ๋ก ๋์ผํ๊ฒ ์ ์ง๋ฉ๋๋ค( get-pip
๊ฐ ์๋์ผ๋ก --user
๋ก ๊ธฐ๋ณธ ์ค์ ๋๋ค๊ณ ๊ฐ์ ). ๋ณ๊ฒฝ ์ฌํญ์ ํ์ฌ ์ฌ์ฉ์์๊ฒ๋ง ์ ์ฉ๋๋ ์ค์น๋ก ๋๋ ๊ฒ์์ ์ค๋ช
ํ๊ธฐ ์ํ ๊ฒ์
๋๋ค.
--user
๋ณ๊ฒฝ ์ฌํญ์ ๊ด๊ณ์์ด ํ์ฌ ์ง์นจ์ ๋ฐ๋น์๊ณผ ๊ฐ์ ์ผ๋ถ ๋ฐฐํฌํ์ด Surepip์ ๋นํ์ฑํํ๊ณ ์์ผ๋ฏ๋ก pip๋ฅผ ์ป๋ ๋ฐฉ๋ฒ์ผ๋ก ์ฐพ์ง ์์์ผ ํ๋ค๊ณ ์ค๋ช
ํด์ผ ํฉ๋๋ค.
์ฅ๊ธฐ์ ์ผ๋ก ์ ๋ ๊ทธ๋ค์ด ๊ณ์ ํ์ฑํํ ๊ฒ์ด๋ผ๊ณ ํ์ ํฉ๋๋ค. ๊ทธ๋ค์ ๋จ์ง ๊ทธ๊ฒ์ ์ํํ๋ ๋ฐฉ๋ฒ์ ์์๋ด๊ณ ์์ ๋ฟ์ ๋๋ค.
์ด ๋ฌธ์ ๋ pip๊ฐ ๊ธฐ๋ณธ์ ์ผ๋ก ํจํค์ง๋ฅผ ๊ด๋ฆฌํด์ผ ํ๋ ์์น์ ๋ํ ๊ฒ์ผ๋ก ์ค๋ช
๋์ง๋ง ๊ฑฐ์ ๋ ์ค์ํ(์ ์ด๋ ๋์๊ฒ) ์ด๊ฒ์ ๊ฐ์ ์ ์ผ๋ก get-pip
๊ฐ ๊ธฐ๋ณธ์ ์ผ๋ก pip๋ฅผ ๋ฐฐ์นํ๋ ์์น์ ๊ดํ ๊ฒ์
๋๋ค.
์ด๊ฒ์ altinstall'd Python๊ณผ ์ด๋ป๊ฒ ์ํธ ์์ฉํฉ๋๊น?
ํนํ https://github.com/yyuu/pyenv ์ ๊ฐ์ ๋๊ตฌ๋ก ์ค์น๋๋ ๊ฒ๊ณผ ๊ฐ์
์ฌ์ฉ์ ์ฒด๊ณ๋ .local/lib/pythonX.Y/site-packages
์ด๋ฏ๋ก ๋์ผํ ์ฃผ/๋ถ ๋ฒ์ ์ผ๋ก ์ฌ๋ฌ ํ์ด์ฌ์ ๊ด๋ฆฌํ๋ ๊ฒฝ์ฐ ์๋ง์ด ๋ ์ ์์ต๋๋ค.
์ค์ ํ์ด์ฌ์ ๊ด๋ฆฌํ๋ ์ด์ ๊ฐ์ ๋๊ตฌ์ ๊ฒฝ์ฐ pip๋ฅผ ์ ์ญ ๋ชจ๋์ ๊ณ ์ ํ๋ ๊ฒ์ด ์ ํฉํฉ๋๋ค.
redhat/fedora ๋ฒ๊ทธ ์ถ์ ๊ธฐ https://bugzilla.redhat.com/show_bug.cgi?id=662034#c10 ๊ด๋ จ ๋ฌธ์
Fedora/RedHat PATH=$PATH:$HOME/.local/bin:$HOME/bin
๊ฐ ์ด๋ฏธ /etc/skel/.bash_profile
์ ์๋ ๊ฒ ๊ฐ์ต๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด --user
๋ก ์ค์น๋ ํญ๋ชฉ์ด ์ต์ํ bash ์ฌ์ฉ์(๊ธฐ๋ณธ ์
ธ)์ ๋ํด ๊ธฐ๋ณธ์ ์ผ๋ก ๊ณ์ ํ์๋ฉ๋๋ค. ๋ค๋ฅธ ๋ฐฐํฌํ์ ์ด๋ฏธ ์ด ๊ธฐ๋ฅ์ด ์์ต๋๊น?
๋ด๊ฐ ์๋ Windows์ ๋ํด ํน๋ณํ ๋ค๋ฅธ ์ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ฐ๋ฆฌ๋ ์ฌ๋๋ค์ PATH์ ํ์ค Python ๋๋ ํ ๋ฆฌ๋ง ๊ฐ์ง๊ณ ์์ต๋๋ค. ์ฌ์ฉ์๋ณ ์คํฌ๋ฆฝํธ ๋๋ ํ ๋ฆฌ๋ฅผ ์ป๋ ๊ฒ์ด ํนํ ์ฌ์ธ ๊ฒ์ด๋ผ๊ณ ๊ธฐ๋ํ์ง ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ธฐ์ ์ ์ธ ์ด๋ ค์๋ ์์ ์ ์์ต๋๋ค. ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. %LOCALAPPDATA%
์ ๊ฐ์ ์ฌ์ฉ์ ์์ค ํ๊ฒฝ ๋ณ์๋ฅผ ์์คํ
์์ค %PATH%
๋ฃ์ด๋ ์๋ํฉ๋๋ค :-(
๋๋ ์ด๊ฒ์ ์๋๋ฅด๋ ๊ฒ์ ๋ฐ๋ํฉ๋๋ค. ์ฌ์ฉ์ ์ค์น์ ๋ํ ๋ ๋ง์ ๊ฒฝํ์ด ์๊ณ ๋ฌธ์ ๋ฅผ ๋จผ์ ํด๊ฒฐํ ์ ์์ ๋๊น์ง ๊ธฐ๋ค๋ฆฌ๋ ๊ฒ์ด ์ข์ต๋๋ค. ๋๋ ๊ทธ๊ฒ์ด ๋ญ๊ณผ ๋ฌ๊ฑ์ ๋ฌธ์ ๋ผ๋ ๊ฒ์ ์๊ณ ์์ง๋ง, ๋ณํ๋ฅผ ์๋๋ฅด๋ ๊ฒ์ด ๋์์ด ๋๋ค๊ณ ๋ณด์ง ์์ต๋๋ค.
๋ํ Windows ๋ชจ์๋ฅผ ์ฐ๊ณ ์๋ ์ํ์์ sudo๋ฅผ ๋ถ์ฃผ์ํ๊ฒ ์ฌ์ฉํ๋ ๊ฒ์ด ์ด๋ฆฌ์์ ์ผ์ ํ๋ ๊ฒ์ด ๋์๋ค๋ ๊ฒ์ ์์ง ํด๊ฒฐํ์ง ๋ชปํ Unix ์ฌ์ฉ์๋ฅผ ๋ ์ด๋ ต๊ฒ ๋ง๋๋ ๊ฒ์ ๊ทธ๋ค์ง ์ข์ ์ ๋นํ๊ฐ ์๋๋ผ๊ณ ๋งํ๊ณ ์ถ์ต๋๋ค. .
๋๋ ์ด๊ฒ์ด ์์คํ Python์์ pip๋ฅผ ์คํํ ๋๋ง ์ ์ฉ๋๋ค๊ณ ๊ฐ์ ํฉ๋๋ค.
Windows์ ๋ค๋ฅธ ์ ์ ์์คํ ์ ๊ณต Python ํจํค์ง์ ํจ๊ป ์ ๊ณต๋๋ *nix์ ๊ฐ์ Python ์ ๊ณต ์์คํ ์ด ์๋ค๋ ๊ฒ์ ๋๋ค. :)
๋๋ ํน๋ณํ ์ด๊ฒ์ ์๋๋ฅด๊ณ ์ถ์ง๋ ์๋ค. ํ ๋ก ์ ์์ํ๊ณ ์ถ์์ ๋ฟ์ ๋๋ค.
์ด๊ฒ์ ๋ฃจํธ๋ก ๋ฌด์ธ๊ฐ๋ฅผ ์ค์นํ๋ ๊ฒ์ด ๊ธฐ๋ณธ์ ์ผ๋ก ์์คํ
์ฌ์ดํธ ํจํค์ง๋ก ๊ฐ์ผ ํ๋ค๊ณ ์๊ฐํ๊ธฐ ๋๋ฌธ์ sudo pip install
๋ฅผ ์
๋ ฅํ๋ ์ฌ๋๋ค์๊ฒ๋ ์ค์ ๋ก ์ํฅ์ ๋ฏธ์น์ง ์์ต๋๋ค. ์ด๊ฒ์ ๊ถํ์ด ์๋ ์ฌ์ฉ์๋ก ์คํํ ๋ --user
๋ฅผ ์ฌ์ฉํ๋๋ก ์ฌ๋๋ค์ ์๋ดํฉ๋๋ค. ์ง๊ธ ๋น์ ์ด ์ป๋ ๊ฒ์ ์ผ๋ฐ ์ฌ์ฉ์๋ก์ pip install
๊ถํ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ค๋ ๊ฒ์
๋๋ค. ์ฐ๋ฆฌ๊ฐ ๊ทธ ๋ฉ์์ง๋ฅผ ๊ฐ์ ํ์ฌ --user
๋ฅผ ์ ์ํ๋๋ผ๋ ์ฌ์ ํ ์ต๊ณ ์ UX๋ ์๋๋๋ค.
Fedora ์ง์ ์ค ํ ๋ช
๊ณผ ์ด์ผ๊ธฐํ๋ฉด์, ์ด๋ฅผ ์ํํ ์ ์๋ ๋ฐฉ๋ฒ์ ๊ถํ ํ์ธ์ ๊ตฌํํ๋ ๊ฒ์
๋๋ค. site-packages ๋๋ ํ ๋ฆฌ์ ์ธ ์ ์๋ ๊ถํ์ด ์์ผ๋ฉด ๊ถํ์ด ์๋ ์ฌ์ฉ์์ด๊ณ pip๊ฐ ์ ์ญ Python์ ์ค์นํฉ๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด ๊ถํ์ด ์๋ ์ฌ์ฉ์์ด๊ณ --user
์ ์ค์น๋ฉ๋๋ค.
Windows๊ฐ ์งํ๋๋ ํ, ๊ธฐ๋ณธ์ ์ผ๋ก Python์ ๊ถํ์ด ์๋ ๋๋ ํฐ๋ฆฌ์ ์ค์นํ๊ธฐ ๋๋ฌธ์ ์ผ๋ฐ์ ์ผ๋ก ๋ฌธ์ ๋ฅผ ํผํฉ๋๋ค. ๋ฐ๋ผ์ pip๋ ์ ์ญ์ ์ผ๋ก ์ค์นํ ๋ UAC๋ฅผ ํธ๋ฆฌ๊ฑฐํ์ง ์์ต๋๋ค. ๋๊ตฐ๊ฐ๊ฐ ๋์ Program Files์ ์ค์นํ๋๋ก ๋ณ๊ฒฝํ๋ฉด UAC๋ pip๋ฅผ ์คํํ ๋ ํธ๋ฆฌ๊ฑฐ๋ฉ๋๋ค(์ด๊ฒ๋ ๊ด์ฐฎ์). ์ค์น ํ๋ก๊ทธ๋จ์์ ์ฌ์ฉ์๋ณ ์ค์น๋ฅผ ์ ํํ๋ฉด ์ด๋ป๊ฒ ๋๋์ง ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค.
Paul์ด ์ธ๊ธํ๋ฏ์ด Windows์ PATH์๋ ์์ง _user_ scripts ๋๋ ํ ๋ฆฌ(์ ์ญ ๋๋ ํ ๋ฆฌ๋ง)๊ฐ ํฌํจ๋์ด ์์ง ์์ผ๋ฏ๋ก ์ด๋ ํ์คํ ๊ณ ๋ คํ ๊ฐ์น๊ฐ ์์ต๋๋ค.
POSIX ์ธก๋ฉด์์ ํฐ ์ฅ๋ฒฝ์ด ๋ณด์ด์ง ์์ต๋๋ค. ์ด UX ์์ด๋์ด๋ ์ด๋ป๊ฒ ๋ค๋ฆฌ๋์? ํ ๊ธฐ๋ฐ ์ค์น์ ๊ฒฝ์ฐ ์ค์น ๋์ ๋๋ ํ ๋ฆฌ์ ๋ํ ๊ถํ์ ํ์ธํ๊ณ ์ฌ์ฉ์์๊ฒ ์ฐ๊ธฐ ๊ถํ์ด ์์ผ๋ฉด ๋์ --user ์ค์น๋ฅผ ์ํํ ๊ฒ์ธ์ง ๋ฌป๋ ํ๋กฌํํธ๋ฅผ ํ์ํฉ๋๊น? ์๋ก์ด "--global" ๋๋ "--system" ํ๋๊ทธ๋ "no" ์๋ต์ ๊ฐ์ ํฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ ๋ฏธ๋์ ์ด๋ ์์ ์์ ๊ถํ์ด ์ ์ญ ์ค์น์ ์ ํฉํ์ง ์์ ๊ฒฝ์ฐ ํ๋กฌํํธ๋ฅผ ๊ฑด๋๋ฐ๊ณ ๋จ์ํ --user๋ก ๊ฐ์ ํ ์ ์์ต๋๋ค.
ํ๋กฌํํธ(--no-input์ ๊ฒฝ์ฐ ์ ์ธ)๋ ์๋ง๋ ์ ํ ๋จ๊ณ์ ์ ํฉํ ๊ฒ์ ๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ์์น๋ ์ฌ๋๋ค์๊ฒ ๊ถํ์ด ์๋ ์์น์ ์๊ธฐ ๋๋ฌธ์ ๊ถํ์ ํ์ธํ๋ฉด Windows์์๋ ์๋ํ ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. t ๊ทธ๋ค์๊ฒ ๊ถํ์ ๋ถ์ฌํฉ๋๋ค.
๋ณธ์ง์ ์ผ๋ก ์ด๊ฒ์ ์ฐ๋ฆฌ์ ์คํจ ๋ชจ๋๋ฅผ ํจ์ฌ ๋ ์ข๊ฒ ๋ง๋ญ๋๋ค.
sudo์ ๋ถ์ฃผ์ํ ์ฌ์ฉ์ ์์ง ํด๊ฒฐํ์ง ๋ชปํ Unix ์ฌ์ฉ์๋ฅผ ๋ ์ด๋ ต๊ฒ ๋ง๋ญ๋๋ค.
์ด๋ฆฌ์์ ์ผ์ ํ๋ ๊ฒ์ ๋์ ์ผ์ ๋๋ค.
sudo
๋ฐ ๋ณด์์ ์ค์ ๋ก ๋ถ์ฐจ์ ์ธ ๋ฌธ์ ์
๋๋ค.
์ด๊ฒ์ ์ฃผ๋ก ์์คํ
ํ์ด์ฌ์์ OS ํจํค์ง๊ณผ pip ๊ฐ์ ์ถฉ๋์ ๋ฐฉ์งํ๋ ๊ฒ์
๋๋ค.
ํ์ฌ Linux ์ฌ์ฉ์๋ ์ข
์ข
๋ถ๊ฐ๋ฅํ ์ํฉ์ ์ฒํด ์์ต๋๋ค.
get-pip
'd pip ํฌํจ)'๋ก ์์คํ
์ ๊ฐ์ผ์ํค์ง ๋ง์ญ์์ค.๋ ๋ค๋ฅธ ๋จ๊ณ๋ get-pip.py --user
ํ ์ ์๊ณ --user
virtualenv
(๋ฐ wheel
๋ฐ twine
(virtualenv๊ฐ ์๋ ๊ฒฝ์ฐ)
FWIW, ๋ฐฐํฌํ ๊ณต๊ธ์ ์ฒด๋ ํ์ ์ ์ง๋ฅผ ๋ฌธ์ ๋ก ๊ฐ์ฃผํ๊ณ ํต์ฌ OS ๊ตฌ์ฑ ์์์ ์ํฅ์ ์ฃผ์ง ์๊ณ ์ ํ์ ์ธ ์ ๊ทธ๋ ์ด๋๋ฅผ ์ํํ๊ธฐ ์ํ ๋๊ตฌ๋ฅผ ๊ฐ์ ํ๊ธฐ ์ํ ๋ค์ํ ๋ฐฉ๋ฒ์ ์ฐพ๊ณ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ด๋ฌํ ๋ ธ๋ ฅ์ ๋ค์ํ ์ฑ์ ๋จ๊ณ์ ์๊ณ ์ต์ข ์ฌ์ฉ์๋ฅผ ์ํ ์ผ๊ด๋ ํฌ๋ก์ค ํ๋ซํผ ์๋ฃจ์ ์ ์ํ๊ธฐ ๋๋ฌธ์ ์ ์คํธ๋ฆผ ์ธก๋ฉด์์ ํด๊ฒฐํ ๊ฐ์น๊ฐ ์์ต๋๋ค.
Unix์์ ๋ฐฐํฌํ๊ณผ ํ๋ ฅํ๋ ๋ฐ ๋์์ด ๋๋๋ก ๋ณ๊ฒฝํ๋ ๋ฐ ๋ฌธ์ ๊ฐ ์์ต๋๋ค. Windows๊ฐ ์๋ Unix์ ๊ธฐ๋ณธ๊ฐ์ --user
๋ก ์ค์ ํ๋ ๊ฒ์ด ํ์ฉ๋๋ค๋ฉด ๊ด์ฐฎ์ต๋๋ค. ์ ๋ Unix์ ๋์ ๊ฒฝํ์์ Windows์ ๋์ ๊ฒฝํ์ผ๋ก ์ ํํ๋ ๊ฒ์ ์ข์ ์ ์ถฉ์์ผ๋ก ๋ณด์ง ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์์ง Windows์ --user
๊ฐ ํฉ๊ธ๊ธฐ๋ฅผ ๋ง์ดํ ์ค๋น๊ฐ ๋์๋ค๊ณ ํ์ ํ์ง ๋ชปํฉ๋๋ค.
Windows์์ pip _is_๋ฅผ ์คํํ ๋ UAC๋ฅผ ํธ๋ฆฌ๊ฑฐํ๋ ๊ฒ์ ์ค์ ๋ก ์๋ฏธํ๋ ๋ฐ๊ฐ ์์น๋ ์ฝ์ ์ฐฝ์ ์ ์ธํ๊ณ pip๊ฐ ์คํ๋์ง ์๋๋ค๋ ๊ฒ์ ๋๋ค. pip ์ฌ์ฉ์๊ฐ "OK"๋ผ๊ณ ๋งํ ์ ์๋ ๋ฉ์ง ํ๋กฌํํธ๊ฐ ํ์๋๋ค๋ ์๋ฏธ๋ ์๋๋๋ค. ๋ถํํ๋ GUI ์ฑ์ด ์๋ํ๋ ๋ฐฉ์์ ์ด๋ฟ์ ๋๋ค...
@pfmoore pip install
๋๋ ํ ๋ฆฌ์ ์ฐ๊ธฐ ๊ถํ์ด ์์ ๋ Windows์ ์ฌ์ฉ์ ๊ฒฝํ์ ์ด๋ ํด์ผ ํ๋ค๊ณ ์๊ฐํ์ญ๋๊น?
FWIW Windows ์ฌ๋ถ์ ๋ฐ๋ผ ์ด๊ฒ์ ์ ํ ์ฌํญ์ผ๋ก ๋ง๋๋ ๋ฐ ์ ์ ์ผ๋ก ๋์ํฉ๋๋ค. "์ฌ์ดํธ ํจํค์ง ํด๋์ ์ธ ์ ์๋ ๊ถํ์ด ์์ต๋๊น" ์ฒดํฌ๊ฐ ์ค์น์ 99%์์ ๋ฌ์ฑ๋์ง ์๋์ง, ๊ทธ๋ฆฌ๊ณ --user์ ์ค์นํ๋ ๊ฒ์ด ๋ ๋์ ๊ฒฝํ์ธ์ง ๊ถ๊ธํฉ๋๋ค. site-packages ๋๋ ํ ๋ฆฌ์ ๋ํ ์ฐ๊ธฐ ๊ถํ์ด ์๋ ๊ฒฝ์ฐ์ ๋น์จ์ ๋๋ค.
์ฆ, ์ ์์ด ์ ์ญ ์ค์น๋ฅผ ์ฌ์ฉ์ ์ค์น๋ก ๋์ฒดํ์ง ์๋ ๊ถํ์ ํ์ธํ๋ฉด ๊ถํ ์ค๋ฅ๊ฐ --user
์ค์น๋ก ๋์ฒด๋ฉ๋๋ค.
์ ์์ด ์ ์ญ ์ค์น๋ฅผ ์ฌ์ฉ์ ์ค์น๋ก ๋์ฒดํ์ง ์์ต๋๋ค.
๊ถํ ์ค๋ฅ๋ฅผ --user install๋ก ๋์ฒดํ๊ณ ์์ต๋๋ค.
์๊ฒ ์ต๋๋ค. ํ์ง๋ง ๊ถํ ํ์ธ ์์ด๋์ด(#1048)๊ฐ ๊ฐ์ฅ ์ฌ์ด ์ผ์ด ์๋์ ๊ธฐ์ตํ์ญ์์ค.
Wheel ์ผ์ด์ค์์๋ ๋งค์ฐ ์ฌ์ธ ๊ฒ์ด๊ณ sdist๋ก 99.9% ์ผ์ด์ค๋ฅผ ๋ฎ์ ์ ์์ต๋๋ค. ์ด๊ฒ์ ์ ๋ง ํํคํ ์ผ์ ํ๋ setup.py์ ๋ฌธ์ ์ผ ๊ฒ์ ๋๋ค.
pip install ๋ฌด์ธ๊ฐ๋ฅผ ํ๊ณ ๋๋ ํ ๋ฆฌ์ ์ธ ๊ถํ์ด ์์ ๋ Windows์ ์ฌ์ฉ์ ๊ฒฝํ์ ์ด๋ ํด์ผ ํ๋ค๊ณ ์๊ฐํ์ญ๋๊น?
๊ธ์, site-packages ๋๋ ํ ๋ฆฌ์ ์ธ ์ ์๋ ๊ฒ์ Windows์์ ๋งค์ฐ ๋๋ฌผ๊ธฐ ๋๋ฌธ์ ์ง๋ฌธ์ด ์ค์ ๋ก ์ผ๋ง๋ ๊ด๋ จ์ด ์๋์ง ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. ๊ทธ๋ฌ๋ ๊ทธ๋ฐ ์ผ์ด ๋ฐ์ํ๋ฉด "์์คํ
์ฌ์ดํธ ํจํค์ง๋ฅผ ์ธ ์ ์์ต๋๋ค --user
๋ฅผ ์ฌ์ฉํ๋ ค๊ณ ํ์ต๋๊น?"๋ผ๋ ์ค๋ฅ๊ฐ ๋ฐ์ํ์ต๋๋ค. ํ๋ช
ํ ์ ๊ทผ์ด ๋ ๊ฒ์
๋๋ค.
์ฌ์ค, ์ ๋์ค์์๋ ๊ทธ๊ฒ ๋ ๋์ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ์ฐ๊ธฐ ๊ฐ๋ฅ์ฑ์ ๋ฐ๋ผ ๋์์ ์ ํํ๋ ๊ฒ์ ๊ธฐ์ดํ๊ณ ์ฐ๊ธฐ ๊ฐ๋ฅํ ๋๋ ํ ๋ฆฌ์์ ๊ฐ์ธ์ ์ผ๋ก ๊ตฌ์ถํ Python์ --user
๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ฌ๋ฐ๋ฅธ ์ ๊ทผ ๋ฐฉ์์ธ์ง ์ฌ๋ถ๋ ๋ถ๋ช
ํ์ง ์์ต๋๋ค(๊ทธ๋ฌ๋ ์ ๋ ๊ทธ๋ฌํ ์ค์ ์ ๋ํ ๊ฒฝํ์ด ์ ํํ ์๊ธฐ ๋๋ฌธ์ ๋๋ ๊ทธ ์๊ฒฌ์ ๋ท๋ฐ์นจํ ๊ฒ์ด ์๋ฌด๊ฒ๋ ์๋ค.)
์ ์: ์์ ๊ฐ์ด --user
๋ฅผ ์ ์ํ๋ ์ค๋ฅ๋ก ์์ํ์ญ์์ค. ์ฌ๋๋ค์ด --user
๋ฅผ ๋ ์ผ๋ฐ์ ์ผ๋ก ์ฌ์ฉํ๊ณ ๋ ๋ง์ ๊ฒฝํ์ด ์์ผ๋ฉด ๊ธฐ๋ณธ๊ฐ์ ์ ํํ๋ ๊ฒ์ ๊ณ ๋ คํด ๋ณด๊ฒ ์ต๋๋ค.
Paul์ด ์ ์ํ ์ ๊ทผ ๋ฐฉ์์ ๋๋ต ์ ๊ฐ ์ผ๋์ ๋์์ง๋ง ์ค๋ฅ ๋ฉ์์ง๋ฅผ ํ์ํ๋ ๋์ ์/์๋์ค ํ๋กฌํํธ๊ฐ ํ์๋ฉ๋๋ค. ์ด ๋ ๊ฐ์ง ์ ๊ทผ ๋ฐฉ์์๋ ์ฅ๋จ์ ์ด ์์ต๋๋ค(๋๋ถ๋ถ ๋ค๋ฅธ ์คํฌ๋ฆฝํธ์์ ํธ์ถํ ๋ ์คํจํ๋ ๋ฐฉ์๊ณผ ๊ด๋ จ๋จ).
Python์ sys.localprefix์ ๊ฐ์ ๊ฒ์ ์ถ๊ฐํ ์ ์์ต๋๊น(์ฌ๊ธฐ์ python-dev ์ฐธ์กฐ)?
Sys.localprefix๋ ๊ธฐ๋ณธ์ ์ผ๋ก sys.prefix์
๋๋ค. ๋ฐฐํฌํ์ ์ ๋์ฌ๋ฅผ ์ ์ํ๋ ๊ฒ๊ณผ ๊ฐ์ ๋ฐฉ์์ผ๋ก ์ ์ํ ์ ์์ต๋๋ค(์: ์ ๋์ฌ = '/usr', localprefix='/usr/local'). Pip ๋ฐ easy_install์ sudo๋ก ์ฌ์ฉ๋๋ ๊ฒฝ์ฐ ์ค์นํ ์์น๋ก sys.localprefix๋ฅผ ์ฌ์ฉํ๊ณ ์ถฉ๋ถํ ๊ถํ์ด ์๋ ๊ฒฝ์ฐ --user๋ก ํด๋ฐฑํฉ๋๋ค.
์ฐ๋ฆฌ๋ Fedora 17์์ "gem install"์ ์ฌ์ฉํ์ฌ ์ด์ ๊ฐ์ ์์ ์ ์ํํ์ผ๋ฉฐ Ruby ๊ฐ๋ฐ์๋ ์ผ๋ฐ์ ์ผ๋ก ์ด์ ๋ํด ๋งค์ฐ ๋ง์กฑํ์ต๋๋ค. ๊ทธ๋์ ์ ๋ ๊ณต์ ํ ์๊ฐ์ ๋๋ค.
์ฌ์ฉ์ ๊ถํ์ ๋ฐ๋ผ install dir์ ์ ํํ๋ ๊ฒ์ ์ฌ๋๋ค์๊ฒ ๋งค์ฐ ํผ๋์ค๋ฌ์ธ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. "pip install foo"๋ ๋ฃจํธ๊ฐ ์๋ ๋ชจ๋ ์ฌ์ฉ์์๊ฒ ๋์ผํ ๋ฐฉ์์ผ๋ก ์๋ํด์ผ ํฉ๋๋ค. ๋๋ค์์ ์ฌ์ฉ์๋ฅผ ๊ณ ๋ คํ๋ค๋ฉด ๊ทธ๋ค์ ์์ ์ ์ง์ "pip install"์, ์์คํ ์ ์ฒด ๋๋ ํ ๋ฆฌ์ "sudo pip install"์ ์ํ ๊ฒ์ ๋๋ค. ๋ฐ๋ผ์ ์์ ๊ฐ์ด uid๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๋ ๊ฒ์ด ๊ฐ์ฅ ์ข์ ๋ฐฉ๋ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ๋ฃจํธ๋ ์๋์ง๋ง ์์คํ ์ ์ฒด ๋๋ ํฐ๋ฆฌ์ ์ค์นํ๋ ค๋ ์ฌ์ฉ์์๊ฒ๋ ํญ์ --target ์ต์ ์ด ์์ต๋๋ค.
@bkabrda $PATH์ ์คํฌ๋ฆฝํธ๋ฅผ ์ถ๊ฐํ๋ ๊ฒ์ ๋ํด ๊ฑฑ์ ํ์ง ์๋ ํ ์ฝ๊ฒ ์ ํํ ์ ์์ต๋๋ค. ๊ฑฐ๊ธฐ์์ ๋ฌด์์ ํ์ต๋๊น?
@dstufft ๊ฐ ์ธ๊ธํ @Ivoz , Fedora์๋ ์ด๋ฏธ PATH์ $HOME/.local/bin์ด ์์ผ๋ฏ๋ก ๋ชจ๋ ๊ฒ์ด ๊ธฐ๋ณธ์ ์ผ๋ก ์๋ํฉ๋๋ค(์คํฌ๋ฆฝํธ์ ๋ํด).
Slavek์ ์ ์์ POSIX ์์คํ ์ ๋ํด ๋์๊ฒ ์ข๊ฒ ๋ค๋ฆฝ๋๋ค. ์ปจํ ์ด๋์์ ์คํ๋๋ ํญ๋ชฉ์ด ์ปจํ ์ด๋ ์ธ๋ถ์์ ์์ ํ ๋ค๋ฅธ ๊ฒ์ด๋๋ผ๋ uid 0์ด๋ผ๊ณ ์๊ฐํ ์ ์๊ธฐ ๋๋ฌธ์ ์ปจํ ์ด๋์๋ ์ ์๋ํด์ผ ํฉ๋๋ค.
Windows์ ๊ฒฝ์ฐ ์ ๋ต์ด ๋ฌด์์ธ์ง ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. ๋น๋ก ๊ทธ๊ฒ์ด ์ด๋ ์ ๋ ์กด์ฌํ์ง๋ง(pip install ๋ MSI ์ค์น ํ๋ก๊ทธ๋จ) ์์คํ ํจํค์ง ๊ด๋ฆฌ์์ ๋ ผ์์ ๋ฒ์ด๋ ๊ฒ๊ณผ ๋์ผํ ๋ฌธ์ ๊ฐ ์์ผ๋ฉฐ Python 3.4์์๋ ์ค์น ํ๋ก๊ทธ๋จ์ ์ ํ์ PATH์ ์ถ๊ฐ ํฉ๋ณ์ฆ์ด ์์ต๋๋ค. ์์ ์ ์ฌ์ฉ์๋ณ ๋๋ ํ ๋ฆฌ๊ฐ ์๋ ์ ์ญ Scripts ๋๋ ํ ๋ฆฌ๋ง ์ถ๊ฐํฉ๋๋ค.
Windows๋ ๋ํ Python์ด ๊ธฐ๋ณธ ์์น(์ ์ด๋์ง ์์)์ ์ค์น๋์๋์ง ์๋๋ฉด ํ๋ก๊ทธ๋จ ํ์ผ(๋ณ๊ฒฝํ๋ ค๋ฉด UAC ๊ถํ ์์น์ด ํ์ํจ)์ ์ค์น๋์๋์ง์ ๋ฐ๋ผ ์ด์ํฉ๋๋ค.
@rkuska ๊ฐ ์ ์ํ "localprefix" ์์ด๋์ด๋ ๊ฐ๋จํ๊ณ ์ฌ์ ๋ณด์ ๋๋ค. ๋ํ @bkabrda ๊ฐ ์ ์ํ๋ ์ ๊ทผ ๋ฐฉ์์ด ์ ๋ง ๋ง์์ ๋ญ๋๋ค. ํนํ python 3.x๋ฅผ ๊ธฐ๋ณธ python์ผ๋ก ๋ง๋๋ Arch์ ๊ฐ์ ๋ฐฐํฌํ์ ๊ฒฝ์ฐ ๋์ฑ ๊ทธ๋ ์ต๋๋ค.
ํ ๊ฐ์ง ๋ ์ฃผ์ํ ์ ์ Arch๋ Debian๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก 3.4.0 ๋ฆด๋ฆฌ์ค์์ surepip์ ๋นํ์ฑํํ์ต๋๋ค(๋๋ถ๋ถ ์ฐ๋ฆฌ๋ ์ต์ ๋ฒ์ ์ setuptools ๋ฐ pip๋ฅผ ์ ๊ณตํ๊ธฐ๋ฅผ ์ํ์ง๋ง ๋ฒ๋ค ๋ฒ์ ์ ์ค๋๋์์ ์ ์์). ๊ทธ๊ฒ์ ๋ํ ํ.
@lvoz
Arch์ ๊ฒฝ์ฐ $HOME ์๋์ PATH์ ๋ํ ๊ฒฝ๋ก๋ฅผ ์ถ๊ฐํ์ง ์์์ง๋ง ์ฌ์ ํ ๊ด์ฐฎ๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ฌ์ฉ์์๊ฒ ์ถ๊ฐํ๋๋ก ์๋ ค์ฃผ๋ Ruby์ฉ ์ํค ํญ๋ชฉ ์ด ์ด๋ฏธ ์์ต๋๋ค.
๋จ์ํ ๋นํ์ฑํํ๋ ๊ฒ๋ณด๋ค Arch ๋ฐ Debian ๊ฐ๋ฐ์๊ฐ Slavek์ด ์์คํ ๋ฒ์ ์์ ํ ์ ์ฌ๊ตฌ์ฑํ๊ณ ๊ฐ์ ํ๊ฒฝ์ ์ค์นํ๋๋ก Slavek์ด ํจ์น ์์ ์ ํ๋ ๋ฐ ๋์์ด ๋๋ค๋ฉด ์ข์ ๊ฒ์ ๋๋ค.
์ฐธ๊ณ ๋ก, ์ฐ๋ฆฌ๋ ์ด๋ฏธ Fedora์ Copr ๋น๋ ์์คํ
์์ Python 3.4 RPM ๋น๋๋ฅผ ์๋ํ๊ณ ์์ต๋๋ค. ์ฐ๋ฆฌ๊ฐ ์ด์ ์ ๊ทผํ๋ ๋ฐฉ๋ฒ์ ๋ํด ๋ ์๊ณ ์ถ๋ค๋ฉด ์ฝ๋ ๋ฑ์ ์ดํด๋ณด๊ณ debian-python ML์์ Barry Warsaw [2]์์ ํ ๋ก ์ ์ฐธ์กฐํ์ญ์์ค.
(์ฐ๋ฆฌ ํจ์น๋ฅผ ์
์คํธ๋ฆผ์ผ๋ก ์ ์ํ๊ธฐ ์ ์ ์ฌ์ ํ ์ฝ๊ฐ์ ์ฌ๋์ด ํ์ํ์ง๋ง ๋ค์ด์คํธ๋ฆผ ATM์์๋ ๋ชจ๋ ๊ฒ์ด ์ ์๋ํฉ๋๋ค.)
[1] http://copr-fe.cloud.fedoraproject.org/coprs/bkabrda/python-3.4/
[2] https://lists.debian.org/debian-python/2014/03/msg00046.html
์ฃ์กํฉ๋๋ค. AFAIK Arch๋ ๊ฒฐ์ฝ ํ ์ ์ง์ํ์ง ์์ผ๋ฉฐ, ์ฐ๋ฆฌ๋ surepip์ด ํจํค์ง ๊ด๋ฆฌ์๋ฅผ ํธ์ถํ๋๋ก ํ๊ณ ์ถ์ง๋ ์์ต๋๋ค.
surepip์ ๊ฒฝ์ฐ, ์ฌ์ฉ์์๊ฒsurepip์ ์ฌ์ฉํ์ฌ pip๋ฅผ ์ค์นํ์ง ๋ง๋ผ๊ณ ๊ฒฝ๊ณ ํ๋ ๊ฒ์ด ์ข์ ๊ฒ์ ๋๋ค.
์ฐ๋ฆฌ์surepip์ ํจํค์ง ๊ด๋ฆฌ์๋ฅผ ํธ์ถํ์ง ์์ต๋๋ค. ๊ฐ๋จํ ๋งํด์, Fedora์surepip์ ์์คํ
ํจํค์ง๋ setuptools์ pip๊ฐ ํญ์ ์กด์ฌํ๋๋ก ์์กดํฉ๋๋ค(์ฐ๋ฆฌ์ python3 ํจํค์ง๋ ์์กด์ฑ ๋ฃจํ๋ฅผ ์์ฑํ์ง๋ง ์ฐ๋ฆฌ๋ ๊ทธ๊ฒ์ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค). ๊ทธ๋ฆฌ๊ณ ์ฌ์ฉ์๊ฐ ์๋ก์ด virtualenv๋ฅผ ์์ฑํ ๋ ๋ค์ ํฌ์ฅํฉ๋๋ค system setuptools ๋ฐ pip๋ฅผ ๋ฐํด์ ๋ฃ๊ณ ์ virtualenv์ ์ค์นํ์ญ์์ค.
์ฐ๋ฆฌ๋ ์ฃผ์ ์์ ์ฝ๊ฐ ๋ฒ์ด๋๊ธฐ ์์ํ์ต๋๋ค. ๊ทธ๋์ ์ด ๋
ผ์๋ฅผ ๋ค๋ฅธ ๊ณณ์์ ๊ณ์ํด์ผ ํ ๊ฒ ๊ฐ์ต๋๋ค...
@felixonmars ์ด๋ Arch venv์์ Debian๊ณผ ๋์ผํ๊ฒ ์์๋์์์ ์๋ฏธํฉ๋๊น?
์๊ฒ ์ต๋๋ค. ์ค๋ช ๊ฐ์ฌํฉ๋๋ค. ์์ด๋์ด๋ฅผ ์ป์ ๊ฒ ๊ฐ์ต๋๋ค. ๋ด๊ฐ ๋ฌด์์ ํ ์ ์๋์ง ์์๋ณด๊ณ ์ด์ ๋ํด debian-python์์ ํ์ ์กฐ์น๋ฅผ ์ทจํ๊ฒ ์ต๋๋ค.
@dstufft ์, ๋ฒ๋ค ๋ฒ์ ์ด ์์คํ ๋ฒ์ ๋์ ์ค์น๋์์ต๋๋ค.
@bkabrda ๋ฐ๋ผ์ ์์คํ Python์ผ๋ก pip๋ฅผ ํธ์ถํ๋ ๊ฒฝ์ฐ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ค๋ฉด ์ด ๊ฒฝ์ฐ virtualenv/venv๋ฅผ ํน์ ์ผ์ด์ค๋ก ์ง์ ํด์ผ ํฉ๋๋ค(์ธ์์ ๋์ด ์๋). ๊ทธ๋ฌ๋ ์ด๊ฒ์ ๋ํ ๋ชจ๋ Python์ด ์์คํ Python์ด๋ผ๊ณ ๊ฐ์ ํ๋ค๋ ์๋ฏธ์ด๊ธฐ๋ ํฉ๋๋ค. ์ฌ์ง์ด ์ฌ์ฉ์๊ฐ https://github.com/yyuu/pyenv (์ด๊ฒ์ด ์ค์ ๋ก Python์ ์คํํ๋ ๋ฐฉ๋ฒ)๋ฅผ ์ฌ์ฉํ์ฌ ํ ๋๋ ํ ๋ฆฌ์ ์ค์นํ ๊ฒฝ์ฐ์๋ ๋ง์ฐฌ๊ฐ์ง์ ๋๋ค. ๊ทธ๋์ ์ ๋ชจ๋ฅด๊ฒ ์ง๋ง ๊ทธ๋์ ๊ถํ ํ์ธ์ ์๊ฐํ๊ฒ ๋ ๊ฒ์ ๋๋ค.
@dstufft ๊ฐ ๋งํ ๊ฒ๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก pyenv
์ ๊ฐ์ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ ๋ฃจํธ๊ฐ ์๋ ํ์ด์ฌ์ ์ ๊ธ๋งํ ๋ root
๊ฐ ์ ์ญ ์ค์น(์ฌ๊ธฐ์ "global" != "์์คํ
")
Fedora 17์์ "gem install"์ ์ฌ์ฉํ์ฌ ์ด์ ๊ฐ์ ์์ ์ ์ํํ์ต๋๋ค.
ํ๋๋ผ 17์ฉ gem์ rpm์ด ์ด๊ฒ์ ๋ฐฐํฌํ ํดํน์ผ๋ก ๊ฐ์ง๊ณ ์๋ค๋ ๋ง์ ๋๊น? ์๋๋ฉด gem ์์ฒด์ ์ด ๋ ผ๋ฆฌ๊ฐ ์์ต๋๊น?
ํ ๊ฐ์ง ์๊ฐ์ pip๊ฐ pip๋ฅผ ํจํค์งํ๋ ๋ฐฐํฌํ์์ ์ผค ์ ์๋ "์์คํ ์นํ์ ๋ชจ๋"๋ฅผ ์ ๊ณตํด์ผ ํ๊ฑฐ๋ ์ฌ์ฉ์๊ฐ pip๋ฅผ ์์คํ ๊ด๋ฆฌ ํ์ด์ฌ์ ์ค์นํ๊ณ ์์์ ์ ๋ ์ผ์ผ ํ๋ค๋ ๊ฒ์ ๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด pip๋ ์ผ๋ฐ์ ์ธ ์ ์ญ ๊ธฐ๋ณธ ๋ ผ๋ฆฌ๋ฅผ ์ํํฉ๋๋ค.
์ @felixonmars ๋ฐฉ๊ธ https://projects.archlinux.org/svntogit/packages.git/tree/trunk/PKGBUILD?h=packages/python , ๋น์ ์ดํ๊ณ ์๋ ๋ชจ๋ ๊ฒ์ด --without-ensurepip
๋ฅผ ํธ์ถํ๋ ๊ฒ์ด๋ผ๋ฉด ๊ด์ฐฎ์ต๋๋ค. . ์ด๋ ๊ฒ ํ๋ฉด venv ๋ชจ๋์ ๋ํด surepip ๋ชจ๋์ด ๊ทธ๋๋ก ์ ์ง๋ฉ๋๋ค. Ubuntu(Debian?)๊ฐ ํ์ฌ ๊ฐ์ง๊ณ ์๋ ํจ์น๋ ์ค์ ๋กsurepip ํจํค์ง ์์ฒด์์ rm -rf
๋ฅผ ํธ์ถํ๋ฏ๋ก venv ๋ด์์ ํธ์ถํ ์ ์์ต๋๋ค.
์ฌ์ฉ์ ์ค์น๋ฅผ ๊ธฐ๋ณธ๊ฐ์ผ๋ก ์ค์ ํ๋ ๊ฒ์ 2๋ ์ ์ Nick์ด ์ ์ํ๊ฑฐ๋ ๋ ์ค๋ ์ ์ ๋ค๋ฅธ ์ฌ๋์ด ์ ์ํ์ง๋ง ์ค๋ ๋๊ฐ ์ฌ๋ฌ ๋ฐฉํฅ์ผ๋ก ์งํ๋์ด ์ฑ๊ณผ๊ฐ ์์์ต๋๋ค. ์ฃผ์ ์ฅ์ ๋ฌผ์ IIRC ์ด์ ๋ฒ์ ๊ณผ์ ํธํ์ฑ์ด์์ง๋ง ์์ฆ์๋ sysadmins์ pip ์ฌ์ฉ์๊ฐ virtualenv/pip/setuptools ์ ๋ฐ์ดํธ์ ๋ํด ์ข๋ ๋์๋ ์ฃผ์ํ๋ ๋ฐ ๋ ์ต์ํ ์ ์์ต๋๋ค. ๊ทธ ํ ๋ก ์ด distutils-sig ๋๋ pypa-dev์์ ๋ฐ์ํ๋์ง ๊ธฐ์ต๋์ง ์์ต๋๋ค.
์นดํ๋ก๊ทธ ์๋ช : https://mail.python.org/pipermail/catalog-sig/2013-February/004773.html
@dstufft ์, ์๊ฒ ์ต๋๋ค... ํ์ง๋ง ์์คํ ์ ์ผ๋ก ์ค์น๋ ํจํค์ง๊ฐ ์๋ ๋์ ๋ฒ๋ค(์๋ง๋ ์ด์ ) ๋ฒ์ ์ ์ค์นํ๋ ๊ฒ์ด ์ฌ์ ํ ์๋ชป๋์๋ค๊ณ ์๊ฐํฉ๋๋ค. :)
@felixonmars ์ , ๋ฌธ์ ๋ ์์คํ ํจํค์ง๋ฅผ virtualenv afaik์ ์ค์นํ ์ ์๋ค๋ ๊ฒ์ ๋๋ค. :) (๊ทธ๋ฆฌ๊ณ ๊ฐ๋ฅํ๋๋ผ๋ ์์คํ ํจํค์ง์ virtualenv ๋ด๋ถ์์ ์ํ๋ ๊ฒ๊ณผ ๋ค๋ฅธ ๋ฌธ์ ๊ฐ ์์ ์ ์์)
@dstufft ๊ทธ๊ฒ์ด Slavek์ rewheel์ด ์์๋๋ ๊ณณ์ด์ง๋ง ์ฝ๊ฐ ์ฃผ์ ์์ ๋ฒ์ด๋ฌ์ต๋๋ค. :)
์, https://lists.fedoraproject.org/pipermail/python-devel/2014-March/000583.html ์ ๋ง์ง๋ง ๋นํธ๋ฅผ ํ์ธํ์ญ์์ค :(
@dstufft ๊ฐ์ฌํฉ๋๋ค!
์ฌ๊ธฐ์ ํ ๋ก ์ ๊ณ์ํด์ผ ํ๋์ง ํ์คํ์ง ์์ต๋๋ค. ์๋ํ๋ฉด ์ฐ๋ฆฌ๋ Arch์์ pip๋ฅผ ํ์ง ์์๊ธฐ ๋๋ฌธ์ ๋ฌธ์ ๊ฐ ๋์ง ์์์ผ ํ๊ณ rewheel์ ์ฌ์ฉ ๊ฐ๋ฅํ ํ ์ ์์ฑํด์ผ ํ๊ธฐ ๋๋ฌธ์ ๋๋ค. :)
@dstufft ์ฐ๋ฆฌ๊ฐ ์๋ง๋ virtualenv ๋ฐ ์๋ง๋ pyenv๋ฅผ ํน์ ์ผ์ด์ค๋ก ์ง์ ํด์ผ ํ ํ์๊ฐ ์๋ค๋ ๋ง์ด ์ณ์ต๋๋ค. ์ด๋ ๋ณด๊ธฐ ํํด ๋ณด์ ๋๋ค. pyenv์ ์ต์ํ์ง ์๋ค๋ ๊ฒ์ ์ธ์ ํด์ผ ํ๋ฏ๋ก ์ง๊ธ ๋น์ฅ์ ์ด์ ๋ํ "์ ์ ํ" ์๋ฃจ์ ์ด ์๊ฐ๋์ง ์์ต๋๋ค. ์ข ๋ ์์ธํ ์ดํด๋ณด๊ณ ์๊ฐํด๋ณผ ์๊ฐ์ ๋๋ค.
Fedora์ "gem install"์ ๋ํ @qwcode ๋ ๋ค์ด์คํธ๋ฆผ ํจ์น์ ๋๋ค. TBH Fedora์ Rubygems๋ฅผ ์ค๋ซ๋์ ๋ง์ง์ง ์์์ง๋ง ๋ง์ง๋ง์ผ๋ก ํ์ธํ์ ๋ ๋ค์ด์คํธ๋ฆผ์๋ง ์์์ต๋๋ค.
์ด ๋ฌธ์ ์ ๋ํ ๋งํฌ๋ฅผ python [1]์ ๊ด๋ จ ๋ฒ๊ทธ์ ๊ฒ์ํ์ต๋๋ค. ์ด ํ ๋ก ์ python core๋ก ์ด๋ํ์ฌ pip
๋ฟ๋ง ์๋๋ผ easy_install
๋ฐ python setup.py install
๋ก์ปฌ ์ค์น๋ฅผ ์ํ ๊ตฌ์ฑ ๊ฐ๋ฅํ ์์น๋ฅผ ๊ฐ์ง๋ ค๋ฉด pip๊ฐ ( ์) uid==0
์ธ ๊ฒฝ์ฐ sys.localprefix dir ๋ฐ @bkabrda๊ฐ ์ธ๊ธํ ๋๋ก uid!=0
์ธ ๊ฒฝ์ฐ ์ฌ์ฉ์ dir์ ์ค์นํฉ๋๋ค.
๋น๋ถ๊ฐ์ ๊ธฐ๋ณธ์ ์ผ๋ก ์ฌ์ฉ์ dir์ pip๋ฅผ ์ค์นํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
Nick์ด ์ง์ ํ๋ฏ์ด ๋๋ ํ ๋ก ์ issue1298835์์ pypa-dev [1]๋ก ์ฎ๊ฒผ์ต๋๋ค.
[1] https://groups.google.com/forum/#!topic/pypa -dev/r6qsAmJl9t0
๊ธฐ๋ณธ๊ฐ์ --user
์ข์ ์๊ฐ!
pip install foo
๋ ํ์ผ ๊ถํ์ด ์๊ธฐ ๋๋ฌธ์ ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค. ์ด๋ก ์ธํด ์ฌ๋๋ค์ ๋์ ์์คํ Python์ ์ ์ญ์ ์ผ๋ก ์ค์น๋๋sudo pip install foo
๋ฅผ ์คํํฉ๋๋ค.
๊ทธ๊ฒ๋ณด๋ค ๋ ๋์๋ค. ๋ง์ ์ฌ๋๋ค(์: ๋ํ ์ปดํจํฐ ๋คํธ์ํฌ ์ฌ์ฉ์)์ sudo ๊ถํ์ด ์์ต๋๋ค. ๊ถํ ์ค๋ฅ๋ก pip๊ฐ ์คํจํ๋ฉด ๋ค์ ์ค ํ๋๊ฐ ์ํ๋ฉ๋๋ค.
ํนํ ๊ฒฝํ์ด ๋ง๊ฑฐ๋ ์ ๋ณด๊ฐ ํ๋ถํ ๊ฒฝ์ฐ์๋ง pip install --user
์ ์๋ํฉ๋๋ค.
'--user ๊ธฐ๋ณธ๊ฐ'์ ๋ํด ๊ฒฐ์ ์ ๋ด๋ฆฌ๊ฒ ๋๋ค๋ฉด ๋ ๋ฐฉํด๊ฐ ๋๋ ๋์์ ๊ณ ๋ คํด์ผ ํฉ๋๋ค.
๋๋ ์ค์ ๋ก ํ๋์ ๋ชจ๋ ์ค์น์์ --user
๋ฅผ ์ฌ์ฉํด ์์ง๋ง ์ผ๋ฐ์ ์ผ๋ก ์ฌ๋๋ค์ ์ด ์ต์
์ ์ธ์ํ์ง ๋ชปํฉ๋๋ค. ์ต์
์ ์์ ๋๋ง๋ค ๊ถํ ์ค๋ฅ๊ฐ ํ์๋๋ ๊ฒ์ด ์ง์ฆ๋๋ค๋ ๋ฐ ๋์ํฉ๋๋ค. ์ฌ์ฉ์ ์ค์น๊ฐ conda์ ํธํ๋์ง ์๋ ๊ฒ์ผ๋ก ๋ํ๋ฌ์ต๋๋ค(conda/conda#448).
3.5๊ฐ ๊ธฐ๋ณธ์ ์ผ๋ก Program Files(์์ ํ๋ ค๋ฉด ๊ด๋ฆฌ์ ๊ถํ์ด ํ์ํจ)์ ์ค์นํ๋ ๊ฒ์ด ๊ธฐ๋ณธ์ด๊ธฐ ๋๋ฌธ์ ์ฌ๋๋ค์ด Windows์์ ํจ์ฌ ๋ ์์ฃผ Windows์์ ์ด๋ฅผ ์คํํ๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ ๋์ด๋ฆฌ๊ณ ์ถ์ต๋๋ค.
"๊ถํ ์ค๋ฅ ์ --user๋ก ๋์ฒด" ์ต์
์ด ๊ฐ์ฅ ์ข์ผ๋ฉฐ ์ ๊ฑฐ ์ "--user๋ก ๊ธฐ๋ณธ ์ค์ ๋ฐ ์์คํ
์ผ๋ก ๋์ฒด" ์ต์
์ ์ถ๊ฐํ๊ณ --system
๋๋ --system-only
์ต์
์ ์ถ๊ฐํ ์ ์์ต๋๋ค. ํด๋ฐฑ์ ๋ฐฉ์งํ๊ธฐ ์ํด. ์๋์ ์ผ๋ก ๊ด๋ฆฌ์ ๊ถํ์ผ๋ก pip๋ฅผ ์คํํ๋ ์ฌ์ฉ์๋ ์์๋๋ก ์์คํ
์ ์ค์นํ๊ฒ ๋๋ฉฐ ํ์ฌ ๊ถํ์ด ์๋ ์ฌ์ฉ์์๊ฒ๋ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ฏ๋ก ์ฌ๊ธฐ์๋ ์ด์ ๋ฒ์ ๊ณผ์ ํธํ์ฑ ๋ฌธ์ ๊ฐ ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
๋ด ๋ชฉํ๋ ์ ๋ณด๊ฐ ์๋ ์ฌ์ฉ์๊ฐ ์ค๋ฅ ์์ด pip install spam; python -c "import spam"
๋ฅผ ์ํํ ์ ์๋๋ก ํ๋ ๊ฒ์
๋๋ค( --user
๋ก ๋ค์ ์๋ํ ๋ ๊ฒฝ๊ณ ๊ฐ ํ์๋ ์ ์์).
๋๋ ์ต๊ทผ์ ํนํ #2403๊ณผ #2401์ด ์ต๊ทผ์ ์ด๋ ธ๊ธฐ ๋๋ฌธ์ sudo pip install
์ ์ฌ์ฉ์ ๋ํด ์๊ฐํ๊ฒ ํ๊ณ ์ด๊ฒ์ด ๊ถํ ๋ฌธ์ ์ธ์ ์์คํ
์ ์์ฃผ ์ค๋จ์ํฌ ์ ์๋ ๋ฐฉ๋ฒ์ ๋ํด ์๊ฐํ๊ฒ ๋ง๋ ์ดํ๋ก ์ต๊ทผ์ ์ด๊ฒ์ ๋ํด ์๊ฐํ์ต๋๋ค.
์ด๋ฅผ ์ํด ๋ ๋์ ์ต์ข
๋ชฉํ๊ฐ --user
๊ฐ ๊ธฐ๋ณธ๊ฐ์ด ์๋๊ณ ๋ง๋ฒ์ ๊ถํ ๊ฒ์ฌ๊ฐ ์๊ณ --global
, --system
์ ๊ฐ์ ์ ํ๋๊ทธ๋ฅผ ์ถ๊ฐํ๋ ๊ฒ์ด ์๋์ง ๊ถ๊ธํฉ๋๋ค. ๋๋ --no-user
๋ ์ด์ ๋์์ ๋ณต์ํฉ๋๋ค. ์ด๊ฒ์ ์ค์น ๋ฐฉ๋ฒ/์์น์ ๊ด๊ณ์์ด ๋์ผํ ๋์์ ๊ฐ๊ธฐ ๋๋ฌธ์ ์ฌ๋๋ค์๊ฒ ์ค๋ช
ํ๊ธฐ๊ฐ ๋ ์ฝ์ต๋๋ค.
์, ๊ทธ๊ฒ์ด ์ฐ๋ฆฌ๊ฐ ๊ฐ๊ณ ์ถ์ ๊ธธ์ด๋ผ๊ณ ๊ฒฐ์ ํ๋ค๋ฉด, ์ค๋๋ ์ฐ๋ฆฌ๊ฐ ์๋ ๊ณณ์์ ์ด๋ป๊ฒ ๊ทธ ์ง์ ์ ๋๋ฌํ ๊ฒ์ธ๊ฐ์ ๋ฌธ์ ๊ฐ ์ฌ์ ํ ๋จ์ ์์ต๋๋ค. ๋ถ๋ช
ํ ์ด๋ค ์์ ์์ ๊ธฐ๋ณธ๊ฐ์ ์ ํํ๋ ์๋นํ ํฐ ๋ณํ๊ฐ ์ผ์ด๋๋ฏ๋ก ์๋นํ ๊ธด ๋ฆฌ๋ ํ์์ด ํ์ํฉ๋๋ค. ๊ทธ๋ ๊ฒ ํ๊ธฐ๋ก ๊ฒฐ์ ํ๋ค๋ฉด ๊ฐ์ฅ ์ข์ ๋ฐฉ๋ฒ์ --user
--global
์ ๊ฐ์ ์ ์ต์
์ ์ถ๊ฐํ ๋ค์ ํ๋ ๋๋ ๋ค๋ฅธ ์ต์
์ ๊ตฌ์ฑ๋์ง ์์์ผ๋ฉฐ ์ฐ๋ฆฌ๊ฐ ์ด์ผ๊ธฐํ ๊ถํ ํ์ธ ๋ง๋ฒ์ ์ํํ๊ณ ๋ง๋ฒ์ด --global
๋์์ ์ฌ์ฉํ๊ธฐ๋ก ๊ฒฐ์ ํ๋ค๋ฉด ๋งค์ฐ ํฐ ๋น์ถ์ฒ ๊ฒฝ๊ณ ๋ฅผ ๋ฐ์์ํฌ ๊ฒ์
๋๋ค. ์ด ์ฌ์ฉ ์ค๋จ ๊ฒฝ๊ณ ๋ ์ฐ๋ฆฌ๊ฐ ๋ฐํํ ๋ค๋ฅธ ์ฌ์ฉ ์ค๋จ ๊ฒฝ๊ณ ๋ณด๋ค ํจ์ฌ ๋ ์ค๋ ์ง์๋ฉ๋๋ค. ์ด๋ ๋์์ ์๋นํ ํฐ ๋ณํ๊ฐ ๋ ๊ฒ์ด๊ธฐ ๋๋ฌธ์
๋๋ค. ๋งค์ง ํด๋ฐฑ์ ๋๊ณ ๋ฏธ๋ ๋์์ ๊ตฌํํ์ฌ ์ฌ๋๋ค์ด ์ค๋ ๊ทธ ๋์์ ์ป์ ์ ์๋๋ก ํ๋ ์ต์
๋ ์ถ๊ฐํ๊ณ ์ถ์ต๋๋ค.
๋ ๋ค๋ฅธ ์ค์ํ ์ง๋ฌธ์ ์ค์นํ๋ ค๋ Python์ ์ฌ์ฉ์ ์ฌ์ดํธ๊ฐ ํ์ฑํ๋์ด ์์ง ์์์ ๊ฐ์งํ ๊ฒฝ์ฐ ์ด๋ป๊ฒ ํด์ผ ํ๋์ง์
๋๋ค. ์ด ๊ฒฝ์ฐ์๋ ๋จ์ํ --user
๊ฐ ์ค๋ฅ์ด๊ณ ํด๋น Python์ ๊ฒฝ์ฐ ๊ธฐ๋ณธ๊ฐ์ --global
๋ก ๋์ฒดํฉ๋๋ค. ์ด๊ฒ์ ๋ด๊ฐ ์๋์ผ๋ก ๋ฏฟ๋ virtualenv/venv๋ฅผ ๋ค๋ฃฐ ๊ฒ์ด๋ฉฐ ๋๊ตฐ๊ฐ๊ฐ ์์ ํ ์ปดํ์ผ๋ Python์ ์ฌ์ฉํ์ฌ "๋ ๋ฌด๊ฑฐ์ด" ๊ฐ์ค์น ๊ฒฉ๋ฆฌ ํ๊ฒฝ์ ์ํ๋ ๊ฒฝ์ฐ site.py
๋ฅผ ํจ์นํ์ฌ ENABLE_USER_SITE
๋ฅผ False
๋ก ์ค์ ํ ์ ์์ต๋๋ค.
+1, ๋๋ --system์ ํฌํํ ๊ฒ์ ๋๋ค.
๋๋ ๋น์ ์ด ์ด๊ฒ์ ์ข์ํ ๊ฒ์ด๋ผ๊ณ ํ์ ํฉ๋๋ค. Ubuntu ๊ธฐ๋ณธ๊ฐ์ด ๋ณ๊ฒฝ๋์์ต๋๋ค.
https://launchpad.net/ubuntu/+source/python-pip/1.5.6-4ubuntu1
2015๋ 2์ 9์ผ ์คํ 4์ 41๋ถ์ Donald Stufft๋ ๋ค์๊ณผ ๊ฐ์ด ์ผ์ต๋๋ค.
์ด๋ฅผ ์ํด ๋ ๋์ ์ต์ข ๋ชฉํ๋
--user
๊ฐ
๊ธฐ๋ณธ์ ์ผ๋ก ๋ง๋ฒ์ ๊ถํ ๊ฒ์ฌ๊ฐ ์์ผ๋ฉฐ--global
์ ๊ฐ์ ์ ํ๋๊ทธ๋ฅผ ์ถ๊ฐํฉ๋๋ค.
--system
๋๋--no-user
์ด์ ๋์์ ๋ณต์ํฉ๋๋ค. ์ด
์๊ด์์ด ๊ฐ์ ํ๋์ ํ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ์ฌ๋๋ค์๊ฒ ์ค๋ช ํ๊ธฐ๊ฐ ๋ ์ฝ์ต๋๋ค.
์ด๋ป๊ฒ/์ด๋์ ๋ฌผ๊ฑด์ด ์ค์น๋๋์ง.
--system
๋ ์ค์ ๋ก ์ผ๋ถ Python์๋ง ์ ์ฉ๋๊ธฐ ๋๋ฌธ์ ์๋ชป๋ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ๋ค์์๋ ์ ์ฉ๋์ง ์์ต๋๋ค.
์ด๊ฒ์ _only_ Python์ด ์์คํ
์์ ๋ฐฐ์ก๋๋ *nix ์์คํ
์๋ง ์ ์ฉ๋ฉ๋๋ค. ๋๋ --global
๊ฐ ๊ทธ ๊น๋ฐ์ ๋ํด ํจ์ฌ ๋ ๋์ ์ด๋ฆ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ FML, ์ Debian/Ubuntu๋ ์์ ์ฌ์ฉ ์ฌ๋ก๋ฅผ ๊นจ๋ ๋ฌด์์ ํจ์น๋ฅผ ์ง์์ ์ผ๋ก ์ถ๊ฐํด์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๊น?
๋ฐ๋ผ์ Ubuntu ํจ์น๊ฐ ๋๋๋ ค์ง๋ฉด ์ฌ๊ธฐ์ ์์ ๋๋ ์ผ์ ์ ์ด๋ป๊ฒ ๋ฉ๋๊น? ์ผ์ฃผ์ผ/ํ ๋ฌ/3๊ฐ์/6๊ฐ์/๋ ...?
๊ณ ์ ์ด ๋ฌด์์ ์๋ฏธํ๋์ง์ ๋ฐ๋ผ ๋ค๋ฆ ๋๋ค.
์ ์ ๋์ 2๊ฐ์ ๊ฒ์๋ฌผ์ด ์๋ ์์ด๋์ด๋ฅผ ์ฌ์ฉํ๊ณ ์๋ค๊ณ ๊ฐ์ ํ๋ฉด(์ฌ์ ํ ๋ค๋ฅธ pip ๊ฐ๋ฐ์์ ์น์ธ์ด ํ์ํจ) ๋ค์์ด ์ ์ฉ๋๋ ์ ํ ๊ณํ์ ๋งค์ฐ ๋น ๋ฅด๊ฒ ์ป์ ์ ์์ต๋๋ค.
--user
๊ฐ ์ ๋ฌ๋๋ฉด ์ฐ๋ฆฌ๋ _ํญ์_ ์ฌ์ฉ์ ์ฌ์ดํธ ํจํค์ง์ ์ค์นํฉ๋๋ค.--global
(๋๋ ๋ฌด์์ด๋ )์ด ์ ๋ฌ๋๋ฉด ์ฐ๋ฆฌ๋ _ํญ์_ ๊ธ๋ก๋ฒ ์ฌ์ดํธ ํจํค์ง์ ์ค์นํฉ๋๋ค.--global
๊ฐ ์ ๋ฌ๋ ๊ฒ์ฒ๋ผ ์๋ํฉ๋๋ค.--global
๊ฐ ์ ๋ฌ๋ ๊ฒ์ฒ๋ผ ์๋ํ๋์ง ๊ฐ์งํฉ๋๋ค.sys.path
์ฐ๊ธฐ ๊ถํ์ด ์๋์ง, --user
๊ฐ ์ ๋ฌ๋ ๊ฒ์ฒ๋ผ ์๋ํ์ง ์๋์ง ๊ฐ์งํฉ๋๋ค.--global
๊ฐ ์ ๋ฌ๋ ๊ฒ์ฒ๋ผ ํ๋ํ๊ณ ๋ฏธ๋์ ์ด๋ ์์ ์์ ์ด๊ฒ์ ๋์์ด ๋ณ๊ฒฝ๋๊ณ ๋์ --user
์ ์ค์น๋๋ค๋ ๋น์ถ์ฒ ๊ฒฝ๊ณ ๋ฅผ ์ธ์ํฉ๋๋ค. ์ด๊ฒ์ ๋๊ตฐ๊ฐ๊ฐ ์์คํ
Python์ sudo pip install foo
์ ์ฌ์ฉํ๋ ๊ฒ์ ๋ง์ง๋ ์์ง๋ง, ์ด๋ ์์ ์์ ์ด๊ฒ์ด --user
๋ฅผ ์๋ฏธํ ๊ฒ์ด๋ผ๋ ๊ฒฝ๊ณ ๋ฅผ ์ถ๋ ฅํ๊ณ ๋ช
์์ ์ผ๋ก --global
์ ์ฌ์ฉํ๊ธฐ ์์ํ๋ผ๊ณ ์๋ ค์ค๋๋ค.
--user
๊ฐ ์ ๋ฌ๋๋ฉด ์ฐ๋ฆฌ๋ _ํญ์_ ์ฌ์ฉ์ ์ฌ์ดํธ ํจํค์ง์ ์ค์นํฉ๋๋ค.--global
(๋๋ ๋ฌด์์ด๋ )์ด ์ ๋ฌ๋๋ฉด ์ฐ๋ฆฌ๋ _ํญ์_ ๊ธ๋ก๋ฒ ์ฌ์ดํธ ํจํค์ง์ ์ค์นํฉ๋๋ค.--global
๊ฐ ์ ๋ฌ๋ ๊ฒ์ฒ๋ผ ์๋ํฉ๋๋ค.--global
๊ฐ ์ ๋ฌ๋ ๊ฒ์ฒ๋ผ ์๋ํ๋์ง ๊ฐ์งํฉ๋๋ค.--user
๋ฅผ ๊ธฐ๋ณธ๊ฐ์ผ๋ก ์ฌ์ฉํฉ๋๋ค.๊ทธ๋ฌ๋ ์ฒซ ๋ฒ์งธ ๋์์์ ๋ ๋ฒ์งธ ๋์์ผ๋ก ์ด๋ํ๋ ค๋ฉด ์๋นํ ๊ธด ํ์๋ผ์ธ์ด ํ์ํฉ๋๋ค. ์ด๋ ๋ชจ๋ ์ํํธ์จ์ด(์: ์๊ธ, ์๋ฆฌ์ฌ, ๊ผญ๋๊ฐ์) ๋๋ ๋ฐฐํฌ ์คํฌ๋ฆฝํธ(์: ์ ์ธ๊ณ ์์ฒ ๊ฐ์ ํ๋ก์ ํธ์ ๊ตฌ์์ง ๋ง์ถคํ Fabric ์คํฌ๋ฆฝํธ)์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ์ ๋ง ์ค์ํ ์ฃผ์ ๋ณ๊ฒฝ ์ฌํญ์ด ๋ ๊ฒ์
๋๋ค. sudo pip install <foo>
๋ ๊ธ๋ก๋ฒ Python์ ์ค์น๋ฉ๋๋ค. ์ฌ๋๋ค์ด ๊ฒฝ๊ณ ๋ฅผ ๋ณผ ์ ์๋๋ก ๊ธด ์๊ฐ์ ์ฃผ์ด์ผ ํ๋ฉฐ ์ค์ ๋ก ํด๋น ๋์์ด ํ์ํ ๊ฒฝ์ฐ ๋ช
์์ ์ธ --global
ํ๋๊ทธ๋ฅผ ์ ๋ฌํ๋๋ก ์ํํธ์จ์ด์ ์คํฌ๋ฆฝํธ๋ฅผ ์์ ํด์ผ ํฉ๋๋ค.
๋๋ Donald์ ์ ์์ด ์ข์ ๊ณํ์ด๋ผ๊ณ ์๊ฐํ์ง๋ง, pip ํ์ด ๊ทธ ์ ๊ทผ ๋ฐฉ์์ ์ฑํํ๊ธฐ๋ก ๊ฒฐ์ ํ๋ค๋ฉด CPython์ 3.5 ๋ฆด๋ฆฌ์ค ์ฐจ๋จ ๋ฌธ์ ๋ฅผ ์ ์ถํ์ฌ Windows์ ๊ฒฝ๋ก์ ์ ์ญ ์คํฌ๋ฆฝํธ์ ํจ๊ป ์ฌ์ฉ์๋ณ ์คํฌ๋ฆฝํธ ๋๋ ํ ๋ฆฌ๋ฅผ ์ถ๊ฐํด์ผ ํฉ๋๋ค. ํ๋. 3.5์์ ๊ธฐ๋ณธ์ ์ผ๋ก Program Files์ ์ค์นํ๋ ์ค์์น์ ํจ๊ป ์ด๋ฅผ ์ถ๊ฐํ๋ฉด ๊ด๋ฆฌ์ ๊ถํ ์์ด ์ค์นํ๋ ์ํ๋ ๋์์ด ๊ณ์ "๊ทธ๋ฅ ์๋"ํด์ผ ํฉ๋๋ค.
pip ๊ตฌ์ฑ ํ์ผ์ ํตํด ๊ธฐ๋ณธ ์ค์น ์์น๋ฅผ ๋ณ๊ฒฝํ ์ ์๋ ๊ฒ๋ ์ ์ฉํ ์ ์์ผ๋ฏ๋ก ๊ธฐ๋ณธ ์ค์ ์ด ์์ง ๋ณ๊ฒฝ๋์ง ์์ ๊ฒฝ์ฐ์๋ ์ฌ๋๋ค์ด ์์ ์ ์์คํ ์์ "๊ธฐ๋ณธ์ ์ผ๋ก ์ฌ์ฉ์๋ณ"์ ์ ํํ ์ ์์ต๋๋ค. (์: "default-install=user" ๋ "default-install=global")
@dstufft : ๋ด๊ฐ ํ์ํ ๊ฒฝ์ฐ ์ฐ๋ถํฌ ๋ฒ๊ทธ์ ๋ํด ์ค๋ช ํ ๋๋ก ์ ์์ ๊ตฌํํ ์ ์๊ฒ ๋ ๊ฒ์ ๊ธฐ์๊ฒ ์๊ฐํฉ๋๋ค. ํธ๋ ํฌ์์ ํด๋น ๋์์ ์ป์ผ๋ฉด ํ์ฌ ์ฐ๋ถํฌ ํจ์น๋ฅผ ๋ฐฑํฌํธํ๊ณ ๋ฌผ๋ก ์ด๊ฒ์ผ๋ก ๊ต์ฒดํฉ๋๋ค.
๋์์ด ํ์ํ๋ฉด ๊ณ์ ์๋ ค์ฃผ์ธ์.
@dstufft ์ ๊ณํ์ +1์
๋๋ค. ๋ช
์๋ ์ด์ ๋ก --global
๋ฅผ ์ด๋ฆ์ผ๋ก ์ฌ์ฉํ๊ฒ ์ต๋๋ค. ์ฐ๋ฆฌ๋ ์ง๊ธ ์ถฉ๋ถํ ์ค๋ซ๋์ ์ธํ๋ฆฌ์ ์์ ์์์ต๋๋ค. ๊ฐ์.
Python 3.5๊ฐ Windows์ PATH์ ์ฌ์ฉ์ ์ฌ์ดํธ ๋๋ ํ ๋ฆฌ๋ฅผ ์ถ๊ฐํ๋ค๋ @ncoghlan ์ ์ ์์ ๋ํด O'n ๋ฐ +1์ ๋๋ค. ์ด ์ ํ์ ์ํด ๋ ์ด์ ๊ฑธ๋ฆผ๋์ด ๋์ง ์๋๋ก ํฉ์๋ค.
๋๋ ๋ํ @dstufft ์ ๊ณํ์ ๋ํด +1 ์ด๊ณ --global
์ ๋ํด +1 ์ด์ง๋ง sudo pip install foo
์ --global
$ ๊ฐ ํ์ํ์ง ์ฌ์ ํ ๊ถ๊ธํฉ๋๋ค. ์ฌ์ค ๋ฃจํธ๊ฐ ์ฌ์ฉ์ ์ฌ์ดํธ ํจํค์ง๋ฅผ ๊ฐ์ง ํ์๊ฐ ์์ต๋๊น? ๊ธฐ๋ณธ์ ์ผ๋ก ์ฌ์ดํธ ํจํค์ง๋ฅผ ํด์ ํ๋๋ก ํน๋ณํ ๊ฒฝ์ฐ ๋ฃจํธ๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๊น? ( sudo pip install foo
๋ฅผ ์ง๊ธ์ฒ๋ผ ์๋ํ๊ฒ ํ๋ ค๋ฉด)
ํ์ฌ ์ํ์์ ๋ฃจํธ์ --user
๋ฅผ ์ฌ์ฉํ๋ ์ฌ๋์ ๋ณธ ์ ์ด ์์ง๋ง ์ค์ ๋ก ๊ทธ๋ฌํ ์ฌ์ฉ ์ฌ๋ก๋ฅผ ์๊ณ ์๋ ์ฌ๋์ด ์๋ค๋ฉด ์๊ณ ์ถ์ต๋๋ค.
๋์๊ฒ ์ผ์ด๋ ํ ๊ฐ์ง ์๊ฐ์ ์ฌ์ฉ์ ์ฌ์ดํธ ๋๋ ํ ๋ฆฌ๊ฐ ์ค์น๋ ์ฌ๋ฌ ๋ฒ์ ์ Python์์ ์ด๋ป๊ฒ ์๋ํฉ๋๊น?
Python 2.7 ๋ฐ 3.4(Python 3.4์ ๊ธฐ๋ณธ Python)์์ pip install pytest --user
๋ฅผ ์ํํ๋ฉด py.test
๋ช
๋ น์ด ์คํ๋๋ ๋ฒ์ ์ ๋ฌด์์
๋๊น? ๋๋ ๋ ๊ฐ์ ์ค์น๊ฐ ์๋ก๋ฅผ ๋ฎ์ด์ฐ๊ฒ ๋์ด "๋ง์ง๋ง ํ๋๊ฐ ์ด๊ธฐ๋" ์ํฉ์ด ๋ ๊ฒ์ด๋ผ๊ณ ์์ฌํฉ๋๋ค. ์ด๋ ์ข์ง _์์ต๋๋ค_. ๋ํ "๋ง์ง๋ง์ด ์น๋ฆฌ"์ด๊ณ 3.4 ๋ฒ์ ์ดํ์ 2.7 ๋ฒ์ ์ ์ค์นํ๋ ๊ฒฝ์ฐ 3.4๋ฅผ ๋ค์ ๊ธฐ๋ณธ๊ฐ์ผ๋ก ์ค์ ํ๋ ค๋ฉด ์ด๋ป๊ฒ ์์ ํด์ผ ํฉ๋๊น?
์ ๊ฑฐ๋ ์ด๋ป์ต๋๊น? ๋ค์ ์๋๋ฆฌ์ค๋ฅผ ๊ณ ๋ คํ์ญ์์ค(ํ ์คํธ๋์ง ์์, ๊ธฐ๋ณธ ๋ฉํฑ์ด ์์๋๋ ์ํ์ ๊ฐ์ํ์ง ์์ผ๋ ค๋ฉด ๊นจ๋ํ ์ปดํจํฐ๋ฅผ ์ค์ ํด์ผ ํ๊ธฐ ๋๋ฌธ์).
C:\Apps\Python34\python.exe -m pip install pytest --user
C:\Apps\Python27\python.exe -m pip install pytest --user
C:\Apps\Python34\python.exe -m pip uninstall -y pytest
์ฒซ์งธ, ๋ ๋ฒ์งธ ๋ช ๋ น์ด ๊ธฐ์กด ํ์ผ์ ๋ฎ์ด์ด๋ค๋ ๊ฒฝ๊ณ ๋ฅผ ํ์ํ์ง ์์ ์ด์ ๋ ๋ฌด์์ ๋๊น? ์๋๋ฉด ๊ทธ๋ด๊น์? ํ๋ ํ์ง ์๋ ๋ด๊ฐ ํด์ผ ํ ์ผ์ ๋ํ ์ ํ๊ถ์ด ์์ต๋๊น?
๋์งธ, py.test.exe
RECORD
ํ์ผ์ ๊ฐ๊ณผ ์ผ์นํ์ง ์๊ธฐ ๋๋ฌธ์ ์ ๊ฑฐ๊ฐ ์คํจํ์ง ์์ต๋๊น? ์คํจํ๋ฉด ์ด๋ป๊ฒ ์ ๊ฑฐํฉ๋๊น? ์คํจํ์ง ์์ผ๋ฉด ๋ด Python 2.7 pytest ๋ณต์ฌ๋ณธ์ด ์์๋ฉ๋๊น(exe ์ญ์ )?
๊ทธ๋ฆฌ๊ณ ๋ง์ง๋ง์ผ๋ก (์ง๊ธ์!) ์ฌ์ฉ์ ์คํฌ๋ฆฝํธ ๋๋ ํ ๋ฆฌ๊ฐ PATH์ ์์คํ ์คํฌ๋ฆฝํธ ๋๋ ํ ๋ฆฌ ์์ด๋ ๋ค์ ๊ฐ๊ฒ ์ต๋๊น? IMO, ๊ทธ๋ ์ง ์์ผ๋ฉด ์ฌ์ฉ์๊ฐ "๊ธฐ๋ณธ Python"์ด ๋๋๋ก ์์ฒญํ์ง _์์_ Python์ ํจํค์ง๋ฅผ ์ค์นํ๋ฉด "๊ธฐ๋ณธ" Python์ ์์คํ ์ฌ์ดํธ ํจํค์ง์ ์ค์น๋ ๋์ผํ ํจํค์ง๋ฅผ ๋ฌด์ํ ์ ์๊ธฐ ๋๋ฌธ์ IMO๊ฐ ๋ฐ๋ผ์ผ ํฉ๋๋ค.
ํ , ์๋ง๋ ์ฐ๋ฆฌ๊ฐ ์ด ๋ณ๊ฒฝ์ ํ๊ธฐ ์ ์ ํด๊ฒฐํด์ผ ํ ๋ช ๊ฐ์ง ๋ฏธํด๊ฒฐ ์ง๋ฌธ์ด ์์ ๊ฒ์ ๋๋ค...
๊ณต์ Windows ์ฌ์ฉ์ ์คํฌ๋ฆฝํธ ๋๋ ํ ๋ฆฌ์ ์ด๋ฆ ์ถฉ๋์ ๊ณต์ bin ๋๋ ํ ๋ฆฌ๊ฐ ์๋ POSIX ์์คํ ์์ ์ฒ๋ฆฌ๋๋ ๊ฒ๊ณผ ๋์ผํ ๋ฐฉ์์ผ๋ก ์ฒ๋ฆฌ๋ ๊ฒ์ผ๋ก ์์ํฉ๋๋ค. Python 3์ ์ค์น๋ ํจํค์ง์ ๋ํด ๊ท์ ๋์ง ์์ ์คํฌ๋ฆฝํธ ์ด๋ฆ์ ์ค์นํ์ง ์์ผ๋ฏ๋ก ๊ท์ ๋์ง ์์ ์ด๋ฆ์ Python 2 ๋ฒ์ ์ ๋ํ๋ ๋๋ค.
์์คํ ์ค์น ๋๋ ์ฌ์ฉ์๋ณ ์ค์น๊ฐ ๊ธฐ๋ณธ์ ์ผ๋ก ์ฐ์ ํ๋์ง ์ฌ๋ถ์ ๋ํด์๋ ๋ง์ฐฌ๊ฐ์ง์ ๋๋ค. ์ฌ์ฉ์ ์คํฌ๋ฆฝํธ ๋๋ ํ ๋ฆฌ๋ฅผ ์์คํ ๋๋ ํ ๋ฆฌ ๋ค์ ๋์ญ์์ค.
"Python 3์ ์ค์น๋ ํจํค์ง์ ๋ํด ์ ๊ทํ๋์ง ์์ ์คํฌ๋ฆฝํธ ์ด๋ฆ์ ์ค์นํ์ง ์์ต๋๋ค." - ์๋ง๋ pip ๋ฐ setuptools(Python 3์์)๊ฐ ์ฌ๊ธฐ์์ ์ค์นํ์ง ์๋๋ค๋ ๊ฒ์ ์๋ฏธํฉ๋๊น? ๊ทธ ๋๊ตฌ์ ๋ํ ๋ณ๊ฒฝ ์ฌํญ์ ๋๊น?
์, ๊ทธ๋ฆฌ๊ณ ํ. ๋ด ๊ทผ์ก ๋ฉ๋ชจ๋ฆฌ๋ ๊ธฐ๋ณธ Python(3.4)์ ์ค์นํ๊ธฐ ์ํด "pip install foo"๋ฅผ ์ ๋ ฅํ๋๋ก 100% ํ๋ จ๋์์ต๋๋ค. ๋ค์ ํ๋ จํ๋ ๊ฒ์ ์ง์ฅ์ด ๋ ๊ฒ์ ๋๋ค.
๋ํ Windows ์ฌ์ฉ์๋ ์์คํ Python์ด ๊ท์น์ ๋ง๋๋ Unix ์ฌ์ฉ์์ ๋ฌ๋ฆฌ "python"์ด Python 2 ๋๋ 3์ ์๋ฏธํ๋์ง("์ด๋ฅผ ๊ธฐ๋ณธ Python์ผ๋ก ์ค์ " ๋ฐ "PATH์ ์ถ๊ฐ"๋ฅผ ํตํด) ์ ํํ ์ ์์ต๋๋ค. ๋ฐ๋ผ์ Python 3.5๋ฅผ ๊ธฐ๋ณธ์ผ๋ก ์ค์ ํ๊ณ ์ถ๋ค๊ณ ํ๋ฉด "pip"(๋๋ ๋ค๋ฅธ ์ ๊ทํ๋์ง ์์ ์ด๋ฆ)๊ฐ ํด๋น ๋ฒ์ ์ ์ฐธ์กฐํ๋ฉด ์ ๋๋ ์ด์ ๋ ๋ฌด์์ ๋๊น? Windows์ Python 3.5๋ง ์ค์น๋ ์ฌ์ฉ์๊ฐ ์์คํ Python์ ์ด๋ฆ์ด ํ์ํ ๋ฐฉ์์ ๋ํ Unix ๋ฌธ์ ๋๋ฌธ์ ์ ๊ทํ๋์ง ์์ ์ด๋ฆ์ ์ฌ์ฉํ ์ ์๋ค๋ ๊ฒ์ ์ด์ํ๊ฒ ๋ณด์ ๋๋ค. (Unix ์ ์ฝ ์กฐ๊ฑด์ ๋ํ ๋ด ์ค๋ช ์ด ์ ํํ์ง ์์ ๊ฒฝ์ฐ ์ฌ๊ณผ๋๋ฆฝ๋๋ค. ๋ฌธ์ ๋ฅผ ์ ๋๋ก ์ดํดํ์ง ๋ชปํฉ๋๋ค.) ์ฌ๋ฌ Python ๋ฒ์ ์ ์ค์นํ๋ ์ฌ๋๋ค์๊ฒ๋ ์๋ฃจ์ ์ด ํ์ํ์ง๋ง ํด๋น ์๋ฃจ์ ์ ํ๋์ ๋ฒ์ ๋ง ํ์ํ ๋๋ค์์๊ฒ ์ํฅ์ ๋ฏธ์น์ง ์์์ผ ํฉ๋๋ค.
์๋ง๋ ๊ฐ์ฅ ๊ฐ๋จํ ๋๋ต์ ์ฌ์ฉ์ ์ฌ์ดํธ ํจํค์ง ๋๋ ํ ๋ฆฌ์ ๋ง์ฐฌ๊ฐ์ง๋ก ์ฌ์ฉ์ ์คํฌ๋ฆฝํธ ๋๋ ํ ๋ฆฌ์ ๋ฒ์ ์ด ์ง์ ๋์ด์ผ ํ๋ค๋ ๊ฒ์ ๋๋ค.
์, ๊ทธ๋ฆฌ๊ณ ์ด ๋ ผ์์ ์ฌ๊ธฐ๋ณด๋ค๋ python-dev์ ๊ดํ ๊ฒ์ด์ด์ผ ํฉ๋๊น? ๊ทธ๊ฒ์ ๋ ์ผ๋ฐ์ ์ผ๋ก ์ฌ์ฉ์ ์ฌ์ดํธ ๋๋ ํ ๋ฆฌ์ ๊ดํ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ๋๊น?
python-dev์์ Windows ์ฌ์ฉ์๋ณ ์คํฌ๋ฆฝํธ ๋๋ ํ ๋ฆฌ์ ๋ํ PEP 370 ๋์์ธ ํ ๋ก ์ ๋ค์ ์ฌ๋ ๊ฒ์ ํ์คํ ํฉ๋ฆฌ์ ์ผ ๊ฒ์ ๋๋ค. Windows์ ์ ์ญ ์คํฌ๋ฆฝํธ ์ค์น๋ Python ๋ฒ์ ์ผ๋ก ๋ฒ์๊ฐ ์ง์ ๋์ง๋ง ์ฌ์ฉ์๋ณ ์คํฌ๋ฆฝํธ ์ค์น๋ ๊ทธ๋ ์ง ์๋ค๋ ๊ฒ์ด ์ด์ํฉ๋๋ค.
์ด๋ ๋ ์์ค(์ ์ญ ๋๋ ์ฌ์ฉ์๋ณ)์์ ์คํ ํ์ผ์ ๋ํด ๊ณต์ ๋ค์์คํ์ด์ค๋ฅผ ์ผ๊ด๋๊ฒ ์ฌ์ฉํ๋ POSIX์ ์ํฉ๊ณผ ๋์กฐ๋๋ฏ๋ก ๋ฐํ์ ์ ์ด๋ฆ ์๋์์ ํตํด์๊ฐ ์๋๋ผ ์ค์น ์ ์ด๋ฆ ์ถฉ๋์ด ๋ํ๋ ๊ฐ๋ฅ์ฑ์ด ๋ ํฝ๋๋ค.
๋ณ๋ ฌ ์ค์น๋ฅผ ์ฒ๋ฆฌํ๋ ์ผ๋ฐ์ ์ธ ์๋ฃจ์ ์ "-m" ์ค์์น๊ฐ ๋ ๊ฒ์ ๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ๋ณ๋์ ์คํฌ๋ฆฝํธ์ shebang ์ค ๋ด์ฉ์ ์ถ์ธกํ๊ธฐ ๋ณด๋ค๋ ํญ์ ํธ์ถํ๋ Python์ ์ ์ ์์ต๋๋ค.
-m
๋ฅผ ์ดํดํ์ง๋ง, ์ง๋ ์๊ฐ์ ๋ฌธ์ํ ๋ฐฉ๋ฒ์ ๋งฅ๋ฝ์์ ์ ๊ธฐ๋ ๊ฐ๋ ฅํ ์ ํธ๋๋ pip install foo
๋ฅผ ์ค์นํ๋ ํ์ค ๋ฐฉ๋ฒ์ผ๋ก ์ทจ๊ธํด์ผ ํ๋ค๋ ๊ฒ์ด์์ต๋๋ค( -m
๋ฐ ๋ฒ์ ์ด ์ง์ ๋ ๋ช
๋ น์ ํน์ํ ๊ฒฝ์ฐ์ ์์ธ๋ก ์ทจ๊ธ๋ฉ๋๋ค.
pip ๋งค๋ด์ผ์ ๋์์กฐ์ฐจ _์ธ๊ธ_ํ์ง ์์ต๋๋ค(Windows์์ pip ์์ฒด๋ฅผ ์
๊ทธ๋ ์ด๋ํ๊ธฐ ์ํด -m
๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ๋ ์ ์ธ).
๋๋ pip ํธ์ถ์ ์ฒ๋ฆฌํ๊ธฐ ์ํด stdlib ํจํค์ง ๋ฌธ์์์ -m์ ๊ถ์ฅํฉ๋๋ค.
๋ณ๋ ฌ Python ์ค์น ๋ค๋ฃจ๊ธฐ - ์ด๊ฒ์ด ์ ์ผํ ํธ์ถ ์คํ์ผ์
๋๋ค.
๊ธ๋ก๋ฒ ์ค์น, ์ฌ์ฉ์ ์ค์น ๋ฐ ๊ฐ์ ์ค์น๋ฅผ ์ํด ๋ชจ๋ ํ๋ซํผ์์ ์๋ํฉ๋๋ค.
ํ๊ฒฝ.
2015๋ 2์ 9์ผ ์คํ 7์ 58๋ถ์ ncoghlan์ ๋ค์๊ณผ ๊ฐ์ด ์ผ์ต๋๋ค.
pip ๊ตฌ์ฑ ํ์ผ์ ํตํด ๊ธฐ๋ณธ ์ค์น ์์น๋ฅผ ๋ณ๊ฒฝํ ์ ์์
๋ํ ์ฌ๋๋ค์ด "๊ธฐ๋ณธ์ ์ผ๋ก ์ฌ์ฉ์๋ณ"์ ์ ํํ๋๋ก ํ์ฉํ์ฌ
๊ธฐ๋ณธ๊ฐ์ด ๋ณ๊ฒฝ๋์ง ์์ ๊ฒฝ์ฐ์๋ ์์ฒด ์์คํ
์์ง. (์: "default-install=user" ๋ "default-install=global")
๋๋ ์ด๊ฒ์ ์ข์ํ๋ค. ํด๊ฒฐ ๋ฐฉ๋ฒ์ ๋ํด ๊ณ ๋ฏผํ๊ณ ์๋ ๊ฒ ์ค ํ๋๋
--user ๊ธฐ๋ณธ๊ฐ์ผ๋ก ๋ง์ด๊ทธ๋ ์ด์
ํ๋ ์
์คํธ๋ฆผ์ ๋ณด๋ค ๋ณด์์ ์ธ ์ ๊ทผ ๋ฐฉ์,
pip ์์คํ
์ ์์ ํ๊ณ ๋ค๋ฅธ ๊ฒ๊ณผ ์ผ๊ด์ฑ ์๊ฒ ๋ง๋๋ ๊ฒฝ์ ๋ชฉํ๋ฅผ ๋ฐฐํฌํฉ๋๋ค.
๋๊ตฌ. ์
https://bugs.launchpad.net/ubuntu/+source/python-pip/+bug/1419695
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=725848
๊ธฐ๋ณธ๊ฐ์ ์ ํํ๊ธฐ ์ํ ์์คํ
์ ์ฒด ๊ตฌ์ฑ ํ์ผ์ด ์๋ ๊ฒฝ์ฐ
์ต์ํ ๊ด๋ จ๋ ๋ชจ๋ ๊ธฐ๊ณ๋ ๋์ผํ ๊ฒ์ด๊ณ ๋ฐฐํฌํ์ ๊ทธ๋ ์ง ์์ ๊ฒ์
๋๋ค.
์ถํ ๋ธํ๋ฅผ ์ํํด์ผํฉ๋๋ค. ์ฐ๋ฆฌ๊ฐํด์ผ ํ ์ผ์ ๋ณ๊ฒฝํ๋ ๊ฒ์
๋๋ค.
config ํ์ผ์ ๋ง๋ค๊ณ ์ฌ์ฉ์์๊ฒ ๋ฌธ์ํํฉ๋๋ค. ๋ฐ์ํ๋ ๋ฌธ์ ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
์ฐ๋ฆฌ๊ฐ ์ฒ๋ฆฌํด์ผ ํ์ง๋ง ์ ์ด๋ ์ค๋ช
ํ๊ธฐ๋ ์ฌ์ธ ๊ฒ์
๋๋ค.
Debuntu๊ฐ ํ์ฌ ์ฌ์ดํธ ์ ์ฒด์ pip.conf ํ์ผ์ ์ค์นํ๋ค๊ณ ์๊ฐํ์ง ์์ต๋๋ค.
๋ค์ ํ์ธ).
https://pip.pypa.io/en/latest/user_guide.html#configuration
ํ ๊ฐ์ง ํฉ๋ณ์ฆ: Python 2 ๋ฐ Python 3์ ๋ํด ์๋ก ๋ค๋ฅธ pip ์คํฌ๋ฆฝํธ๋ฅผ ์ค์นํฉ๋๋ค.
๊ทธ๋์ ์ฐ๋ฆฌ๋ ๋ค๋ฅธ ๋ฒ์ ์ ๊ตฌ์ฑ ํ์ผ์ด ํ์ํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
Python, ์: /etc/{xdg/pip/}/pip{2,3}.conf ๋๋ ์ผ๋ถ.
2015๋ 2์ 10์ผ ์ค์ 1์ 24๋ถ์ Paul Moore๋ ๋ค์๊ณผ ๊ฐ์ด ์ผ์ต๋๋ค.
๋์๊ฒ ์ผ์ด๋ ํ ๊ฐ์ง ์๊ฐ์ ์ฌ์ฉ์ ์ฌ์ดํธ ๋๋ ํ ๋ฆฌ๊ฐ
์ฌ๋ฌ ๋ฒ์ ์ Python์ด ์ค์น๋์ด ์์ต๋๊น?
Debian/Ubuntu(๋ชจ๋ *nixes?)์์๋ ์ถฉ๋์ด ์์ต๋๋ค.
๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ~/.local/lib/pythonX.Y/site-packages์ ์ค์น๋ฉ๋๋ค.
๊ทธ๋๋ ~/.local/bin์์ ์ถฉ๋์ด ๋ฐ์ํฉ๋๋ค. ๋ค์์ ์ฌ์ฉํ์ฌ ํจํค์ง ์ค์น
pip install --user foo
๋ฐ pip3 install --user foo
๋ฅผ ์ฌ์ฉํ๋ ์คํฌ๋ฆฝํธ 'foo'๋
๊ฒฐ๊ตญ ~/.local/bin/foo ์คํฌ๋ฆฝํธ๋ฅผ ๋ฐฉํดํฉ๋๋ค.
์ด ๋ณ๊ฒฝ์ ํ ๊ฐ์ง ๋จ์ ์ Fedora๊ฐ ๊ธฐ๋ณธ์ ์ผ๋ก ~/.local/bin
๋ฅผ $PATH
์ ์ถ๊ฐํ๋ ์ ์ผํ ๋ค์ด์คํธ๋ฆผ ๋ฐฐํฌํ์ด๋ผ๊ณ ์๊ฐํ๋ค๋ ๊ฒ์
๋๋ค. ์ฌ์ฉ์ ์ฌ์ดํธ ํจํค์ง๊ฐ ์ฌ์ดํธ ํจํค์ง ์์ ์ค๋ ๊ฒ์ฒ๋ผ). ์ด์์ ์ผ๋ก ๋ค์ด์คํธ๋ฆผ์ ~/.local/bin
๊ฐ ๊ธฐ๋ณธ์ ์ผ๋ก $PATH
์ ์๋๋ก ์์คํ
์ ์์ ํ ์ ์์ต๋๋ค.
2015๋ 2์ 10์ผ ์ค์ 7์ 24๋ถ์ Donald Stufft๋ ๋ค์๊ณผ ๊ฐ์ด ์ผ์ต๋๋ค.
์ด ๋ณ๊ฒฝ์ ํ ๊ฐ์ง ๋จ์ ์ Fedora๊ฐ ์ ์ผํ ๋ค์ด์คํธ๋ฆผ์ด๋ผ๊ณ ์๊ฐํ๋ค๋ ๊ฒ์ ๋๋ค.
๊ธฐ๋ณธ์ ์ผ๋ก~/.local/bin
๋ฅผ$PATH
์ ์ถ๊ฐํ๋ ๋ฐฐํฌํ
์ฌ์ฉ์ ์ฌ์ดํธ ํจํค์ง๊ฐ ์ค๋ ๊ฒ์ฒ๋ผ /usr/bin ๋ฐ /usr/local/bin ์ ์
์ฌ์ดํธ ํจํค์ง ์ ์). ์ด์์ ์ผ๋ก ๋ค์ด์คํธ๋ฆผ์
~/.local/bin
๊ฐ ๊ธฐ๋ณธ์ ์ผ๋ก$PATH
์ ์๋๋ก ์์คํ .
๋ค, ํ์ง๋ง ์ด์ ๋ํด์๋ ๋ณ๋๋ก ๊ฒฐ์ ํ ์ ์์ต๋๋ค. (๋๋ ์คํ๋ ค ๋ค์ด์คํธ๋ฆผ
๋ฐฐํฌํ์ ๊ทธ๋ ๊ฒ ํ ์ ์์ต๋๋ค.)
(๊ทธ๋ฆฌ๊ณ ์ด๊ฒ์ ์ฌ์ฉ์์ฒ๋ผ /usr/bin ๋ฐ /usr/local/bin ์์ ์์ผ ํฉ๋๋ค.
์ฌ์ดํธ ํจํค์ง๋ ์ฌ์ดํธ ํจํค์ง๋ณด๋ค ๋จผ์ ์ต๋๋ค)
ํ , @ncoghlan ์ ๋ฐฉ๊ธ ๊ทธ ๋ฐ๋๋ก ๋งํ์ต๋๋ค. (Windows์์๋ ํนํ
์ปจํ
์คํธ) ์ฌ์ฉ์ ์คํฌ๋ฆฝํธ ๋๋ ํ ๋ฆฌ๋ _์ดํ_ ์์คํ
๋๋ ํ ๋ฆฌ์ฌ์ผ ํฉ๋๋ค. ์ด๋
์ฌ์ฉ์ ์คํฌ๋ฆฝํธ ๋๋ ํ ๋ฆฌ์ ๋ฒ์ ์ด ์๋ ํ ๋์ํฉ๋๋ค. ๋ง์ฝ
๋ฒ์ ์ด ์ง์ ๋์ด ๋ ๊ฑฑ์ ๋ฉ๋๋ค. ํ์ง๋ง ๊ทธ๊ฒ์ ์๋ง๋
Windows ์ฌ์ฉ์๋ ๋ฒ์ ์๋ ์คํฌ๋ฆฝํธ๊ฐ ์ถฉ๋ํ๊ณ
pip2/pip3์ ๊ฐ์ ๊ดด๋ฌผ, Unix ์ฌ์ฉ์๊ฐ ๊ฐ์ง๊ณ ์๋ ๋ฐฉ์ ;-)
์, ๊ทธ๋ฆฌ๊ณ ์คํฌ๋ฆฝํธ๋ฅผ ๋ฐฉํดํ๋ ๊ฒ์ --user
์ ์ ํํ ๊ด๋ จ์ด ์๋ ๋ณด๋ค ์ผ๋ฐ์ ์ธ ๋ฌธ์ ์
๋๋ค. Windows --global
์ค์น๋ฅผ ์ ์ธํ ๋ชจ๋ ๊ณณ์์ ๋์ผํ ๋ฌธ์ ๊ฐ ์กด์ฌํฉ๋๋ค. ๊ทธ ๋ฌธ์ ์ ๋ํ ํด๊ฒฐ์ฑ
์ ์ฐ๋ฆฌ๊ฐ ์ด ๋ฌธ์ ์ ๋ณ๋๋ก ํด๊ฒฐํด์ผ ํ๋ 2์ฐจ์ ๊ด์ฌ์ฌ/๋ฌธ์ ๋ผ๊ณ ์๊ฐํฉ๋๋ค.
๊ทธ๋์ ํ์ฌ ์๊ฐ:
--global
ํ๋๊ทธ๋ฅผ ์ฌ์ฉํ ๊ฒ์
๋๋ค.--user
์ ์ค์นํ๊ณ ~/.local/bin
๊ฐ $PATH
์ ์์ผ๋ฉด ์ผ์ข
์ ๊ฒฝ๊ณ ๊ฐ ํ์ํ ๊ฒ์
๋๋ค.--global
๋๋ --user
๋ก ํ๋์ฝ๋ฉํ๋ ์ผ์ข
์ default-install
์ต์
์ด ํ์ํฉ๋๋ค./etc/
์ ๋จธ์ ๋ณ ๊ตฌ์ฑ ํ์ผ์ด ์์ง๋ง pip๋ฅผ ์คํํ๋ Python ๋ฒ์ ์๋ง ํด๋น๋๋ ๊ฒ์ ์๋๋๋ค. ๋๋ ๊ทธ๊ฒ์ด ๋ค์ ๋ถ๋ฆฌ๋์ด ์๊ธฐ๋ ํ์ง๋ง ์ข์ ๊ธฐ๋ฅ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.์ฌ์ ํ ์ด๋ ค ์๋ ํ ๊ฐ์ง ์ค์ํ ์ง๋ฌธ์ด ์์ต๋๋ค. ๋๊ตฐ๊ฐ๊ฐ sudo pip install foo
๋ฅผ ํ๊ฑฐ๋ site-packages
๋๋ ํ ๋ฆฌ์ ์ธ ์ ์๋ ๊ถํ์ด ์๋ ๊ฒฝ์ฐ ์ฅ๊ธฐ์ ์ผ๋ก ์ฐ๋ฆฌ๋ ์ด๋ค ์ผ์ด ์ผ์ด๋๊ธฐ๋ฅผ ์ํฉ๋๊น?
๋ด๊ฐ ์๊ฐํ ์์๋ ์ต์ ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
--global
์ ์ค์นํฉ๋๋ค. ์ด๊ฒ์ ๊ฐ์ฅ ์ด์ ๋ฒ์ ๊ณผ ํธํ๋๋ ์ต์
์ด๋ฉฐ ์ฌ์ฉ์๊ฐ ์
๋ ฅํ ๋ ๊ธฐ๋ํ๋ ๊ฒ์ ๋ํ๋
๋๋ค. ๊ทธ๋ฌ๋ ๋ง์ ์์คํ
์์ ์์คํ
๊ณ ์ฅ์ ์ ๋ฐํ ์ ์๋ ์ ์ญ Python์ (์กฐ์ฉํ) ์๋ง์ผ๋ก ๋ง๋ ๋ค๋ ๋จ์ ์ด ์์ต๋๋ค.--user
์ ์ค์นํ๋ฉด ๊นจ์ง ์์คํ
์ผ๋ก๋ถํฐ ๋ณดํธํ ์ ์์ง๋ง(์ ์๊ฐ์๋?) ๋ฃจํธ ์ฌ์ฉ์๊ฐ /root/.local/
์ค์น๋ฅผ ๋ฐ์ ๊ฒ์ผ๋ก ์์ํ๋ ์ฌ๋์ ์์ ๊ฒ์
๋๋ค.--user
๋๋ --global
์๋์ผ๋ก ์ ํํ๋๋ก ์๊ตฌํฉ๋๋ค./etc/
๋ก ์ ํํ ์ ์๋ ์ค์์น๋ฅผ ์ ๊ณตํ์ฌ ์ธ ๋ฒ์งธ ์ต์
์ ํ์ฑํํฉ๋๋ค.๋ค ๋ฒ์งธ ์ต์ ์ด ๊ฐ์ฅ ์ข์ ์ต์ ์ผ ์ ์์ง๋ง ๋ชจ๋ ํ๋ซํผ/์๋๋ฆฌ์ค์์ ๋์ผํ๊ฒ ์๋ํ๊ณ ๋ชจ๋ ํ๋ซํผ์์ ์ดํด๋๋ ์๋ฃจ์ ์ ์ฐพ์ ์ ์๋ค๋ฉด ๋จผ์ ๋ค๋ฅธ ์ต์ ์ค ํ๋๋ฅผ ์ ํํด์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ๊ฐ๋ฅํ๋ค๋ฉด ํ๋ซํผ ๊ฐ ์ผ๊ด๋ ํ๋์ ์ ํธํฉ๋๋ค.
"๋๋ ์ฐ๊ธฐ ๊ถํ์ด ์์ต๋๋ค"๋ผ๋ ์๋๋ฆฌ์ค๊ฐ Windows์ ๋ชจ๋ ์ฌ๋์ด Python 3.5 ์ด์ ๋ฒ์ ์ ์ฌ์ฉํ๊ฑฐ๋ Conda๋ฅผ ์ฌ์ฉํ๋ ์ฌ๋ ๋๋ pyenv๋ฅผ ์ฌ์ฉํ๋ ์ฌ๋์ด๋ผ๋ ์๋๋ฆฌ์ค๊ฐ ๋ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ์ธ ๋ฒ์งธ ์ต์ ์ ๋์ ์ต์ ์ผ ๊ฐ๋ฅ์ฑ์ด ๋๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ค๋ฅ๋ฅผ ๋ฐ์์ํค๋ ๊ฒ์ ์ด๋ฌํ ๋ชจ๋ ๊ฒฝ์ฐ์ ์๋ชป๋ ์ผ์ฒ๋ผ ๋ณด์ด๋ฉฐ ๋ถํ ํ๊ธฐ์ ๋ค์ ์ฌ์ฉ์์๊ฒ ์น์ํ์ง ์์ต๋๋ค.
๊ทธ๋์ ์ ๋ 1๊ณผ 2 ์ฌ์ด์์ ์ฌ๋๋ค์ด (๊ฐ๋
์ ์ผ๋ก) sudo pip install --global foo
ํ๋ ๊ฒ์ด ์ผ๋ง๋ ๋์ ์ต๊ด์ด๋ผ๊ณ ์๊ฐํ๋์ง์ ๋ฌ๋ ค ์๋ค๊ณ ์๊ฐํฉ๋๋ค. Windows, Conda, pyenv ๋ฑ์์๋ "์ฐ๋ฆฌ๋ ๊ทธ๊ฒ์ด ๋์ ์ต๊ด์ด๋ผ๊ณ ์๊ฐํ์ง ์์ต๋๋ค"๋ผ๋ ๋๋ต์ด ์๋ค๊ณ ์๊ฐํฉ๋๋ค. *nix์์๋ "์ฌ์ฉ์๊ฐ ์์คํ
์ ๋ํด ์ํ๋ ์์
์ ์ํํ ์ ์์ด์ผ ํ์ง๋ง "๋์" ์ํฉ์์ ์ฌ์ฉ์๋ฅผ ์ด๋ ์ ์๋ ๋ ์ผ์ ์ ๊ณตํด์ผ ํฉ๋๋ค.
๊ทธ๋์ ๊ทธ๊ฒ์ ๋ํด ๋ ์๊ฐํด๋ณด๋ฉด, ๋๋ ์ฒซ ๋ฒ์งธ ์ ํ์ด ์ฐ๋ฆฌ์๊ฒ ์ฌ๋ฐ๋ฅธ ์ ํ์ด ๋์ด์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ฐ๋ฆฌ๊ฐ ์ค์ ๋ก ๋ณ๊ฒฝํ ๋์์ ์ ์ญ ๋๋ ํ ๋ฆฌ์ ์ค์นํ ๊ถํ ์์ด pip install foo
--user
์
๋ ฅํ๋ฉด ์ค๋ฅ๋ฅผ ๋ฐ์์ํต๋๋ค. ๋๋ ๊ทธ ๊ฒฝ์ฐ์ ์ค๋ฅ๋ฅผ ๋ฐ์์ํค๋ pip์ ์์กดํ๋ ์ฌ๋์ด ์์ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ๋ํ ๋ฃจํธ ์ฌ์ฉ์๋ก์์ pip install --user
๋ ๋๊ตฌ๋ ๊ธฐ๋ํ๊ฑฐ๋ ์ํ๋ ๊ฒ์ด ์๋ ๊ฐ๋ฅ์ฑ์ด ์์ผ๋ฉฐ ์ค์ ๋ก๋ ์ฌ์ฉ์๋ฅผ ์ํ ๋ฐํ์ ๋ง๋ค๊ณ ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
๋ฐ๋ผ์ ์ ๋ฐ์ดํธ๋ ์ ์์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
--user
๊ฐ ์ ๋ฌ๋๋ฉด ์ฐ๋ฆฌ๋ ํญ์ ์ฌ์ฉ์ ์ฌ์ดํธ ํจํค์ง์ ์ค์นํฉ๋๋ค.--global
๊ฐ ์ ๋ฌ๋๋ฉด ์ฐ๋ฆฌ๋ ํญ์ ๊ธ๋ก๋ฒ ์ฌ์ดํธ ํจํค์ง์ ์ค์นํฉ๋๋ค.--global
๊ฐ ์ ๋ฌ๋ ๊ฒ์ฒ๋ผ ์๋ํฉ๋๋ค.--global
๊ฐ ์ ๋ฌ๋ ๊ฒ์ฒ๋ผ ์๋ํ๋์ง ๊ฐ์งํฉ๋๋ค.default-install
๋ฅผ ๋ณด๊ณ ์กด์ฌํ๋ ๊ฒฝ์ฐ ์ด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก --user
๋๋ -global
๋ฅผ ์ฌ์ฉํฉ๋๋ค.--user
๊ฐ ์ ๋ฌ๋ ๊ฒ์ฒ๋ผ ์๋ํ์ง ์๋์ง ๊ฐ์งํฉ๋๋ค.--global
๊ฐ ํต๊ณผ๋ ๊ฒ์ฒ๋ผ ํ๋ํฉ๋๋ค.์ด๊ฒ์ ์ฌ์ฉ ์ค๋จ ๊ธฐ๊ฐ์ด ์์์ ์๋ฏธํ๋ฉฐ --user
๋๋ --global
๊ฐ ์๋ ๊ฒฝ์ฐ ์คํ ์ค์ธ Python์ ๊ธฐ๋ฅ์ ๊ธฐ๋ฐ์ผ๋ก ์ต์ ์ ์ถ์ธก์ ์๋ํ ๊ฒ์ผ๋ก ์์๋ฉ๋๋ค. , ์ ํจ ์ฌ์ฉ์ ๋ฐ ๊ตฌ์ฑ๋ ๊ธฐ๋ณธ ์ค์น ๋ฐฉ๋ฒ.
(๊ทธ๋ฆฌ๊ณ ์ด๊ฒ์ ์ฌ์ฉ์์ฒ๋ผ /usr/bin ๋ฐ /usr/local/bin ์์ ์์ผ ํฉ๋๋ค.
์ฌ์ดํธ ํจํค์ง๋ ์ฌ์ดํธ ํจํค์ง๋ณด๋ค ๋จผ์ ์ต๋๋ค)ํ , @ncoghlan ์ ๋ฐฉ๊ธ ๊ทธ ๋ฐ๋๋ก ๋งํ์ต๋๋ค. (Windows์์๋ ํนํ
์ปจํ ์คํธ) ์ฌ์ฉ์ ์คํฌ๋ฆฝํธ ๋๋ ํ ๋ฆฌ๋ _์ดํ_ ์์คํ ๋๋ ํ ๋ฆฌ์ฌ์ผ ํฉ๋๋ค. ์ด๋
์ฌ์ฉ์ ์คํฌ๋ฆฝํธ ๋๋ ํ ๋ฆฌ์ ๋ฒ์ ์ด ์๋ ํ ๋์ํฉ๋๋ค. ๋ง์ฝ
๋ฒ์ ์ด ์ง์ ๋์ด ๋ ๊ฑฑ์ ๋ฉ๋๋ค. ํ์ง๋ง ๊ทธ๊ฒ์ ์๋ง๋
Windows ์ฌ์ฉ์๋ ๋ฒ์ ์๋ ์คํฌ๋ฆฝํธ๊ฐ ์ถฉ๋ํ๊ณ
pip2/pip3์ ๊ฐ์ ๊ดด๋ฌผ, Unix ์ฌ์ฉ์๊ฐ ๊ฐ์ง๊ณ ์๋ ๋ฐฉ์ ;-)
๋๋ณธ ์ด๋ฆ์ด ์ถฉ๋ํ๋ค๋ ์ธก๋ฉด์์ ์๊ฐ์กฐ์ฐจํ์ง ์์ต๋๋ค. $PATH
๋ณ์๊ฐ sys.path
์ ๋ค๋ฅด๊ฒ ์๋ํ๋ ๊ฒ์ ์์ ํ ์๋ชป๋ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ๋ด๊ฐ ์๋ ํ sys.path
์ ์์๋ stdlib > ์ฌ์ฉ์ ์ฌ์ดํธ ํจํค์ง > ๊ธ๋ก๋ฒ ์ฌ์ดํธ ํจํค์ง์
๋๋ค. some-script
์ ์์๊ฐ global bin dir > user bin dir ์ด๊ณ python -m some-script
๊ฐ ์ฌ์ฉ์ ์ฌ์ดํธ ํจํค์ง > ๊ธ๋ก๋ฒ ์ฌ์ดํธ ํจํค์ง๋ผ๋ฉด ์ ๋ง ํผ๋์ค๋ฌ์ธ ๊ฒ ๊ฐ์ต๋๋ค.
์คํฌ๋ฆฝํธ ๋๋ ํ ๋ฆฌ์ ๋ฌธ์ ๊ฐ ์๋ ๊ฒฝ์ฐ(๋ฒ์ ์ด ์๋ ๊ฒฝ์ฐ์ ์๋ ๊ฒฝ์ฐ) ํด๋น ๋ฌธ์ ๋ฅผ ์์ ํด์ผ ํ๋ค๊ณ ์๊ฐํ์ง๋ง ์ด๋ค ์์๋ก ๋์ด ์์ด์ผ ํ๋์ง๋ ๊ทธ๋ค์ง ์ค์ํ์ง ์์ต๋๋ค sys.path
๋ ๋งค์ฐ ์๋ชป๋์์ต๋๋ค.
์ข์ ์ , ์ฐ๋ฆฌ๋ $PATH๊ฐ sys.path๋ฅผ ๋ฐ๋ฅด๊ณ (Windows ์ฉ์ด๋ก) C:PythonXYScripts๋ณด๋ค %APPDATA%PythonXYScripts ์ด์ ์ C:PythonXYScripts๋ฅผ ์ฌ์ฉํ๋ค๊ณ ๊ฐ์ ํ๊ณ ๊ถ์ฅํด์ผ ํฉ๋๋ค. python-dev ์ค๋ ๋์ ๋ํด ์ธ๊ธํ๊ฒ ์ต๋๋ค.
Donald์ ์ต์ ์ ์์ ๋์๊ฒ ์ข๊ฒ ๋ค๋ฆฝ๋๋ค. "๊ทธ๋์ ๋ ์๊ฐํด๋ณด๋ฉด..." ๋ฌธ๋จ์ ์ ๋ 100% ๋์ํฉ๋๋ค.
Windows์์ PATH๋ฅผ ๊ตฌ์ฑํ๋ ๊ฒ์ ๊ฑฐ์ ๋ถ๊ฐ๋ฅํฉ๋๋ค. ์์คํ
์ ์ฒด ์ค์น ํ๋ก๊ทธ๋จ์ ์์คํ
์ ์ฒด ํ๊ฒฝ ๋ณ์๋ง ๊ตฌ์ฑํ ์ ์์ผ๋ฉฐ ํ์ฅ์ ํฌํจํ ์ ์์ผ๋ฏ๋ก ๊ฐ ์ฌ์ฉ์์ ๋ํด ๋ค๋ฅธ ๊ฒฝ๋ก๋ฅผ ์ค์ ํ ์ ์์ต๋๋ค. (์ฌ์ฉ์๋ณ ์ค์น ํ๋ก๊ทธ๋จ์ด ์ํํ ์ ์์ง๋ง ์ด ๊ฒฝ์ฐ --global
๊ฐ ์ฑ๊ณตํ๋ฏ๋ก ํ์ํ์ง ์์ต๋๋ค.)
๋ํ Windows์ ๊นจ์ง PATH ์ฒ๋ฆฌ๋ก ์ธํด ์์คํ
์ ์ฒด ์ค์ ์ด _ํญ์_ ์ฌ์ฉ์๋ณ ์ค์ ์ ๋ฅ๊ฐํฉ๋๋ค. ์ด๊ฒ์ pip.exe
๊ฐ ํญ์ ์ต์ ์์คํ
์ด๋ ์ฌ์ฉ์ Python์ด ์๋ ์ต์ ์์คํ
๋๋ ์ฌ์ฉ์ Python์ผ๋ก ์ด๋ํ๋๋ก ๋ฒ์ ์๋ ์คํฌ๋ฆฝํธ์ py.exe ์คํ ํ๋ก๊ทธ๋จ์ ์ฌ์ฉํ๋ ๊ฒ์ ๋ํด (python-dev, IIRC์์) ๋ฐ์ฏค ์ ์ํ์ต๋๋ค. ํ๋๋ฅผ ์ค์นํ๊ณ (์) pip.exe -3.5
๋ ํน์ ๋ฒ์ ์ ํ์ ํ์ฉํฉ๋๋ค.
์ด๊ฒ์ด ์ค์ ๋ก ์๋ํ๋๋ก ํ๋ ์ ์ผํ ๋ฐฉ๋ฒ์ ์์ฒญ ์ PATH(๋ฐฐ์น ํ์ผ์ ์คํํ๋ ๋ฐ๋ก ๊ฐ๊ธฐ)๋ฅผ ๊ตฌ์ฑํ๊ธฐ ์ํด Python ์ค์น ํ๋ก๊ทธ๋จ์ด ๋ฐฐ์น ํ์ผ ์ค์น๋ฅผ ์์ํ๋ ๊ฒ์
๋๋ค. ๋ฐ๋ผ์ ์ฌ์ฉ์๊ฐ ๊ฐ์ฅ ๋จผ์ ์
๋ ฅํ๋ ๊ฒ์ activate-py35
์ด๊ณ PATH๋ 3.5์ ๋ํด ์ฌ๋ฐ๋ฅด๊ฒ ๊ตฌ์ฑ๋ฉ๋๋ค. vcvarsall.bat ์ํฉ์ ๋น ์ง๊ณ ์ถ์ง ์๊ธฐ ๋๋ฌธ์ ์ด์ ๋ํด ๋งค์ฐ ๊ณ ๋ฏผํ๊ณ ์์ง๋ง ๋์์ ํ์ฌ ์ค์น ์์น์ ๋ํด ๊ฐ์ ํ๊ฑฐ๋ ๋ ์ง์คํธ๋ฆฌ๋ฅผ ํตํด ์ด๋ํ๋ ค๊ณ ์๋ํ๋ ์คํฌ๋ฆฝํธ์ ์ ์ฉํ ๊ฒ์
๋๋ค. ๊ทธ๊ฒ์ ์ฐพ๊ธฐ ์ํด.
๋ฐฐ์น ํ์ผ์ ์คํํ๋ ๋ฐ๋ก ๊ฐ๊ธฐ
๋ด ์๊ฐ์ ์ด๊ฒ์ "Python 3.5(32๋นํธ) ๋ช ๋ น ํ๋กฌํํธ" ๋ฐ๋ก ๊ฐ๊ธฐ์ ๋๋ค. Visual Studio ์ฌ์ฉ์๋ ๋ณ๋ ฌ์ ์ธ์ํด์ผ ํฉ๋๋ค.
๋๋ Windows์ ๋ํด ๊ทธ ๋ชจ๋ ์๋ฏธ๋ฅผ ์์ ํ ์ดํดํ ๋งํผ ์ถฉ๋ถํ ์์ง ๋ชปํ์ง๋ง foo
์คํฌ๋ฆฝํธ๋ฅผ ์ค์นํ๋ pip install foo
๊ฐ ์ฆ์ ์คํ๋ ์ ์๋ ์ํฉ์ผ๋ก ๋๋์๊ฐ๋ ๊ฒ์ ๊ฝค ๊ธฐ๋ถ์ด ๋์ฉ๋๋ค. ๋ช
๋ น์ค์์ foo
๋ก ์คํ๋ฉ๋๋ค. ์ฐ๋ฆฌ๊ฐ --user
์ ์ค์นํ๊ณ ๊ธฐ๋ณธ์ ์ผ๋ก ๊ฒฝ๋ก์ ์๋ค๋ฉด ๊ทธ๊ฒ์ ๋์๊ฒ ๊ฝค ํฐ ํ๊ท์ฒ๋ผ ๋๊ปด์ง๋๋ค.
๋ฒ์ ์ด ์ง์ ๋์ง ์์ ์คํฌ๋ฆฝํธ์ py.exe
๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ค์ ๋ก ์ด๋ป๊ฒ ์๋ํ๋์ง ๊ทธ๋ฆฌ๊ณ ์ค์ ๋ก ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์๋์ง ์ฌ๋ถ๋ฅผ ์ ํํ ์ดํดํ๊ณ ์๋์ง ํ์ ํ ์ ์์ต๋๋ค. ์ ๋ ๊ฐ์ธ์ ์ผ๋ก ์ค๋๋ ๊ณผ ๊ฐ์ ๋ฐฉ์์ผ๋ก ์คํฌ๋ฆฝํธ๋ฅผ ์์ฑํ๋ ๊ฒ๊ณผ ๊ด๋ จ์ด ์์ต๋๋ค. ๋ฐ๋ผ์ _ํจ๊ณผ๊ฐ ์์ผ๋ฉด_ ํ ์ ์๋ค๊ณ ์๊ฐํ์ง๋ง ์ด์ ๋ํด +1์ ํ๊ธฐ ์ ์ ์๋ฏธ๋ฅผ ๋ ์ ์ดํดํด์ผ ํฉ๋๋ค.
Windows์์ PATH๋ฅผ ๊ตฌ์ฑํ๋ ๊ฒ์ ๊ฑฐ์ ๋ถ๊ฐ๋ฅํฉ๋๋ค. ์์คํ ์ ์ฒด ์ค์น ํ๋ก๊ทธ๋จ์ ์์คํ ์ ์ฒด ํ๊ฒฝ ๋ณ์๋ง ๊ตฌ์ฑํ ์ ์์ผ๋ฉฐ ํ์ฅ์ ํฌํจํ ์ ์์ผ๋ฏ๋ก ๊ฐ ์ฌ์ฉ์์ ๋ํด ๋ค๋ฅธ ๊ฒฝ๋ก๋ฅผ ์ค์ ํ ์ ์์ต๋๋ค.
์ค, ์ฟ. ๋๋ ๊ทธ๊ฒ์ ์์๋ค.
๋ฐฐ์น ํ์ผ์ ์คํํ๋ ๋ฐ๋ก ๊ฐ๊ธฐ
๋ด ์๊ฐ์ ์ด๊ฒ์ "Python 3.5(32๋นํธ) ๋ช ๋ น ํ๋กฌํํธ" ๋ฐ๋ก ๊ฐ๊ธฐ์ ๋๋ค. Visual Studio ์ฌ์ฉ์๋ ๋ณ๋ ฌ์ ์ธ์ํด์ผ ํฉ๋๋ค.
... ๋ชจ๋ ๊ฒ์ ๋ํด ๊ธฐ๋ณธ์ ์ผ๋ก Powershell์ ์ฌ์ฉํ๋ ์ฌ๋๋ค์๊ฒ๋ ๋์ฐํฉ๋๋ค.
๊ทธ๋ฌ๋ ์คํฌ๋ฆฝํธ foo๋ฅผ ์ค์นํ๋ pip install foo๋ฅผ ๋ช ๋ น์ค์์ foo๋ก ์ฆ์ ์คํํ ์ ์๋ ์ํฉ์ผ๋ก ๋๋์๊ฐ๋ ๊ฒ์ ๊ฝค ๊ธฐ๋ถ์ด ๋์ฉ๋๋ค.
๋์. ์ด๊ฒ์ ์๋ชป๋ ํ๊ท์ด๋ฉฐ ํด๊ฒฐํด์ผ ํฉ๋๋ค. ๋๊ตฐ๊ฐ๊ฐ ๋ฐฉ๋ฒ์ ์๊ฐํ ์ ์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค :-)
๋ฒ์ ์๋ ์คํฌ๋ฆฝํธ์ py.exe๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ค์ ๋ก ์ด๋ป๊ฒ ์๋ํ๋์ง ์ ํํ ์ดํดํ๊ณ ์๋์ง ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค.
py.exe
์ ๋ค์ ๊ด๋ จ์ด ์๋ ์์ ์ ํ์ฌ์ ๊ฐ์ด ํน์ ํ๋ ์ฝ๋ฉ๋ Python ์ธํฐํ๋ฆฌํฐ๋ฅผ ํธ์ถํ๋ ๋์ exe ๋ํผ๊ฐ "๋ฌด์์ ๊ธฐ๋ณธ๊ฐ์
๋๋ค" ์ด๋ป๊ฒ๋ (๋ ์ง์คํธ๋ฆฌ, py.exe
ini ํ์ผ, Python %PATH%๊ฐ ์ ๊ณตํ๋ ๋ชจ๋ ๊ฒ, ...). ๊ทธ๋๋ ๋ฒ์ ์ด ์ง์ ๋ ์ฌ์ฉ์ ์คํฌ๋ฆฝํธ ๋๋ ํฐ๋ฆฌ(ํ์ผ์ด ์๋ก ๋ฎ์ด์ฐ์ด๊ฑฐ๋ ํจํค์ง๊ฐ ์ค์น๋์ง ์์ ์ธํฐํ๋ฆฌํฐ๋ก ์คํ๋๋ ํ์ผ์ ๋ฐฉ์งํ๊ธฐ ์ํด)๊ฐ ์ฌ์ ํ ํ์ํ๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ด ์ด๋ป๊ฒ ๋์์ด ๋ ์ง ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. %PATH%์ ์ฌ๋ฐ๋ฅธ ์์น์ ๋ฃ์ ์ ์์ต๋๋ค.
... ๋ชจ๋ ๊ฒ์ ๋ํด ๊ธฐ๋ณธ์ ์ผ๋ก Powershell์ ์ฌ์ฉํ๋ ์ฌ๋๋ค์๊ฒ๋ ๋์ฐํฉ๋๋ค.
๋ฐฉ๊ธ ์๋ํ๊ณ ๋์ผํ๊ฒ ๋ณด์ด๊ณ ๋์ํ๋ activate-py35.bat
๋ฐ activate-py35.ps1
ํ์ผ์ ์ฝ๊ฒ ๋ง๋ค ์ ์์ต๋๋ค(์ฆ, ๋ชจ๋๊ฐ activate-py35
๋ฅผ ์์ฑํ๊ณ ๊ฒฝ๋ก๋ฅผ ์
๋ฐ์ดํธํ๋ฉด ๋จ). ์ฌ์ ํ ์ด์์ ์ด์ง๋ ์์ง๋ง ์ต์
์ ์ํฉ์์ ์ต์ ์ผ ์ ์์ต๋๋ค.
๋ฒ์ ์๋ ์คํฌ๋ฆฝํธ์ py.exe๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ค์ ๋ก ์ด๋ป๊ฒ ์๋ํ๋์ง ์ ํํ ์ดํดํ๊ณ ์๋์ง ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค.
py.exe
์ ๋ค์ ๊ด๋ จ์ด ์๋ ์์ ์ exe ๋ํผ๊ฐ ํ์ฌ์ ๊ฐ์ด ํน์ ํ๋ ์ฝ๋ฉ๋ Python ์ธํฐํ๋ฆฌํฐ๋ฅผ ํธ์ถํ๋ ๋์ "๋ฌด์์ ๊ธฐ๋ฐ์ผ๋ก ์ธํฐํ๋ฆฌํฐ๋ฅผ ๋์ ์ผ๋ก ์ ํํด์ผ ํ๋์ง ๊ธฐ๋ณธ" ์ด๋ป๊ฒ๋
"somehow"๋ py.exe
๊ฐ ๋ค์ด์ค๋ ๊ณณ์
๋๋ค. ๋์ผํ ๊ท์น์ ์ฌ์ฉํด์ผ ํฉ๋๋ค. ๋ฐ์ฒ๊ฐ ์์ฒด ์ด๋ฆ์ ํ์ธํ๋๋ก ์
๋ฐ์ดํธ๋ ๊ฒฝ์ฐ python.exe
๋ฅผ ์์ํ๋ ๋์ 'scripts\\{}{}.{}.exe'.format(argv[0], major_version, minor_version)
( argv[0]
๋ฑ์ ์ ์ ํ ํ์ฅ์ ํธ๋ฆฌ๋ฐ ํฌํจ)๋ฅผ ์๋ํ๊ณ ์์ํ ์ ์์ต๋๋ค. ๊ทธ๋ฐ ๋ค์ ์ค์น ํ๋ก๊ทธ๋จ์ ๋ฒ์ ์ด ์๋ ๋ฐ์ฒ์ ๋ํด ์์ ํ ๋ฒ์ ์ด ์ง์ ๋ ๋ฐ์ฒ์ ๋ค๋ฅธ ํ์ผ(์ค๋๋ถํฐ ๋ณ๊ฒฝ๋์ง ์์)์ ์ฌ์ฉํด์ผ ํ์ง๋ง ํด๋น ํ์ผ์ ์ ์ด๋ฆ์ ๊ฐ์ง ์ผ๋ฐ py.exe
์
๋๋ค. (์ด๊ฒ์ pip-script.py
ํ์ผ์ ์๋ ์๋ ํจ์ฌ ๋ ๊ฐ๋จํ ์ ์์์ง๋ง ์ง๊ธ์ ๊ทธ๊ฒ๋ค์ด ์ฌ๋ผ์ก์ต๋๋ค...)
๊ทธ๋ฌ๋ ๋น์ ์ด ๋งํ๋ฏ์ด PATH๋ ์ฌ์ ํ ๋ฌธ์ ์ ๋๋ค. ๋๋ ์ข์ ํด๊ฒฐ์ฑ ์ด ์์ผ๋ฉฐ ๋์ ํด๊ฒฐ์ฑ ๋ ๋ง์ง ์์ต๋๋ค. ํ๊ฒฝ ๋ณ์๋ ์ค์ ๋ก ์ค์น ํ๋ก๊ทธ๋จ์ด ์๋๋ผ ๊ด๋ฆฌ์ ๋๋ ์ฌ์ฉ์๊ฐ ๊ตฌ์ฑํ๊ธฐ ์ํ ๊ฒ์ ๋๋ค.
๋ ๋์ ์ฌ์ฉ์ ๊ฒฝํ์ ์ํด ์คํฌ๋ฆฝํธ ์ค์น ๋ฐฉ๋ฒ์ ์กฐ์ ํ ์ ์์ต๋๋ค. .exe
๋ฐ .py
ํ์ผ์ด ๊ฒฐํฉ๋ ๋ชจ๋ ๊ฒ์ด ๊ท ํ์ด๋ฉฐ ๋จ์ผ .exe
ํ์ผ์ด ์๊ธฐ ๋๋ฌธ์ ์ฌ์ฉ์์๊ฒ ๋ ๋์ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค. ๊ทธ๋ฌ๋ ๋๋ pip install foo && foo
์ ๋ํ ์ต๊ณ ์ ์ด์ผ๊ธฐ๋ฅผ ์ป๋ ๊ฒ์ด ๊ทธ ํน์ ํ ๊ฒ๋ณด๋ค ๋ ์ค์ํ๋ค๊ณ ์๊ฐํ๋ฏ๋ก .exe
์ .py
๋ฅผ ๋ค์ ๋ถ๋ฆฌํด์ผ ํ๋ ๊ฒฝ์ฐ์๋ ๊ทธ๊ฒ์ด ์ข์ ๋ต๋ณ์ ์ํ ์ข์ ์ ์ถฉ์.
.exe
/ .py
๋ถ๋ฆฌ๊ฐ ๊ฐ์ฅ ์์ ๋ฌธ์ ์
๋๋ค :)
์ ๋ ์ค์ ๋ก activate-py35
์์ด๋์ด๋ฅผ ์ค๋น ์ค์
๋๋ค. ์ ๋ PATH์ Python์ ์ถ๊ฐํ๋ ์ค์น ํ๋ก๊ทธ๋จ์ ํฌ์ด ์๋์๊ณ py -m pip
๋ช
๋ น์ ์ค์ ๋ก ์ฃผ๋ชฉ์ ๋ฐ์ง ๋ชปํ์ต๋๋ค(์๋ฅผ ๋ค์ด Sphinx์์๋ ์๋ํ์ง ์์ต๋๋ค). activate-py
๊ฐ ์๋ํ๋ ๋ฐฉ์์ ๋ํ ์์ธํ ์ค๋ช
์ ์์ฑํ๊ณ python-dev์ ๊ฒ์ํ์ฌ ๊ฒฌ์ธ๋ ฅ์ด ์๋์ง ํ์ธํ๊ฒ ์ต๋๋ค.
์ด activate-whatever
ํ์ผ์ ๊ฐ์ ํ๊ฒฝ ๋ด๋ถ์ ํ์ผ๊ณผ ์ ์ฌํฉ๋๊น? $PATH
์ ๊ฐ์ ํ๊ฒฝ์ ์ถ๊ฐํ๋ ๋์ ์ค์ Python์ ์ถ๊ฐํ๋ ๊ฒ์ ์ ์ธํ๊ณ ๋?
์, ๊ฑฐ์ ๋์ผํฉ๋๋ค. python-dev์์ ์ ๋ -x.y
๋งค๊ฐ๋ณ์๋ฅผ ์ฌ์ฉํ์ฌ py.exe
์ ์ ๋ฌํ๊ณ sysconfig
๋ฅผ ์ฌ์ฉํ์ฌ ๊ฒฝ๋ก๋ฅผ ๊ฐ์ ธ์ค๋๋ก ์ ์ํ์ต๋๋ค.
ํ์ธ. ๋๋ Windows ์ฌ์ฉ์๊ฐ ์๋๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ด Windows ์ฌ์ฉ์์๊ฒ ์ผ๋ง๋ ๋์์ง์ ๋ํ ์๊ฒฌ์ด ์์ต๋๋ค. ๊ทธ๊ฒ์ ์ ๋์ ์ผ๋ก ๋์ฐํ๊ฒ ๋ค๋ฆฌ์ง ์์ง๋ง(์ด์ฉ๋ฉด?) Windows ์ง์์ด ์ ๋ฅผ ๋ฐ๋ ค๊ฐ ์ ์๋ ์ ๋์ ๋๋ค.
2015๋ 2์ 10์ผ ์ค์ 8์ 2๋ถ์ Donald Stufft๋ ๋ค์๊ณผ ๊ฐ์ด ์ผ์ต๋๋ค.
์, ๊ทธ๋ฆฌ๊ณ ์คํฌ๋ฆฝํธ๋ฅผ ๋ฐฉํดํ๋ ๊ฒ์ ๊ทธ๋ ์ง ์์ ๋ ์ผ๋ฐ์ ์ธ ๋ฌธ์ ์ ๋๋ค.
์ ํํ--user
์ ๊ด๋ จ์ด ์์ต๋๋ค. ๊ฐ์ ๋ฌธ์ ๋ ์ด๋์๋ ์กด์ฌํ๋ค
Windows--global
์ค์น ์ ์ธ. ๋๋ ๊ทธ ๋ฌธ์ ์ ๋ํ ํด๊ฒฐ์ฑ ์ด
์ด ๋ฌธ์ ์ ๋ณ๋๋ก ํด๊ฒฐํด์ผ ํ๋ 2์ฐจ ๋ฌธ์ /๋ฌธ์ ์ ๋๋ค.
๋์.
์ฐ๋ฆฌ๋
--global
ํ๋๊ทธ๋ฅผ ์ฌ์ฉํ ๊ฒ์ ๋๋ค.
+1
--user
์ ์ค์นํ๊ณ
~/.local/bin
๊ฐ$PATH
์ ์์ต๋๋ค.
+1, ์๋ง๋ ๊ฒฝ๊ณ ๋ฅผ ํ์ํ์ง ์๋ ๊ตฌ์ฑ ์ต์ ์ด ์์ต๋๊น?
๊ธฐ๋ณธ์ ์ผ๋ก
default-install
์ต์ ์ด ํ์ํฉ๋๋ค.
๋์ฒด ๋์์ ๋นํ์ฑํํ๊ณ--global
๋๋
--user
.
+1
pip 6.0 ํ์ฌ
/etc/
์ ์์คํ ๋ณ ๊ตฌ์ฑ ํ์ผ์ด ์์ต๋๋ค.
๊ทธ๋ฌ๋ ์ด๋ค์ ์คํ ์ค์ธ Python ๋ฒ์ ์๋ง ๊ตญํ๋์ง ์์ต๋๋ค.
์จ. ๋๋ ๊ทธ๊ฒ์ด ๋ค์ ๋ถ๋ฆฌ๋์ด ์์ง๋ง ์ข์ ๊ธฐ๋ฅ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค (๊ทธ๋ฆฌ๊ณ
์คํฌ๋ฆฝํธ๋ฅผ ๋ฐฉํดํ๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋ฐ๋ ์์ ๋ ์ ์์ต๋๋ค.)
๋ค์๊ณผ ๊ฐ์ ๊ฒ์ ์์๋ฅผ ์ ์ํฉ๋๋ค.
/etc/xdg/pip ๋ค์์ /etc์ ๋ฃจํธ(?)๋ฅผ ๋ก๋๋ค. ์ฌ๊ธฐ์ XY๋ ๋ฌผ๋ก
major.minor ๋ฒ์ ๋ฒํธ. ๋จผ์ ์ฐพ์ ์ฌ๋์ด ์ด๊น๋๋ค.
๋๋ ์ฌ์ ํ ํ๋์ ์ค์ํ ๋ฏธํด๊ฒฐ ์ง๋ฌธ์ ๋ด ๋๋ค. ์ฅ๊ธฐ์ ์ผ๋ก
๋๊ตฐ๊ฐ๊ฐsudo pip install foo
๋๋ ์คํ๋ ค ๊ถํ์ด ์๋ ๊ฒฝ์ฐ
site-packages
๋๋ ํ ๋ฆฌ์ ์ฐ์๊ฒ ์ต๋๊น?
"site-packages" ๋๋ ํ ๋ฆฌ๊ฐ ํ๋๋ง ์๋ ๊ฒ์ ์๋๋๋ค. ์๋ฅผ ๋ค์ด,
Debian/Ubuntu์์๋ sudo pip install
๊ฐ _ever_ ์ค์น๋๋ ๊ฒ์ ์ํ์ง ์์ต๋๋ค.
/usr/lib, ๊ทธ๋ฌ๋ /usr/local/lib๋ง. ๊ทธ๋ฆฌ๊ณ ์์ง ๋ง์ธ์. ์ฌ๊ธฐ์ dist ํจํค์ง๊ฐ ์์ต๋๋ค.
์ฌ์ดํธ ํจํค์ง๊ฐ ์๋๋๋ค($reasons ๋๋ฌธ์ ~/.local ์ ์ธ).
์ด๊ฒ์ ๋๋๋ก (๋์กฐ์ฐจ๋) ์ํ์ง๋ ์ ๋ง ์ค์ํ ํฌ์ธํธ์
๋๋ค.
Donald๋ ์ฌ์ดํธ ๋ก์ปฌ ๋๋ ํ ๋ฆฌ์
๊ณต๊ธ์
์ฒด ๋ก์ปฌ ๋๋ ํ ๋ฆฌ. ๋ฐ๋น์์์ site-local์
/usr/lib/pythonX.Y/dist-packages ๋ฐ pip ๋ช
๋ น์ด ์ด๋ฅผ ๊ฑด๋๋ ค์๋ ์ ๋ฉ๋๋ค.
๋ฐ๋ฉด ๊ณต๊ธ์
์ฒด ๋ก์ปฌ์ /usr/local/lib/pythonX.Y/dist-packages์ด๊ณ
์ผ๋ถ ์์คํ
๊ด๋ฆฌ์๊ฐ pip install์ ์ํ ๋ฌธ์ํ๋๊ณ ๋๋ฆฌ ์ฌ์ฉ๋๋ ์ฌ์ฉ ์ฌ๋ก
๊ทธ ๋๋ ํ ๋ฆฌ๋ก.
๊ทธ๋์ ์ ๊ฐ ์ ์ํ๊ณ ์ถ์ ๊ฒ์ ์ด๋ฏธ ๊ตฌ์ฑ ํ์ผ ๊ฒฝ๋ก์ ์๊ธฐ ๋๋ฌธ์
์ด๋ฅผ ๊ตฌ์ฑ ๊ฐ๋ฅํ๊ฒ ๋ง๋์ญ์์ค. ์๋ฅผ ๋ค์ด
--global
์ ์ค์นํฉ๋๋ค. ์ด๊ฒ์ ๊ฐ์ฅ ์ด์ ๋ฒ์ ๊ณผ ํธํ๋๋ ์ต์ ์ ๋๋ค.
์ฌ์ฉ์๊ฐ ์ ๋ ฅํ ๋ ๊ธฐ๋ํ๋ ๊ฒ์ ๋ํ๋ ๋๋ค. ๊ทธ๋ฌ๋ ๊ทธ๊ฒ์
๋ง์ ๊ฒฝ์ฐ์ ๊ธ๋ก๋ฒ Python์ (์กฐ์ฉํ) ์๋ง์ผ๋ก ๋ง๋ ๋ค๋ ๋จ์ ์ด ์์ต๋๋ค.
์์คํ ์ ๊ณ ์ฅ๋ ์์คํ ์ ์ ๋ฐํ ์ ์์ต๋๋ค.
์์ ๊ตฌ์ฑ ๊ฐ๋ฅ์ฑ์ผ๋ก ์ด๊ฒ์ Debian๊ณผ ์์ ํ ํธํ๋ฉ๋๋ค.
๋ฐ๋น์ ์ํผ์ ์ ๋ sudo pip install
๊ฐ ๋ค์ด๊ฐ ๊ฒ์ผ๋ก ์์ํฉ๋๋ค.
/usr/local/lib/pythonX.Y/dist-packages. ๋๋ ๊ทธ๊ฒ์ "๋ง์น๋ค"๋ผ๊ณ ๋งํ์ง ์์ ๊ฒ์
๋๋ค.
์์คํ
"์ ํจํค์ง ๊ด๋ฆฌ์๋ฅผ ์์์ํค์ง ์๊ธฐ ๋๋ฌธ์
์์คํ
์ ์ค์น๋ ํจํค์ง๋ฅผ ์ฌ์ ์ํฉ๋๋ค.
/usr/lib/pythonX.Y/dist-packages), ์ ์๋๊ณ ๋ฌธ์ํ๋ ๋ฐฉ์์ผ๋ก ์ํํฉ๋๋ค.
--user
์ ์ค์นํ๋ฉด ๊ณ ์ฅ๋ ์์คํ ์ผ๋ก๋ถํฐ ๋ณดํธํ ์ ์์ต๋๋ค(์ ์๊ฐ์๋?)
ํ์ง๋ง ๋ฃจํธ ์ฌ์ฉ์๊ฐ
/root/.local/
์ค์นํฉ๋๋ค.
์์ํ์ง ๋ชปํ ์ผ์ด๋ผ๋ ๋ฐ ๋์ํฉ๋๋ค.
- ์ค๋ฅ๊ฐ ๋ฐ์ํ๊ณ ์ฌ์ฉ์๊ฐ
--user
๋๋
--global
์๋์ผ๋ก.
๋๋ ๊ด์ฐฎ์ง๋ง ์์ ๊ตฌ์ฑ ์ค์์น๋ฅผ ์ฐธ์กฐํ์ญ์์ค.
- ์ฒ์ ๋ ๊ฐ์ง ์ต์ ์ค ํ๋๋ฅผ ์ ํํ๋ ๋ฐฐํฌํ์์ ๋ค์์ ์ํํ ์ ์๋ ์ค์์น๋ฅผ ์ ๊ณตํ์ญ์์ค.
/etc/
์ ์ ๋ ฅํ๋ฉด ์ธ ๋ฒ์งธ ์ต์ ์ด ํ์ฑํ๋ฉ๋๋ค.
์ด๋ด, ์ ๋ง ์ข์ ์ ํ์ด์ผ!
๋ค ๋ฒ์งธ ์ต์ ์ด ๊ฐ์ฅ ์ข์ ์ต์ ์ผ ์ ์์ง๋ง
์ด๋ค ์ข ๋ฅ์ ํด๊ฒฐ์ฑ ์ ์ฐพ์ ์ ์๋ค๋ฉด ๋จผ์ ๋ค๋ฅธ ์ต์ ์ค ํ๋๋ฅผ ์ ํํ์ญ์์ค.
๋ชจ๋ ํ๋ซํผ/์๋๋ฆฌ์ค์์ ๋์ผํ๊ฒ ์๋ํ๊ณ ๋ชจ๋ ํ๋ซํผ์์ ์๋ฏธ๊ฐ ์์ต๋๋ค.
๊ฐ๋ฅํ ๊ฒฝ์ฐ ํ๋ซํผ ๊ฐ ์ผ๊ด๋ ํ๋์ ์ ํธํ๊ธฐ ๋๋ฌธ์ ๋๋ค.
๋ค๋ฅธ ํ๋ซํผ ์ ์ ๋์์ ํด๋ ๊ด์ฐฎ์ต๋๋ค. ์๋ฅผ ๋ค์ด pip๊ฐ
--dry-run ์ต์
์ ์ต์ํ ์ฌ์ฉ์์๊ฒ ์งํ ์ํฉ์ ์ ํํ ์๋ ค์ค๋๋ค.
ํ ์ผ๊ณผ ์ฅ์.
์ธ ๋ฒ์งธ ์ต์ ์ด ๋์ ์ต์ ์ผ ๊ฐ๋ฅ์ฑ์ด ๋๋ค๊ณ ์๊ฐํฉ๋๋ค.
๊ถํ"์ Windows์ ๋ชจ๋ ์ฌ์ฉ์๊ฐ ์ฌ์ ์ ์๋ ์๋๋ฆฌ์ค๊ฐ ๋ ๊ฒ์ ๋๋ค.
Python 3.5, Conda๋ฅผ ์ฌ์ฉํ๋ ์ฌ๋ ๋๋ pyenv๋ฅผ ์ฌ์ฉํ๋ ์ฌ๋. ์ค๋ฅ ๋ฐ์
์ด ๋ชจ๋ ๊ฒฝ์ฐ์ ํ๋ ๊ฒ์ด ์๋ชป๋ ๊ฒ์ฒ๋ผ ๋ณด์ด๋ฉฐ ๋ค์ ์ฌ์ฉ์์ ๋๋ค.
๋ถํ ์ ๋น์ฐํธ์ ์ ๋๋ค.
๊ธฐ๋ณธ ๊ตฌ์ฑ์ด --global install์ ํ์ฉํ๋ ๊ฒ์ด๋ผ๋ฉด ๊ธฐ์ ๊ฒ์
๋๋ค.
๊ถํ์ด ์์ต๋๋ค. ๋๋ ๋ฐ๋น์์ด ๊ทธ๊ฒ์ ๋ฐ๊ฟ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ์ง๋ ์๋๋ค(์๋ง๋ ๋ค๋ฅธ ์ฌ๋๋ค์
๋ค๋ฅธ ์๊ฒฌ์ด์ง๋ง ์ ์ด๋ ๊ทธ๊ฒ์ ์ฐ๋ฆฌ์๊ฒ ์ ํ๊ถ์ ์ค๋๋ค).
๊ทธ๋์ ๋๋ 1๊ณผ 2 ์ฌ์ด์์ ์ฐ์ต์ด ์ผ๋ง๋ ๋์์ง์ ๋ฌ๋ ค ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
์ฐ๋ฆฌ๋ ์ฌ๋๋ค์ด (๊ฐ๋ ์ ์ผ๋ก)sudo pip install --global foo
ํ๋ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
๋ฐ๋น์์์๋ /usr/local/lib๋ก ์ด๋ํ๋ ํ ์์๋๋ ์ฌ์ฉ ์ฌ๋ก์
๋๋ค.
/usr/lib๋ก ์ด๋ํ ์ ์์ต๋๋ค.
(์ด ๋ชจ๋ ๊ฒ์ ์ธ๋ถ ํ๊ฒฝ BTW๋ฅผ ์ค๋ช ํฉ๋๋ค.)
--user
๊ฐ ์ ๋ฌ๋๋ฉด ์ฐ๋ฆฌ๋ ํญ์ ์ฌ์ฉ์ ์ฌ์ดํธ ํจํค์ง์ ์ค์นํฉ๋๋ค.
+1
--global
๊ฐ ์ ๋ฌ๋๋ฉด ํญ์ ๊ธ๋ก๋ฒ ์ฌ์ดํธ์ ์ค์นํฉ๋๋ค.- ํจํค์ง.
๊ธ๋ก๋ฒ _vendor_ ํจํค์ง == +1, ๊ธ๋ก๋ฒ ์ฌ์ดํธ ํจํค์ง == -1.
- ๋ ๋ค ์ ๋ฌ๋์ง ์์ผ๋ฉด ๋ค์๊ณผ ๊ฐ์ ํด๋ฐฑ ๋ฉ์๋๋ฅผ ๊ตฌํํฉ๋๋ค.
- ๊ฐ์ ํ๊ฒฝ์ ์๋์ง ๊ฐ์งํ๊ณ ๊ฐ์ ํ๊ฒฝ์ ์์ผ๋ฉด ๋ง์น ๊ฐ์ ํ๊ฒฝ์ ์๋ ๊ฒ์ฒ๋ผ ์๋ํฉ๋๋ค.
--global
๊ฐ ํต๊ณผ๋์์ต๋๋ค.
+1, ๋น๋ก venv ๋ด๋ถ์ ์ด ๋๋ ํ ๋ฆฌ์ ์ด๋ฆ์ด
- ์ฌ์ฉ์ ์ฌ์ดํธ ํจํค์ง๊ฐ ๋นํ์ฑํ๋์ด ์๋์ง ๊ฐ์งํ๊ณ ๋นํ์ฑํ๋ ๊ฒฝ์ฐ ๋ค์๊ณผ ๊ฐ์ด ์๋ํฉ๋๋ค.
--global
์ด(๊ฐ) ํต๊ณผ๋์์ต๋๋ค.
ํ , ์ด๊ฑด ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค.
default-install
๋ฅผ ๋ณด๊ณ ์กด์ฌํ๋ ๊ฒฝ์ฐ--user
๋ฅผ ์ฌ์ฉํ๊ฑฐ๋
-global
๋ฅผ ๊ธฐ์ค์ผ๋ก ํฉ๋๋ค.
+1
- ์ ํจ ์ฌ์ฉ์์๊ฒ ์ ์ญ์ ๋ํ ์ฐ๊ธฐ ๊ถํ์ด ์๋์ง ๊ฐ์งํฉ๋๋ค.
์ฌ์ดํธ ํจํค์ง ๋ฐ--user
๊ฐ ์ ๋ฌ๋ ๊ฒ์ฒ๋ผ ์๋ํ์ง ์๋ ๊ฒฝ์ฐ.
+1
- ๋ง์ง๋ง์ผ๋ก ๋ค๋ฅธ ๋ชจ๋ ํ์ง ๋ฐฉ๋ฒ์ด ์คํจํ๋ฉด
--global
์ธ ๊ฒ์ฒ๋ผ ํ๋ํฉ๋๋ค.
ํต๊ณผ๋์๋ค.
๋ํ ํ์คํ์ง ์์ต๋๋ค.
์ด๋ ์ฌ์ฉ ์ค๋จ ๊ธฐ๊ฐ์ด ์์์ ์๋ฏธํ๋ฉฐ ์์์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
--user
๋๋--global
๋ถ์ฌ
์ฐ๋ฆฌ๊ฐ ์คํ ์ค์ธ Python์ ๊ธฐ๋ฅ, ํจ๊ณผ์ ์ธ ์ฌ์ฉ์ ๋ฐ
๊ตฌ์ฑ๋ ๊ธฐ๋ณธ ์ค์น ๋ฐฉ๋ฒ.
ํฉ๋ฆฌ์ ์ธ ๋ชฉํ์ฒ๋ผ ๋ค๋ฆฝ๋๋ค.
๋ถ๋ช
ํ ๋ง์๋๋ฆฌ์๋ฉด, "๊ธ๋ก๋ฒ ์ฌ์ดํธ ํจํค์ง"์ ๋ํด ์ด์ผ๊ธฐํ ๋ ์ ๋ ์ฃผ๋ก "distutils๊ฐ ์ ์ธ๊ณ์ ์ผ๋ก ์ค์นํ๋๋ก ์ง์ํ๋ ๋ชจ๋ ๊ฒ"์ ์๋ฏธํฉ๋๋ค. Python ์์ฒด์๋ "๊ณต๊ธ์
์ฒด ๋ก์ปฌ" ๋ "์ฌ์ดํธ ๋ก์ปฌ" ๊ตฌ๋ถ์ด ์๊ธฐ ๋๋ฌธ์ Python์ ํจ์นํ์ง ์๋ ๋ค์ด์คํธ๋ฆผ์์ ๋์ผํ ๋๋ ํ ๋ฆฌ๊ฐ ๋ฉ๋๋ค. ๊ทธ๋ฌ๋ ๋ฐ๋น์์์๋ ์ค์ ๋ก dist-packages
๋๋ ํ ๋ฆฌ๊ฐ ๋ ๊ฒ์ด๊ณ "global"์ ์ค์ ๋ก "site local"์ ์๋ฏธํฉ๋๋ค. pip๊ฐ ์ง์ํ๊ธฐ ์ํด ํน๋ณํ ํด์ผ ํ ์ผ์ ์๋์ง๋ง Debuntu์ Python ํจ์น์ ์ํด ์ฒ๋ฆฌ๋๊ธฐ ๋๋ฌธ์
๋๋ค.
์ฆ, Debuntu๊ฐ ํด๋น ๊ตฌ๋ถ์ ์ง์ํ๊ธฐ ์ํด distutils๋ฅผ ํจ์นํ๊ธฐ ๋๋ฌธ์ pip๋ ์ด๋ฏธ Debuntu์ /usr/local/../dist-packages/
์ ์ค์น๋ฉ๋๋ค. ์ฌ์ฉ์๊ฐ ์ผ์ข
์ ํ๋๊ทธ๋ฅผ ์ ๋ฌํ์ง ์๊ณ pip๊ฐ /usr/../dist-packages/
๋ฅผ ์๋ง์ผ๋ก ๋ง๋๋ ์ ์ผํ ๊ฒฝ์ฐ๋ pip๊ฐ ๊ฑฐ๊ธฐ์์ ํ์ผ์ ์ ๊ฑฐํ๋ ๊ฒ์
๋๋ค(pip๋ ํด๋น ๋๋ ํ ๋ฆฌ๋ฅผ ํน๋ณํ ๊ฒ์ผ๋ก ๋ณด์ง ์๊ธฐ ๋๋ฌธ์ ๊ทธ๋ฅ ์ฌ๋ฌผ๋ก ๋ด
๋๋ค. sys.path
). ๋ฐ๋น์์ ์ ๊ฑฐ๋ฅผ ๋ฐฉ์งํ๊ธฐ ์ํด pip๋ฅผ ํจ์นํ์ผ๋ฉฐ ์ด์ ๋ํ ์ค์ ์ง์์ Python ์
์คํธ๋ฆผ์์ "๊ณต๊ธ์
์ฒด ๋ก์ปฌ" ์ฌ์ดํธ ํจํค์ง์ ๋ํ ์ค์ ์ง์์ ์ป๋ ๋ฐ ๋ฌ๋ ค ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
--user์ ์ค์นํ๊ณ ~/.local/bin์ด $PATH์ ์์ผ๋ฉด ์ผ์ข ์ ๊ฒฝ๊ณ ๊ฐ ํ์ํ ์ ์์ต๋๋ค.
์ด ๊ฒฝ๊ณ ๋ ์ผ๋ง๋ ์ทจ์ฝํ๊ฐ์? ์ ๋๊ฒฝ๋ก๋ก ๋ฐ๋๋์? ๋์๋ฌธ์๋ฅผ ๊ตฌ๋ถํ์ง ์๋ ํ์ผ ์์คํ ์์ ๋์๋ฌธ์๋ฅผ ๊ตฌ๋ถํ์ง ์์ต๋๊น? Windows์์ ๋ฐ/๋๋ ๋๋ฑํ๊ฒ ์ทจ๊ธํฉ๋๊น? ์ฌ๋ณผ๋ฆญ ๋งํฌ๋ ์ด๋ป์ต๋๊น?
์คํฌ๋ฆฝํธ๋ฅผ ์ค์นํ์ง ์๋ ํจํค์ง๋ฅผ ์ค์นํ๋ ๊ฒฝ์ฐ ๊ฒฝ๊ณ ๋ ์ด์จ๋ ๊ด๋ จ์ด ์์ต๋๋ค.
๊ฐ์ธ์ ์ผ๋ก ๋๋ ๊ฒฝ๊ณ ๊ฐ ๋๋ณด๋ค ์ค์ด ๋ ๋ง์ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
--user
์ ์ค์นํ๊ณ
~/.local/bin
๊ฐ$PATH
์ ์์ต๋๋ค.+1, ์๋ง๋ ๊ฒฝ๊ณ ๋ฅผ ํ์ํ์ง ์๋ ๊ตฌ์ฑ ์ต์ ์ด ์์ต๋๊น?
์ฌ๋๋ค์ด ์กฐ์ฉํ ํ ์ ์๋๋ก Python ๊ฒฝ๊ณ ๋ฅผ ์ฌ์ฉํ๋๋ก ํ ์ ์์ต๋๋ค.
๋ด์ฅ๋ Python ๊ฒฝ๊ณ ๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์นจ๋ฌตํ ํ์๋ฅผ ๋๋๋ค๋ฉด
๋ชจ๋.
pip 6.0 ํ์ฌ
/etc/
์ ์์คํ ๋ณ ๊ตฌ์ฑ ํ์ผ์ด ์์ต๋๋ค.
๊ทธ๋ฌ๋ ์ด๋ค์ ์คํ ์ค์ธ Python ๋ฒ์ ์๋ง ๊ตญํ๋์ง ์์ต๋๋ค.
์จ. ๋๋ ๊ทธ๊ฒ์ด ๋ค์ ๋ถ๋ฆฌ๋์ด ์์ง๋ง ์ข์ ๊ธฐ๋ฅ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค (๊ทธ๋ฆฌ๊ณ
์คํฌ๋ฆฝํธ๋ฅผ ๋ฐฉํดํ๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋ฐ๋ ์์ ๋ ์ ์์ต๋๋ค.)๋ค์๊ณผ ๊ฐ์ ๊ฒ์ ์์๋ฅผ ์ ์ํฉ๋๋ค.
- pipX.Y.conf
- pipX.conf
- pip.conf
/etc/xdg/pip ๋ค์์ /etc์ ๋ฃจํธ(?)๋ฅผ ๋ก๋๋ค. ์ฌ๊ธฐ์ XY๋ ๋ฌผ๋ก
major.minor ๋ฒ์ ๋ฒํธ. ๋จผ์ ์ฐพ์ ์ฌ๋์ด ์ด๊น๋๋ค.
๋๋ ์ด๊ฒ์ด ์ด๊ฒ๊ณผ ์ ์ ์ ์ผ๋ก๋ง ๊ด๋ จ๋์ด ์๋ค๊ณ ๋ฏฟ๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ #2417๋ก ๋๋๋๋ค.
๋
ผ์.
๋๋ ์ฌ์ ํ ํ๋์ ์ค์ํ ๋ฏธํด๊ฒฐ ์ง๋ฌธ์ ๋ด ๋๋ค. ์ฅ๊ธฐ์ ์ผ๋ก
๋๊ตฐ๊ฐ๊ฐsudo pip install foo
๋๋ ์คํ๋ ค ๊ถํ์ด ์๋ ๊ฒฝ์ฐ
site-packages
๋๋ ํ ๋ฆฌ์ ์ฐ์๊ฒ ์ต๋๊น?"site-packages" ๋๋ ํ ๋ฆฌ๊ฐ ํ๋๋ง ์๋ ๊ฒ์ ์๋๋๋ค. ์๋ฅผ ๋ค์ด,
Debian/Ubuntu์์๋sudo pip install
๊ฐ _ever_ ์ค์น๋๋ ๊ฒ์ ์ํ์ง ์์ต๋๋ค.
/usr/lib, ๊ทธ๋ฌ๋ /usr/local/lib๋ง. ๊ทธ๋ฆฌ๊ณ ์์ง ๋ง์ธ์. ์ฌ๊ธฐ์ dist ํจํค์ง๊ฐ ์์ต๋๋ค.
์ฌ์ดํธ ํจํค์ง๊ฐ ์๋๋๋ค($reasons ๋๋ฌธ์ ~/.local ์ ์ธ).์ด๊ฒ์ ๋๋๋ก (๋์กฐ์ฐจ๋) ์ํ์ง๋ ์ ๋ง ์ค์ํ ํฌ์ธํธ์ ๋๋ค.
Donald๋ ์ฌ์ดํธ ๋ก์ปฌ ๋๋ ํ ๋ฆฌ์
๊ณต๊ธ์ ์ฒด ๋ก์ปฌ ๋๋ ํ ๋ฆฌ. ๋ฐ๋น์์์ site-local์
/usr/lib/pythonX.Y/dist-packages ๋ฐ pip ๋ช ๋ น์ด ์ด๋ฅผ ๊ฑด๋๋ ค์๋ ์ ๋ฉ๋๋ค.
๋ฐ๋ฉด ๊ณต๊ธ์ ์ฒด ๋ก์ปฌ์ /usr/local/lib/pythonX.Y/dist-packages์ด๊ณ
์ผ๋ถ ์์คํ ๊ด๋ฆฌ์๊ฐ pip install์ ์ํ ๋ฌธ์ํ๋๊ณ ๋๋ฆฌ ์ฌ์ฉ๋๋ ์ฌ์ฉ ์ฌ๋ก
๊ทธ ๋๋ ํ ๋ฆฌ๋ก.๊ทธ๋์ ์ ๊ฐ ์ ์ํ๊ณ ์ถ์ ๊ฒ์ ์ด๋ฏธ ๊ตฌ์ฑ ํ์ผ ๊ฒฝ๋ก์ ์๊ธฐ ๋๋ฌธ์
์ด๋ฅผ ๊ตฌ์ฑ ๊ฐ๋ฅํ๊ฒ ๋ง๋์ญ์์ค. ์๋ฅผ ๋ค์ด
- ์ ์ญ_์ค์น_๋๋ ํ ๋ฆฌ
- global_install_as_sudo(์ฐธ/๊ฑฐ์ง)
pip๋ ์ค์ ๋ก ์ด๊ฒ์ ์ ์ดํ์ง ์์ต๋๋ค(๋ด ๋ง์, ๋ถ๋ช
ํ ๋์ ์์ค์์๋
ํ์ผ์ ์ด๋ํ๋ ํ์ผ์ด๊ธฐ ๋๋ฌธ์) distutils/sysconfig์์ ๊ฐ์ ธ์ต๋๋ค.
๋๋ pip๊ฐ ์๋ง๋ ๊ณต๊ธ ์
์ฒด-๋ก์ปฌ ๋๋ ํ ๋ฆฌ๋ฅผ ๊ฑด๋๋ ค์๋ ์๋๋ค๊ณ ์๊ฐํฉ๋๋ค.
--vendor
์ ๊ฐ์ ์ผ์ข
์ ํ๋๊ทธ๊ฐ ์ ๊ณต๋์ด ๋ฒค๋๊ฐ ์ฌ์ฉํ ์ ์์ต๋๋ค.
๋น๋ ์ฒด์ธ์์ pip. ์ด ๊ฐ๋
์ ์ค์ ๋ก debuntu ์ธ๋ถ์ ์กด์ฌํ์ง ์์ต๋๋ค.
์ง๊ธ ๋น์ฅ ๊ทธ๋ฆฌ๊ณ ๊ทธ๋ค์ ํจ์น๊ฐ ์ด๋ฏธ ์ด๊ฒ์ ์ฒ๋ฆฌํ๊ณ ์์ผ๋ฏ๋ก ๊ทธ๊ฒ์ด ์ต๊ณ ๋ผ๊ณ ์๊ฐํ์ง ์์ต๋๋ค.
๋ด๊ฐ ๋งํ ๋
"๊ธ๋ก๋ฒ ์ฌ์ดํธ ํจํค์ง" Debubuntu์์ /usr/local/.../dist-packages
๋ฅผ ์๋ฏธํ์ต๋๋ค.
Python์ด Debuntu๋ฅผ ์๋ฝํ๋ ๊ฒฝ์ฐ ์ด๋ ์์ ์์ "site-local" ํจํค์ง
์์คํ
์
์คํธ๋ฆผ.
--global
์ ์ค์นํฉ๋๋ค. ์ด๊ฒ์ ๊ฐ์ฅ ์ด์ ๋ฒ์ ๊ณผ ํธํ๋๋ ์ต์ ์ ๋๋ค.
์ฌ์ฉ์๊ฐ ์ ๋ ฅํ ๋ ๊ธฐ๋ํ๋ ๊ฒ์ ๋ํ๋ ๋๋ค. ๊ทธ๋ฌ๋ ๊ทธ๊ฒ์
๋ง์ ๊ฒฝ์ฐ์ ๊ธ๋ก๋ฒ Python์ (์กฐ์ฉํ) ์๋ง์ผ๋ก ๋ง๋ ๋ค๋ ๋จ์ ์ด ์์ต๋๋ค.
์์คํ ์ ๊ณ ์ฅ๋ ์์คํ ์ ์ ๋ฐํ ์ ์์ต๋๋ค.์์ ๊ตฌ์ฑ ๊ฐ๋ฅ์ฑ์ผ๋ก ์ด๊ฒ์ Debian๊ณผ ์์ ํ ํธํ๋ฉ๋๋ค.
๋ฐ๋น์ ์ํผ์ ์ ๋sudo pip install
๊ฐ ๋ค์ด๊ฐ ๊ฒ์ผ๋ก ์์ํฉ๋๋ค.
/usr/local/lib/pythonX.Y/dist-packages. ๋๋ ๊ทธ๊ฒ์ "๋ง์น๋ค"๋ผ๊ณ ๋งํ์ง ์์ ๊ฒ์ ๋๋ค.
์์คํ "์ ํจํค์ง ๊ด๋ฆฌ์๋ฅผ ์์์ํค์ง ์๊ธฐ ๋๋ฌธ์
์์คํ ์ ์ค์น๋ ํจํค์ง๋ฅผ ์ฌ์ ์ํฉ๋๋ค.
/usr/lib/pythonX.Y/dist-packages), ์ ์๋๊ณ ๋ฌธ์ํ๋ ๋ฐฉ์์ผ๋ก ์ํํฉ๋๋ค.
์, "์์คํ
์๋ง"์ ๋๋ฌด ๊ฐํนํ ์ ์์ต๋๋ค. ๋๋ถ๋ถ ๋ด ๋ง์
sudo pip install foo
๋ ์์คํ
์ด foo
์ ์์กดํ๊ณ ์๊ณ
ํธํ๋์ง ์๋ ๋ฒ์ ์ ์ฌ๋ฌผ์ ์ค์นํฉ๋๋ค. ๊ทธ๋ฌ๋ ๊ฐ์ ๊ฒฝ์ฐ๊ฐ ์ฑ๋ฆฝ
๊ธฐ๋ณธ์ ์ผ๋ก `/usr/local``์ ์ค์นํ๋ ๋ชจ๋ ํญ๋ชฉ ์ ๋ํด true์
๋๋ค.
--global
๊ฐ ์ ๋ฌ๋๋ฉด ํญ์ ๊ธ๋ก๋ฒ ์ฌ์ดํธ์ ์ค์นํฉ๋๋ค.- ํจํค์ง.
๊ธ๋ก๋ฒ _vendor_ ํจํค์ง == +1, ๊ธ๋ก๋ฒ ์ฌ์ดํธ ํจํค์ง == -1.
์ด๊ฑด ๋ฐ๋๋ก ๋ง์ํ์๋ ๊ฑด๊ฐ์?
- ๋ ๋ค ์ ๋ฌ๋์ง ์์ผ๋ฉด ๋ค์๊ณผ ๊ฐ์ ํด๋ฐฑ ๋ฉ์๋๋ฅผ ๊ตฌํํฉ๋๋ค.
- ๊ฐ์ ํ๊ฒฝ์ ์๋์ง ๊ฐ์งํ๊ณ ๊ฐ์ ํ๊ฒฝ์ ์์ผ๋ฉด ๋ง์น ๊ฐ์ ํ๊ฒฝ์ ์๋ ๊ฒ์ฒ๋ผ ์๋ํฉ๋๋ค.
--global
์ด(๊ฐ) ํต๊ณผ๋์์ต๋๋ค.+1, ๋น๋ก venv ๋ด๋ถ์ ์ด ๋๋ ํ ๋ฆฌ์ ์ด๋ฆ์ด
/lib/pythonX.Y/์ฌ์ดํธ ํจํค์ง
์, ๋ค์ ์ฐ๋ฆฌ๋ ํ์ด์ฌ์๊ฒ ๊ทธ ๋๋ ํ ๋ฆฌ๊ฐ ์ด๋์ ์๋์ง ๋ฌป์ต๋๋ค. ์ฐ๋ฆฌ๋ ๊ทธ๊ฒ์ ๊ณ์ฐํ์ง ์์ต๋๋ค
๋ฐ๋ผ์ "ํด๋น ๋๋ ํ ๋ฆฌ๊ฐ ์๋ ์์น"๋ venv/virtualenv์
๋๋ค.
- ์ฌ์ฉ์ ์ฌ์ดํธ ํจํค์ง๊ฐ ๋นํ์ฑํ๋์ด ์๋์ง ๊ฐ์งํ๊ณ ๋นํ์ฑํ๋ ๊ฒฝ์ฐ ๋ค์๊ณผ ๊ฐ์ด ์๋ํฉ๋๋ค.
--global
์ด(๊ฐ) ํต๊ณผ๋์์ต๋๋ค.ํ , ์ด๊ฑด ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค.
์ฌ์ฉ์ ์ฌ์ดํธ ํจํค์ง๊ฐ ๋นํ์ฑํ๋์ด ์์ผ๋ฉด ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ๋ฐฉ๋ฒ์ด ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
์ฐ๋ฆฌ๊ฐ ์ ๋ฐฉ๋ฒ์ด ์๊ธฐ ๋๋ฌธ์ ์ฐ๋ฆฌ๊ฐ ๊ฑฐ๊ธฐ์ ์ค์นํด์ผํ๋ค๊ณ ์๊ฐํ์ง ๋ง์ญ์์ค
๋นํ์ฑํ๊ฐ ์ฌ์ฉ์ ์ฌ์ดํธ ํจํค์ง๊ฐ _is_ ์์์ ์๋ฏธํ๋ ๊ฒฝ์ฐ ๋๋ ๊ทธ ์ด์ ๋ ๋ฌด์์
๋๊น? ์ฐ๋ฆฌ๋ ํ ์ ์์ต๋๋ค
์๋ค๊ณ ๊ฐ์ ํฉ๋๋ค.
- ๋ง์ง๋ง์ผ๋ก ๋ค๋ฅธ ๋ชจ๋ ํ์ง ๋ฐฉ๋ฒ์ด ์คํจํ๋ฉด
--global
์ธ ๊ฒ์ฒ๋ผ ํ๋ํฉ๋๋ค.
ํต๊ณผ๋์๋ค.๋ํ ํ์คํ์ง ์์ต๋๋ค.
์ด๊ฒ์ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ค์๊ณผ ๊ฐ์ด ์์ฝ๋ฉ๋๋ค.
--user ํ๋๊ทธ์ ๊ฐ์ด --user๋ฅผ ์ฌ์ฉํด์ผ ํ๋ ์ด์ ๋ฅผ ์ฐพ์ง ๋ชปํ ๊ฒฝ์ฐ ๋๋
๋๋ ํ ๋ฆฌ์ ์ธ ์ ์๋ ๊ถํ์ด ์์ผ๋ฉด ์ฌ์ฉํ์ง ๋ง์ญ์์ค. ์ด
--global
ํ๋๊ทธ ์์ด sudo pip install foo
๋ฅผ ์ ์งํ๋ ๊ฒ์
๋๋ค.
์ผํ๊ณ ์๋. ์ด๊ฒ์ ๋ํ ์ด๊ฒ์ด ๊นจ์ง์ง ์๋ ๊ฐ์ฅ ์ค์ํ ๊ท์น์์ ์๋ฏธํฉ๋๋ค.
sudo pip install foo
๊ฐ ์ด๋ฐ ์์ผ๋ก ์๋ํ ๊ฒ์ผ๋ก ์์ํ๋ ์๋ํ๋ ์ํํธ์จ์ด์
๋๋ค.
--user์ ์ค์นํ๊ณ ~/.local/bin์ด $PATH์ ์์ผ๋ฉด ์ผ์ข ์ ๊ฒฝ๊ณ ๊ฐ ํ์ํ ์ ์์ต๋๋ค.
์ด ๊ฒฝ๊ณ ๋ ์ผ๋ง๋ ์ทจ์ฝํ๊ฐ์? ์ ๋๊ฒฝ๋ก๋ก ๋ฐ๋๋์? ๋์๋ฌธ์๋ฅผ ๊ตฌ๋ถํ์ง ์๋ ํ์ผ ์์คํ ์์ ๋์๋ฌธ์๋ฅผ ๊ตฌ๋ถํ์ง ์์ต๋๊น? Windows์์ ๋ฐ/๋๋ ๋๋ฑํ๊ฒ ์ทจ๊ธํฉ๋๊น? ์ฌ๋ณผ๋ฆญ ๋งํฌ๋ ์ด๋ป์ต๋๊น?
์คํฌ๋ฆฝํธ๋ฅผ ์ค์นํ์ง ์๋ ํจํค์ง๋ฅผ ์ค์นํ๋ ๊ฒฝ์ฐ ๊ฒฝ๊ณ ๋ ์ด์จ๋ ๊ด๋ จ์ด ์์ต๋๋ค.
๊ฐ์ธ์ ์ผ๋ก ๋๋ ๊ฒฝ๊ณ ๊ฐ ๋๋ณด๋ค ์ค์ด ๋ ๋ง์ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
๋ค์๊ณผ ๊ฐ์ด ๊ตฌํํ ์ ์์ต๋๋ค.
def user_bin_on_path():
paths = os.environ.get("PATH").split(":")
for path in paths:
if os.path.realpath(path) == os.path.realpath(USER_BIN_DIR):
return True
return False
๊ทธ๋ฐ ๊ฒ์ ์ฌ๋ณผ๋ฆญ ๋งํฌ, ๊ฒฝ๋ก ๊ตฌ๋ถ ๊ธฐํธ ๋ฑ์ ์ฒ๋ฆฌํด์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ธ๋ถ ์ฌํญ์ ์ ๋ง๊ฐ ์์ผ๋ฉฐ ๋ค์ํ ํ๋ซํผ ๊ฐ ์ฝ๋ ์ฌ๋ก๋ฅผ ๋ค๋ฃฐ๋งํผ ์ ํํ์ง ์์ ์ ์์ต๋๋ค.
๋๋ ์คํฌ๋ฆฝํธ๊ฐ ์ค์น๋์ด ์์ง ์๋ค๋ฉด ๊ฒฝ๊ณ ๊ฐ ๋ฌด์๋ฏธํ๋ค๋ ๋ฐ ๋์ํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ ๋ ์คํฌ๋ฆฝํธ๋ฅผ ์ค์นํ ๋๋ง ๊ฒฝ๊ณ ๋ฅผ ๋ฌด์ํ ๊ฒ์ด๋ผ๊ณ ๋งํ๊ณ ์ถ์์ต๋๋ค.
๊ธฐ๋ณธ ์์ด๋์ด๋ --user๊ฐ ์์์ ์ธ pip install [--user] foo
์ ๊ฐ์ ์์
์ ์ํํ ๋ค์ foo
๋ฅผ ์ํํ๊ณ ์ ๋ํ ์ง์นจ ์์ด "๋ช
๋ น์ ์ฐพ์ ์ ์์"์ ์ป๋ ๊ฒ์ ์ํ์ง ์๋๋ค๋ ๊ฒ์
๋๋ค. ์ฐพ์ ์ ์๋ ์ด์ . ์ต์ํ ๊ฒฝ๊ณ ๋ PATH์ ์ถ๊ฐํด์ผ ํจ์ ์๋ ค์ค๋๋ค. ๋ํ Windows ์ฌ์ฉ์์๊ฒ ์ฌ์ฉ์ ๋๋ ํ ๋ฆฌ๋ฅผ PATH์ ์๋์ผ๋ก ์ถ๊ฐํ๋๋ก(๋๋ ์ด๋ฅผ ์ํํ๊ธฐ ์ํด ์ผ๋ถ ์คํฌ๋ฆฝํธ๋ฅผ ์คํ) ํ๋กฌํํธ๋ฅผ ํ์ํ๋ ๋ฐ ๋์์ด ๋ ์ ์์ผ๋ฉฐ, ์ด๋ Steve๊ฐ ์ง์ ํ activate
์คํฌ๋ฆฝํธ์ ํ์์ฑ์ ์ํํ ์ ์์ต๋๋ค. ๋๋ ๊ทธ๊ฒ์ด ์ฌ์ ํ ์์คํ
๊ฐ์ด ์ฌ์ฉ์ ๊ฐ๋ณด๋ค ์ฐ์ ํ๋ค๋ ๊ฒ์ ์๋ฏธํ๋ค๊ณ ์๊ฐํ์ง๋ง PATH ๋ฐ sys.path์ ์์๊ฐ ์ฌ์ ํ ๋ฐ๋์ด๊ธฐ ๋๋ฌธ์ ์ฌ์ ํ ํผ๋์ค๋ฌ์ธ ์ ์์ต๋๋ค.
๋. realpath
์ด ๊ฒฝ๋ก๋ฅผ ์ ๊ทํํ๋ค๋ ๊ฒ์ ์์์ต๋๋ค. ์, ๋ฌผ๋ก ์ถฉ๋ถํ ์ ์๋ํฉ๋๋ค.
๋๋ฅผ ๊ดด๋กญํ๋ ๊ฒ์ ํ ์คํธ๊ฐ ์ค์๋ก ๋ฌธ์ ๋ฅผ ๋ฐ๊ฒฌํ ๊ฒฝ์ฐ _if_ ์ฌ์ฉ์๋ pip์ ์ค์๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ์์คํ ์ ๋ณ๊ฒฝํ๋ ๊ฒ ์ธ์๋ ํผํ ๋ฐฉ๋ฒ์ด ์๋ ์ฑ๊ฐ์๊ณ ์๋ชป๋ ๊ฒฝ๊ณ ๋ฅผ ๋ฐ๋๋ค๋ ๊ฒ์ ๋๋ค. ๊ทธ๋ฌ๋ ์ ์ํ๋ ํ ์คํธ๊ฐ ์ถฉ๋ถํ ๊ฐ๋ ฅํ๊ณ ์คํฌ๋ฆฝํธ๋ฅผ ์ค์นํ๋ ๊ฒฝ์ฐ์๋ง ๊ฒ์ฌ๋ฅผ ์ํํ๋ค๋ ์ ์ ๊ฐ์ํ ๋ ๋ฌธ์ ๋ ๋ฌด์ํ ์ ์์ ์ ๋๋ก ๋๋ฌผ ๊ฒ์ ๋๋ค.
์๊ฒ ์ต๋๋ค. ์ฌ๊ธฐ์์ ๊ด๋ฒ์ํ ํฉ์๊ฐ ์ด๋ฃจ์ด์ง ๊ฒ ๊ฐ์ต๋๋ค. ๋๋ ๋ค์ ๋จ๊ณ๊ฐ ํจ์น๋ฅผ ์ป๋ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ๋๋ ๊ฐ์ ์ค๋ ๋ฐค์ด๋ ๋ด์ผ ๋ฆ๊ฒ ๋ฌด์ธ๊ฐ๋ฅผ ์ป์ผ๋ ค๊ณ ๋ ธ๋ ฅํ ๊ฒ์ ๋๋ค.
2015๋ 2์ 10์ผ ์คํ 12์ 14๋ถ์ Donald Stufft๋ ๋ค์๊ณผ ๊ฐ์ด ์ผ์ต๋๋ค.
๊ธฐ๋ณธ ์์ด๋์ด๋ --user๊ฐ ์์์ ์ธ
pip install [--user] foo
์ ๊ฐ์ ์์ ์ ์ํํ ๋ค์foo
๋ฅผ ์ํํ๊ณ
๋ช ๋ น์ด ์๋ ์ด์ ์ ๋ํ ์ง์นจ ์์ด "๋ช ๋ น์ ์ฐพ์ ์ ์์"์ ์ป์ต๋๋ค.
์ค๋ฆฝํ๋ค.
Debian ๋ฐ ์๋ง๋ ๋ค๋ฅธ Linux์๋ ์ค์ ๋ก command-not-found ํจํค์ง๊ฐ ์์ต๋๋ค.
์ฌ์ฉ์๊ฐ ๋ค์ ๋ช
๋ น์ ํธ์ถํ๋ฉด ํจํค์ง๋ฅผ ์ค์นํ๋ผ๋ ๋ฉ์์ง๊ฐ ํ์๋ฉ๋๋ค.
์ค์น๋์ด ์์ง ์์ต๋๋ค.
% ์ํฌ์ค์ผ์ดํ
'inkscape' ํ๋ก๊ทธ๋จ์ด ํ์ฌ ์ค์น๋์ด ์์ง ์์ต๋๋ค. ๋ค์์ ์
๋ ฅํ์ฌ ์ค์นํ ์ ์์ต๋๋ค.
sudo apt-get ์ํฌ์ค์ผ์ดํ ์ค์น
์ด์ฉ๋ฉด ์ฐ๋ฆฌ๋ ํ๋ซํผ์ ์ง์ํ๊ธฐ ์ํด ๊ทธ๊ฒ์ ์ฐ๊ฒฐํ ์ ์์ต๋๋ค.
2015๋ 2์ 10์ผ ์คํ 12์ 6๋ถ์ Donald Stufft๋ ๋ค์๊ณผ ๊ฐ์ด ์ผ์ต๋๋ค.
--global
๊ฐ ์ ๋ฌ๋๋ฉด ํญ์ ๊ธ๋ก๋ฒ ์ฌ์ดํธ์ ์ค์นํฉ๋๋ค.- ํจํค์ง.
๊ธ๋ก๋ฒ _vendor_ ํจํค์ง == +1, ๊ธ๋ก๋ฒ ์ฌ์ดํธ ํจํค์ง == -1.
์ด๊ฑด ๋ฐ๋๋ก ๋ง์ํ์๋ ๊ฑด๊ฐ์?
๋ด ์ฉ์ด๊ฐ ํผ๋๋ ์ ์์ผ๋ฏ๋ก ๋ช ์์ ์ผ๋ก ์ค๋ช ํ๊ฒ ์ต๋๋ค.
/usr/local/lib/pythonX.Y/dist-packages == +1
/usr/lib/pythonX.Y/dist-packages == -1
๊ทธ๋ฌ๋ ์ด์ ์ ๋งํ๋ฏ์ด ์ด๊ฒ์ pip์ด ์ ๋ง๋ก ๊ฑฑ์ ํ ํ์๊ฐ ์๋ ๊ฒ์ด ์๋๋๋ค.
distutils์์ ์์๋๊ณ Debuntu์ distutils๊ฐ ํจ์น๋์๊ธฐ ๋๋ฌธ์
์ณ์ ์ผ์ ํ๊ธฐ ์ํด.
- ์ฌ์ฉ์ ์ฌ์ดํธ ํจํค์ง๊ฐ ๋นํ์ฑํ๋์ด ์๋์ง ๊ฐ์งํ๊ณ ๋นํ์ฑํ๋ ๊ฒฝ์ฐ ๋ค์๊ณผ ๊ฐ์ด ์๋ํฉ๋๋ค.
--global
์ด(๊ฐ) ํต๊ณผ๋์์ต๋๋ค.ํ , ์ด๊ฑด ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค.
์ฌ์ฉ์ ์ฌ์ดํธ ํจํค์ง๊ฐ ๋นํ์ฑํ๋์ด ์์ผ๋ฉด ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ๋ฐฉ๋ฒ์ด ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
์ฐ๋ฆฌ๊ฐ ์ ๋ฐฉ๋ฒ์ด ์๊ธฐ ๋๋ฌธ์ ์ฐ๋ฆฌ๊ฐ ๊ฑฐ๊ธฐ์ ์ค์นํด์ผํ๋ค๊ณ ์๊ฐํ์ง ๋ง์ญ์์ค
๋นํ์ฑํ๊ฐ ์ฌ์ฉ์ ์ฌ์ดํธ ํจํค์ง๊ฐ _is_ ์์์ ์๋ฏธํ๋ ๊ฒฝ์ฐ ๋๋ ๊ทธ ์ด์ ๋ ๋ฌด์์ ๋๊น? ์ฐ๋ฆฌ๋ ํ ์ ์์ต๋๋ค
์๋ค๊ณ ๊ฐ์ ํฉ๋๋ค.
์ค, ๋ฌด์จ ๋ง์ธ์ง ์ด์ ์๊ฒ ์ด์. ๊ทธ๊ฒ ๋ง์ด ๋๋ ๊ฒ ๊ฐ์์. ๋ด ๊ฑฑ์ ์ ๊ทธ๊ฒ์ด
pip๊ฐ ์ค์ ๋ก ๋ฌด์์ ํ ๊ฒ์ธ์ง ์์ธกํ๋ ๊ฒ์ด ๋ ์ด๋ ค์ธ ์ ์์ง๋ง,
pip๊ฐ ๋ถ๋ช
ํ _tell_ํ ์ ์๋๋ก --dry-run ํ๋๊ทธ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
๋น์ ์ ๋ฌด์์ ํ ๊ฒ์
๋๋ค.
- ๋ง์ง๋ง์ผ๋ก ๋ค๋ฅธ ๋ชจ๋ ํ์ง ๋ฐฉ๋ฒ์ด ์คํจํ๋ฉด
--global
์ธ ๊ฒ์ฒ๋ผ ํ๋ํฉ๋๋ค.
ํต๊ณผ๋์๋ค.๋ํ ํ์คํ์ง ์์ต๋๋ค.
์ด๊ฒ์ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ค์๊ณผ ๊ฐ์ด ์์ฝ๋ฉ๋๋ค.
--user ํ๋๊ทธ์ ๊ฐ์ด --user๋ฅผ ์ฌ์ฉํด์ผ ํ๋ ์ด์ ๋ฅผ ์ฐพ์ง ๋ชปํ ๊ฒฝ์ฐ ๋๋
๋๋ ํ ๋ฆฌ์ ์ธ ์ ์๋ ๊ถํ์ด ์์ผ๋ฉด ์ฌ์ฉํ์ง ๋ง์ญ์์ค. ์ด
--global
ํ๋๊ทธ ์์ดsudo pip install foo
๋ฅผ ์ ์งํ๋ ๊ฒ์ ๋๋ค.
์ผํ๊ณ ์๋. ์ด๊ฒ์ ๋ํ ์ด๊ฒ์ด ๊นจ์ง์ง ์๋ ๊ฐ์ฅ ์ค์ํ ๊ท์น์์ ์๋ฏธํฉ๋๋ค.
sudo pip install foo
๊ฐ ์ด๋ฐ ์์ผ๋ก ์๋ํ ๊ฒ์ผ๋ก ์์ํ๋ ์๋ํ๋ ์ํํธ์จ์ด์ ๋๋ค.
๋ด๊ฐ ์ฐธ์กฐ. ์ฐ๋ฆฌ๊ฐ ํผํ๊ณ ์ถ์ ์ฃผ์ ์ฌ์ฉ ๊ธ์ง ์ฌ๋ก๋ ๋ค์๊ณผ ๊ฐ๊ธฐ ๋๋ฌธ์ ๊ด์ฐฎ๋ค๊ณ ์๊ฐํฉ๋๋ค.
normal_user$ pip ์ค์น foo
์ด๋ด ๋น์ ์ ๊ถํ์ด ์์ต๋๋ค
normal_user$ sudo pip install foo
์ด๋ด ๋น์ ์ ๋ฐฉ๊ธ ์์คํ
์ BOOKED
"๋๋ ํ ๋ฆฌ์ ์ธ ์ ์๋ ๊ถํ์ด ์๋ค๋ ๊ฒ์ --user" ๊ท์น์ ์๋ฏธํฉ๋๋ค.
๊ทธ๊ฒ์ ์ฒ๋ฆฌํฉ๋๋ค.
์, ๋ช ๋ น์ ์ฐพ์ ์ ์๋ค๋ ์ฌ์ค์ ์์ด๋ฒ๋ ธ์ต๋๋ค. ์ ์ฉํ ์ ์์ต๋๋ค. ๊ทธ๊ฑด ๊ทธ๋ ๊ณ , devubtu๊ฐ ๊ธฐ๋ณธ์ ์ผ๋ก ๊ฒฝ๋ก์ ์ฌ์ฉ์ ๋ก์ปฌ bin์ ๊ฐ์ง๊ณ ์๋ค๊ณ ์ ์ํ ์ ์ ํ ์์น๋ฅผ ์๊ณ ์์ต๋๊น?
2015๋ 2์ 10์ผ ์คํ 4์ 5๋ถ์ Barry Warsaw [email protected] ์์ ๋ค์๊ณผ ๊ฐ์ด ์ผ์ต๋๋ค.
2015๋ 2์ 10์ผ ์คํ 12์ 14๋ถ์ Donald Stufft๋ ๋ค์๊ณผ ๊ฐ์ด ์ผ์ต๋๋ค.
๊ธฐ๋ณธ ์์ด๋์ด๋ --user๊ฐ ์์์ ์ธ
pip install [--user] foo
์ ๊ฐ์ ์์ ์ ์ํํ ๋ค์foo
๋ฅผ ์ํํ๊ณ
๋ช ๋ น์ด ์๋ ์ด์ ์ ๋ํ ์ง์นจ ์์ด "๋ช ๋ น์ ์ฐพ์ ์ ์์"์ ์ป์ต๋๋ค.
์ค๋ฆฝํ๋ค.Debian ๋ฐ ์๋ง๋ ๋ค๋ฅธ Linux์๋ ์ค์ ๋ก command-not-found ํจํค์ง๊ฐ ์์ต๋๋ค.
์ฌ์ฉ์๊ฐ ๋ค์ ๋ช ๋ น์ ํธ์ถํ๋ฉด ํจํค์ง๋ฅผ ์ค์นํ๋ผ๋ ๋ฉ์์ง๊ฐ ํ์๋ฉ๋๋ค.
์ค์น๋์ด ์์ง ์์ต๋๋ค.% ์ํฌ์ค์ผ์ดํ
'inkscape' ํ๋ก๊ทธ๋จ์ด ํ์ฌ ์ค์น๋์ด ์์ง ์์ต๋๋ค. ๋ค์์ ์ ๋ ฅํ์ฌ ์ค์นํ ์ ์์ต๋๋ค.
sudo apt-get ์ํฌ์ค์ผ์ดํ ์ค์น์ด์ฉ๋ฉด ์ฐ๋ฆฌ๋ ํ๋ซํผ์ ์ง์ํ๊ธฐ ์ํด ๊ทธ๊ฒ์ ์ฐ๊ฒฐํ ์ ์์ต๋๋ค.
โ
์ด ์ด๋ฉ์ผ์ ์ง์ ํ์ ํ๊ฑฐ๋ GitHub์์ ํ์ธํ์ธ์.
2015๋ 2์ 10์ผ ์คํ 1์ 17๋ถ์ Donald Stufft๋ ๋ค์๊ณผ ๊ฐ์ด ์ผ์ต๋๋ค.
์, ๋ช ๋ น์ ์ฐพ์ ์ ์๋ค๋ ์ฌ์ค์ ์์ด๋ฒ๋ ธ์ต๋๋ค. ์ ์ฉํ ์ ์์ต๋๋ค. ๊ทธ๊ฑด ๊ทธ๋ ๊ณ ๋น์ ์
devubtu์ ์ฌ์ฉ์ ๋ก์ปฌ bin์ด ์๋ค๊ณ ์ ์ํ ์ฌ๋ฐ๋ฅธ ์์น๋ฅผ ์๊ณ ์์ต๋๋ค.
๊ธฐ๋ณธ์ ์ผ๋ก ๊ฒฝ๋ก?
ํ์คํ์ง๋ ์์ง๋ง ์๋ง๋ adduser ๋๋ passwd ํจํค์ง? ์ ์๊ฐ ์์
/usr/sbin/adduser ๋ฐ ํ์๋ /usr/bin/useradd๋ฅผ ์์ ํฉ๋๋ค.
์ฒซ ๋ฒ์งธ ํจ์ค: https://github.com/pypa/pip/pull/2418
๋์์ด ๋์ค์ง ๋ชจ๋ฅด๊ฒ ์ต๋๋ค๋ง...
- ~/.local/bin์ ๋ง์ ์ฌ๋๋ค์ $PATH์ ์์ต๋๋ค. ์ด์ ๋ํด ํ ์ ์๋ ์ผ์ด ์์ต๋๊น?
์ผ๋ถ ๋ค๋ฅธ ํ๋ก์ ํธ๋ $PATH์ ๋๋ ํ ๋ฆฌ๋ฅผ ์ถ๊ฐํ๊ธฐ ์ํด /etc/profiled.d/
๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์ ์ด๋ Antergos์์๋ jre.csh, jre.sh, perlbin.csh, perlbin.sh๋ฅผ ๋ณผ ์ ์์ต๋๋ค.
# Do not change this unless you want to completely by-pass Arch Linux' way
# of handling Java versions and vendors. Instead, please use script `archlinux-java`
setenv PATH "${PATH}:/usr/lib/jvm/default/bin"
# Do not change this unless you want to completely by-pass Arch Linux' way
# of handling Java versions and vendors. Instead, please use script `archlinux-java`
export PATH=${PATH}:/usr/lib/jvm/default/bin
# Set path to perl scriptdirs if they exist
# https://wiki.archlinux.org/index.php/Perl_Policy#Binaries_and_Scripts
# Added /usr/bin/*_perl dirs for scripts
# Remove /usr/lib/perl5/*_perl/bin in next release
[ -d /usr/bin/site_perl ] && setenv PATH ${PATH}:/usr/bin/site_perl
[ -d /usr/lib/perl5/site_perl/bin ] && setenv PATH ${PATH}:/usr/lib/perl5/site_perl/bin
[ -d /usr/bin/vendor_perl ] && setenv PATH ${PATH}:/usr/bin/vendor_perl
[ -d /usr/lib/perl5/vendor_perl/bin ] && setenv PATH ${PATH}:/usr/lib/perl5/vendor_perl/bin
[ -d /usr/bin/core_perl ] && setenv PATH ${PATH}:/usr/bin/core_perl
# If you have modules in non-standard directories you can add them here.
#export PERLLIB=dir1:dir2
# Set path to perl scriptdirs if they exist
# https://wiki.archlinux.org/index.php/Perl_Policy#Binaries_and_Scripts
# Added /usr/bin/*_perl dirs for scripts
# Remove /usr/lib/perl5/*_perl/bin in next release
[ -d /usr/bin/site_perl ] && PATH=$PATH:/usr/bin/site_perl
[ -d /usr/lib/perl5/site_perl/bin ] && PATH=$PATH:/usr/lib/perl5/site_perl/bin
[ -d /usr/bin/vendor_perl ] && PATH=$PATH:/usr/bin/vendor_perl
[ -d /usr/lib/perl5/vendor_perl/bin ] && PATH=$PATH:/usr/lib/perl5/vendor_perl/bin
[ -d /usr/bin/core_perl ] && PATH=$PATH:/usr/bin/core_perl
export PATH
# If you have modules in non-standard directories you can add them here.
#export PERLLIB=dir1:dir2
์์์ pip ์ฌ์ฉ์๋ก์ ์ด์ ๊ฐ์ ์ฌ์ฉ์ ๊ฒฝํ ๋ฌธ์ ์ ๋ํด ์์ ํ๊ณ ์ฌ์ฉ์ ๊ฒฝํ ๊ฐ์ ์ด์ ํ์ ์บก์ฒ๋ ๋ค๋ฅธ ๊ฒ๊ณผ ๊ฐ์ ์์ ์ ๋ํด _๊ณ ๋ง์ต๋๋ค_. ์ด ๋ ธ๋ ฅ์ ์ฌ์ ์ ์ผ๋ก ๊ธฐ์ฌํ ์ ์๋ ๊ณณ์ด ์์ต๋๊น?
์ ์ณ๋๊ณ , ์ ๋ Homebrew ๋ฅผ ์ฌ์ฉํ๊ณ brew install something
ํ ์ ์๊ณ ๊ถํ์ ๋ํ ์๋ ์์ด ์๋ํ๋ค๋ ์ฌ์ค์ ํญ์ ๊ฐ์ฌํ์ต๋๋ค.
Homebrew๋ก ์ค์นํ๋ ๋ฐ sudo
๊ฐ ์ ํ ํ์ํ์ง ์์ ์ด์ ๋ฅผ ์ดํดํ๋ฉด pip install --user something
ํ๋ ์ต๊ด์ ๋ค์ด๋ ค๊ณ ํ์ง๋ง ์ญ์ค์ ์ด๊ฒ๋ Homebrew๋ distutils์์ ๋ณด๊ณ ๋ ๋ฒ๊ทธ๋ก ์ธํด ์ด๋ฅผ ๋นํ์ฑํํฉ๋๋ค .
OS X์์ Homebrew์ ์ธ๊ธฐ๋ฅผ ๊ฐ์ํ ๋ Homebrew์ pip install --user
์ ์ด๋ฌํ ๋นํธํ์ฑ์ ์กฐ์ฌํ๊ณ ์ถ์ ๊ฒ์
๋๋ค.
์ด์จ๋ --user
๋ฅผ ๊ธฐ๋ณธ๊ฐ์ผ๋ก ๋ง๋ค ๋ +1ํฉ๋๋ค.
๋น ๋ฅธ ํ์ ์กฐ์น. Didier๋ --user๋ฅผ ๊ธฐ๋ณธ๊ฐ์ผ๋ก ์ค์ ํ๋ Ubuntu์ pip์ ๋ํ ๋ณ๊ฒฝ ์ฌํญ์ ์์ํ๊ฒ ์ ๋ก๋ํ์ต๋๋ค. ๋๋ ๋ํ ๊ทธ๊ฒ์ ๋๋ถ๋ถ ํ์ฉํ์ง๋ง ์ง๊ธ์ ๊ทธ๊ฒ์ด ์ค์๋ผ๊ณ ์๊ฐํ๊ณ ๊ทธ๊ฒ์ wily๋ก ๋๋๋ฆด ์์ ์ ๋๋ค(๊ทธ๋ฌ๋ ์๋ง๋ SRU๊ฐ ์์ํ๊ฒ ๋ณ๊ฒฝ๋์ง๋ ์์ ๊ฒ์ ๋๋ค). ์์ธํ ๋ด์ฉ๊ณผ ๊ทผ๊ฑฐ๋ https://bugs.launchpad.net/ubuntu/+source/python-pip/+bug/1460203 ์ ์ฐธ์กฐํ์ธ์.
์ฌ์ฉ์ ๋ ์์คํ ๊ตฌ๋ถ์ด ํ๋ซํผ ์ฐจ์ด ์์ด ์ด๋ฏธ ์ถฉ๋ถํ ํผ๋์ค๋ฝ๊ธฐ ๋๋ฌธ์ ์ ์คํธ๋ฆผ์ด ์ด ๋ณ๊ฒฝ์ ํ์ด๋ฐ์ ์ฃผ๋ํ๋๋ก ํ๋ ๋ฐ +1์ ๋๋ค.
์ฆ, Linux ๋ฐฐํฌํ์ --global ์ง์์ด ์ ์คํธ๋ฆผ pip(pip 8?)์ ๋๋ฌํ์๋ง์ ๊ธฐ๋ณธ๊ฐ์ --user๋ก ๋ค์ง๊ธฐ ์์ํ๋ ๊ฒ์ด ํฉ๋ฆฌ์ ์ผ ์ ์์ต๋๋ค. per-venv installs๋ ์ ์ฌ์ ์ผ๋ก ์์ธกํ ์ ์๋ ๋ถ์์ฉ์ด ์๋ ๋์ ์๊ฐ์ผ๋ก ์ ์๋ ค์ ธ ์์ต๋๋ค.
@warsaw ์๊ฒ ๊ฐ์ธ์ ์ผ๋ก ๋งํ์ง๋ง ์ฌ๊ธฐ์์๋ ๋งํ ๊ฒ์ ๋๋ค.
๋๋ ์ด ๋ณ๊ฒฝ์ด ์ค์ํ๋ค๊ณ ์๊ฐํ๋ฉฐ ๋ง๋ฌด๋ฆฌํ๊ธฐ ์ํด ๋ด ํ ๋ฆฌํ์คํธ์ ๋ค์ ๋์์ฌ ๊ณํ์ ๋๋ค. ๊ทธ๋ฌ๋ ์ ๋ ์ฌ๋ฌ ํ๋ก์ ํธ์ ๊ฑธ์ณ ์๋ ํ ์ฌ๋์ด๊ณ ์ง๊ธ ์ด ๋ณํ๋ณด๋ค Warehouse๊ฐ ๋ ์ค์ํฉ๋๋ค. ์๋ํ๋ฉด PyPI ๋ ๊ฑฐ์๊ฐ ์ด์์ ์ ์ ๋ ๋ถ๋ด์ด ๋๊ณ ์๊ณ ๊ฐ๋ฅํ ํ ๋นจ๋ฆฌ ์ด๋ฅผ ๊ต์ฒดํด์ผ ํ๋ค๊ณ ์๊ฐํ๊ธฐ ๋๋ฌธ์ ๋๋ค. ๋ฐ๋ผ์ pip์ ๋ํ ์ ์๊ฐ์ ๋ง์ ๋ณ๊ฒฝ ์ฌํญ์ ๋ง๋๋ ๋ฐ ์ด์ ์ ๋ง์ถ๋ ๊ฒ์ด ์๋๋ผ ๋ค๋ฅธ ๊ธฐ์ฌ์๊ฐ ๋ง๋๋ ๋ณ๊ฒฝ ์ฌํญ๊ณผ ๋ฆด๋ฆฌ์ค ํ๋ก์ธ์ค ํญ๋ชฉ์ ์๋ดํ๋ ๋ฐ ์ค์ ์ ๋ก๋๋ค.
์ฆ, ๋๊ตฐ๊ฐ๊ฐ ์ด ๊ธฐ๋ฅ์ด ๋ ๋นจ๋ฆฌ ์ถ์๋๋ ๋ฐ ์ ๋ง๋ก ๊ด์ฌ์ด ์๋ค๋ฉด ๋ด ์์ ์ ์ ํํ๊ณ ์๋ฃํ ์ ์์ผ๋ฉฐ ๋๋ ๊ธฐ๊บผ์ด ๊ฒํ ํ๊ณ ๋ณํฉํ ๊ฒ์ ๋๋ค. ๋๋ ๊ทธ๊ฒ์ ํ๊ณ ์ถ์ดํ๊ณ ๋ณํ์ ๋ํ ์ง์นจ์ ์ ๊ณตํ๊ณ ์ ํ๋ ๋๊ตฌ์๋ ๊ทธ๊ฒ์ ํตํด ์ด์ผ๊ธฐํ๊ฒ ๋์ด ๊ธฐ์ฉ๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด ๋์๊ฒ ๋ ์๊ธํ ํญ๋ชฉ์ ์๋ฃํ ๋๊น์ง ๊ธฐ๋ค๋ฆด ๊ฒ์ ๋๋ค.
์ด ์์ ์์ ๋ฐ๋ณตํ ๊ฐ์น๊ฐ ์์ต๋๋ค.
'--user ๊ธฐ๋ณธ๊ฐ'์ ์ ํํ์ง ์์ผ๋ฉด ๋ ๋ฐฉํด๊ฐ ๋๋ ๋์์ ๊ณ ๋ คํด์ผ ํฉ๋๋ค.
- --user๋ก ๋์ฒด(๊ถํ ์ค๋ฅ๋ก ์ธํด ์ค์น๊ฐ ์คํจํ ๊ฒฝ์ฐ)
- (๊ถํ ์ค๋ฅ๋ก ์ธํด ์ค์น๊ฐ ์คํจํ๋ ๊ฒฝ์ฐ) ์ฌ์ฉ์์๊ฒ (์นํ ํฐ ๊ธ์๋ก) --user๋ฅผ ์๋ํ๋๋ก ๊ถ์ฅํฉ๋๋ค.
FWIW, ์ด์ Python 3.5์ฉ Windows ์ค์น ํ๋ก๊ทธ๋จ์ด ์ฌ์ฉ์๋ณ ์ค์น๋ฅผ ๊ฐ๋ ฅํ๊ฒ ๊ถ์ฅํ๋ฏ๋ก pip์์ ๋ฐ์ํ๋ ์ด ๋ณ๊ฒฝ ์ฌํญ์ ๋ํด ๊ทธ๋ค์ง ๊ฑฑ์ ํ์ง ์์ต๋๋ค. ์๋ก์ด ๊ธฐ๋ณธ๊ฐ์ด๋ ๋์ฒด(fallback)๋ณด๋ค ๋ฐฐํฌํ( --global
์ฌ์ ์ ํฌํจ)์ ๋ํด ๋ ๋์ ๊ตฌ์ฑ ์ต์
์ ๋ง๋ค ์ ์์ต๋๋ค.
์ด ๋ฌธ์ ๋ฅผ +1ํ๊ณ ์์
ํด ์ฃผ์
์ ๊ฐ์ฌํฉ๋๋ค. ์ฐ๋ฆฌ๋ ํ์ฌ ๊ณผํ์ ์ธ Python ์ฌ๋ฆ ํ๊ต๋ฅผ ์ด์ํ๊ณ ์์ผ๋ฉฐ ๋ง์ ์ฌ๋๋ค์ด ๊ถํ ๋ฌธ์ ์ ์ง๋ฉดํ์ ๋ sudo pip install
ํ์ต๋๋ค.
FWIW ์ ๋ ๊ธฐ๋ณธ์ ์ผ๋ก --user
๋ก ์ค์ ํ๊ฑฐ๋ ๊ถํ ์ค๋ฅ๋ก ์ธํด ์ค์น๊ฐ ์คํจํ๋ฉด --user
๋ก ๋์ฒดํ๋ ๊ฒ์ ์ฐฌ์ฑํฉ๋๋ค. ์ด ๊ฒฝ์ฐ, ๋๋ ๊ทธ๋ค์๊ฒ ์คํจํ๊ณ ๋ค์ ์๋ํ๋ ๋ฐฉ๋ฒ์ ๋งํ๋ ๊ฒ๋ณด๋ค ๊ทธ๋ค์ด ํ ์ผ์ ๋๋๋ฆด ์ ์๋ ์ง์นจ์ ์ ๊ณตํ๋ ๊ฒ์ ์ ํธํฉ๋๋ค(์: We installed to your user directory. If you don't want this, then 'pip uninstall my_package'
).
--user๋ก ์ธํด ๋ชจ์์ ๋ํ ๋ง์ ๋ฒ๊ทธ ๋ณด๊ณ ์๊ฐ ํ์๋ฉ๋๋ค. ์ ์ด๋ Ubuntu์์๋ --user์ ์์น๊ฐ dist-packages ๋ค์ ์์ผ๋ฏ๋ก ์ผ๋ฐ์ ์ธ ์ข ์์ฑ์ ๋ํด ์ค์น๋ pip๊ฐ ์ค์ ๋ก ์ฌ์ฉ๋์ง ์์ต๋๋ค(์: 6) dist ํจํค์ง์ ์์ต๋๋ค.
๊ทธ๋ค์ ๊ทธ๊ฒ์ _after_ dist-packages
? ๊ทธ๊ฒ์ ๊นจ์ง ์ค์น IMO์
๋๋ค.
๋ง์ต๋๋ค. ์ฌ์ฉ์ ์ค์น๋ site(/dist)-ํจํค์ง๋ณด๋ค ๋จผ์ ์ด๋ฃจ์ด์ ธ์ผ ํ๋ฉฐ, ์์คํ ์คํฌ๋ฆฝํธ ๋ฐ ์ ํธ๋ฆฌํฐ๋ -I(๋๋ Python 2์ ๊ฒฝ์ฐ -E)์ ํจ๊ป ์คํ๋์ด์ผ ํฉ๋๋ค.
๊ทธ๋, ๋ ๋์ :). ์์ํ๊ฒ ์์ ๋ ์๋ ์์ง๋ง ์์ ํ ์๋ชป๋ ๊ณณ์์ ์ผ์ด ์ค๊ณ ์๋ค๋ ๋ณด๊ณ ๊ฐ ๋ถ๋ช ํ ์๋ ๊ฒ ๊ฐ์ต๋๋ค.
์คํ์ ์ํด ์์คํ pip๋ฅผ ์ฌ์ฉํ์ฌ ์์ํ ์ปดํจํฐ์ setuptools๋ฅผ ์ค์นํ์ต๋๋ค.
>>> import setuptools
>>> setuptools.__path__
['/home/robertc/.local/lib/python2.7/site-packages/setuptools']
>>> import sys
>>> sys.path
['', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-x86_64-linux-gnu', '/usr/lib/python2.7/lib-tk', '/usr/lib/python2.7/lib-old', '/usr/lib/python2.7/lib-dynload', '/home/robertc/.local/lib/python2.7/site-packages', '/usr/local/lib/python2.7/dist-packages', '/usr/lib/python2.7/dist-packages', '/usr/lib/python2.7/dist-packages/PILcompat', '/usr/lib/python2.7/dist-packages/gtk-2.0', '/usr/lib/pymodules/python2.7', '/home/robertc/work/mock']
๊ทธ๋์ ์ด๊ฒ์ ์ ์ ์ ์ ๋๋ค. ๊ทธ๋ฌ๋ ํผ๋์ค๋ฝ๊ฒ๋ ์ด๊ฒ์ ์์ํ - ๊ทธ๋์ IDK์์ ์๊ฐ๋์์ต๋๋ค. ์ด๋ ์์ ์์ ์ฌ์๊ธฐ๋ฅผ ํ๋ผ ์ ์๋์ง ํ์ธํ๊ฒ ์ต๋๋ค (Ubuntu BTS์ ํ์ผ๋งํ๊ธฐ ์ํด)
ํ์ด์ง @warsaw
์ฌ์ฉ์ ์ฌ์ดํธ ํจํค์ง๋ setuptools์ ์ฌ์
ํ .pth ํ์ผ ์ ์ํด ์ ์ญ ์ฌ์ดํธ ํจํค์ง ์ดํ๋ก ์ฌ์ ๋ ฌ๋ ์ ์์ต๋๋ค. ์ด๊ฒ๋ค์ setup.py
๋ฅผ ์ง์ ์ฌ์ฉํ์ง ์๋๋ค๋ ๊ฒ์ ๋ฐฐ์ธ ๋๊น์ง ๋ฐ๋ณต๋๋ ๋ฌธ์ ์์ต๋๋ค. ๋ฌด์ธ๊ฐ๋ฅผ ์ค์นํ๋ ค๊ณ ํ๋ค๊ฐ ๊ฐ์๊ธฐ ๋ค๋ฅธ ๋ชจ๋ ์ข
๋ฅ์ ์ด์ ๋ฒ์ ์ ์ฌ์ฉํ๊ณ ์์์ต๋๋ค. ๋ช ๋ฒ ํ, ๋๋ ๋ด ์์คํ
์ ํ๊ธฐ ์ํ ๊ณต๊ฒฉ์ ์ธ ๋๊ตฌ ๋ฅผ ์์ฑํ์ต๋๋ค.
์ ์ด๋ ๋น๋ถ๊ฐ pip๋ ๋ช
๋ น์ด ์คํจํ๋ฉด ์ฌ์ฉ์์๊ฒ --user
๋ฅผ ์คํํ๋๋ก ์์ฒญํ๋ ์น์ํ ๋ฉ์์ง๋ฅผ ์ธ์ํด์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ๊ธฐ๋ณธ๊ฐ์ผ๋ก ์ ํํ๋ฉด ์ด์ ์ด ์์ง๋ง ๋ ๋์ ๋ฉ์์ง๋ฅผ ์ธ์ํ๋ ๊ฒ์ ๋๋ฌด ์ด๋ ต์ง ์์์ผ ํฉ๋๋ค.
์ค์ ๋ก --user
๊ธฐ๋ณธ๊ฐ์ผ๋ก ์ด๋ํ ๋๊น์ง ๋ฌธ์ ์ ๋ํ ์ข์ "๋น ๋ฅธ ์์ "์
๋๋ค.
์ฌ์ฉ์ ๋ชจ๋๊ฐ /etc/pip.conf์ ์ค์ ๋ ๊ฒฝ์ฐ --global, --system ๋๋ --no-user๋ ํ์ํฉ๋๋ค. ๋ด๊ฐ ๋งํ ์์๋ ํ ์ฌ์ฉ์๊ฐ ์ด๊ฒ์ ๋ฌด์ํ๋ ์ฌ์ด ๋ฐฉ๋ฒ์ ์์ต๋๋ค.
๋ฌธ์ ์ ๋ํ ์ข์ "๋น ๋ฅธ ์์ "์ ๋๋ค.
๋ฆ์ ์ ๋ฐ์ดํธ: #4233์ด ์ด ์์ ์ ์ํํ์ต๋๋ค.
Windows๋ฅผ ์ฌ์ฉํ์ง ์๋ ์ฌ๋๋ค(ํนํ ์ ๊ท ์ด๋ฏผ์)์ด ์ข์ ๊ฒฝํ์ ํ๊ณ ์ถ๋ค๋ฉด ์ค์ ๋ก https://github.com/pyenv/pyenv ๋ก ์๋ดํด์ผ ํฉ๋๋ค. ํนํ ~/.local
๊ฐ XDG_DATA_HOME์ด๊ธฐ ๋๋ฌธ์ PEP 370์ ์ค๋๋ ๋์๊ฒ ๊ทธ๋ค์ง ์๋ฏธ๊ฐ ์์ต๋๋ค.
๋๋ ์ด ํ๋์ด ๋ฅ์น๋ฉด ์ด ํ๋์ ์ ํํ์ง ์์ ์ ์ผํ ์ฌ๋์ด ์๋๋ผ๊ณ ์๊ฐํฉ๋๋ค. pyenv์ ๋งค์ฐ ๋ง์กฑํ๊ธฐ ๋๋ฌธ์ ์ ํ์ด ์ํํ๊ณ ์์คํ ์๋ ๋ฐฉ์์ ๋ณ๊ฒฝํ๊ณ ์ถ๊ฐ CLI ํ๋๊ทธ๋ฅผ ์ ๋ฌํ ํ์๊ฐ ์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค. ๋ฌผ๋ก pyenv๊ฐ Windows์์ ์ผ๋ง๋ ์ ์๋ํ๋์ง ๋ชจ๋ฅด์ง๋ง bash ํ์ ์์คํ ์ด ๋์์ด ๋ ์ ์์ต๋๋ค...
@jcrben pyenv
๋ ์ฌ๋๋ค์ด Python์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ(ํนํ Python ๋ฐ์ด๋๋ฆฌ๋ฅผ ์ป๋ ๋ฐฉ๋ฒ)์ ๋ํด ๋ช ๊ฐ์ง ๊ฐ์ ์ ํฉ๋๋ค. ์ฆ, ์ด๋ฌํ ๊ฐ์ ์ด ์ ํจํ ์ฌ๋๋ค์๊ฒ๋ ๋งค์ฐ ์ ์๋ํ์ง๋ง ๊ธฐ๋ณธ ๊ถ์ฅ ์ฌํญ์ด ๋๊ธฐ์๋ ์ถฉ๋ถํ ๋ณดํธ์ ์ด์ง ์์ต๋๋ค(์ด ์ ์์ conda
์ ์ ์ฌํจ).
pip
์์ค์ --user
๊ธฐ๋ณธ๊ฐ์ ์ฌ๋ฐ๋ฅด๊ฒ ๊ตฌ์ฑ๋ Python ๊ฐ์ ํ๊ฒฝ ๋ด์์๋ ์ํฅ์ ๋ฏธ์น์ง ์์ผ๋ฏ๋ก ์ด ๋ณ๊ฒฝ์ด conda
๋ฐ pyenv
์ ๊ฐ์ ํ์ฌ ํ๊ฒฝ ๊ด๋ฆฌ์์ ๋ฏธ์น๋ ์ํฅ pip
๋ฐ ๊ธฐํ ๋๊ตฌ๊ฐ ๊ฐ์งํ ์ ์๋ ๋ฐฉ์์ผ๋ก(์ฆ, virtualenv
๋ณด๊ณ ํ๋ ๋ฐฉ์, ๋๋ ํ์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ venv
๋ฐฉ์).
๊ด๋ จ ์ ์: https://github.com/pypa/pip/issues/1056#issuecomment -218130183.
~ ~/.local
์ ์ง์ ์ค์นํ๋ ๊ฒ์ ํผํ๊ธฐ ์ํด ์ฌ์ฉ์๊ฐ ๋๋ ํ ๋ฆฌ๋ฅผ ์ฌ์ฉ์ ์ ์ํ ์ ์๋๋ก(์๋ง๋ env ๋ณ์๋ฅผ ํตํด) ํ์ฉํ๋ ๊ฒ์ด ๊ณ ๋ ค๋์์ต๋๊น?๋๋ ์๋ง๋ ๊ทธ๊ฒ๋ค์ ~ 9.0.1์์๋ ~/.local/pip
๋๋ ๋ฌด์์ธ๊ฐ์ ๋ดํฌํ๊ณ ์ถ์ต๋๋ค - ๋ด๊ฐ ์ผ๋ คํ๋ ํ Python์ ํด๋น ๊ณต์ ๊ณต๊ฐ์ ์ต์์ ์์ค์ ๋ํ ํน๋ณํ ๊ถํ์ด ์์ต๋๋ค.~/.local/lib/python<version>
์๋์ ํญ๋ชฉ์ ์ค์ฒฉํ๊ณ ~/.local/bin
์ ์คํ ํ์ผ์ ์ถ๊ฐํ๋ ๊ฒ์ผ๋ก ๋ณด์
๋๋ค.
@jcrben Aye, ๋์ ์์น๋ ์ค์ ๋ก Python์ ์ฌ์ฉ์ ์ฌ์ดํธ ๋๋ ํฐ๋ฆฌ์ด๋ฉฐ ์์คํ ์ฌ์ดํธ ํจํค์ง ๋๋ ํฐ๋ฆฌ์ ๋ช ๋ช ์ฒด๊ณ๋ฅผ ๋ฐ์ํฉ๋๋ค. https://docs.python.org/3/library/site.html#site.USER_SITE
์ด๋ PYTHONUSERBASE
ํ๊ฒฝ ๋ณ์๋ฅผ ํตํด ์ธํฐํ๋ฆฌํฐ ์์ค์์ ์ด๋ฏธ ๊ตฌ์ฑํ ์ ์์ต๋๋ค. https://docs.python.org/3/using/cmdline.html#envvar -PYTHONUSERBASE
๊ด์ฌ ์๋ ์ฌ๋๋ค์ ์ํด ์ด ๋์์ ๊ธฐ๋ณธ์ผ๋ก ํ๋ ํจํค์ง ๋ช
๋ น install
, uninstall
๋ฐ update
๊ฐ ์๋ https://github.com/ofek/hatch ๋ฅผ ์ถ์ํ์ต๋๋ค. ์์คํ
๋ณ๊ฒฝ์ ์ํด ์ฌ์ฉ์๋ https://github.com/npm/npm ๊ณผ ์ ์ฌํ -g/--global
์ต์
์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
PyPI ์ ๋งฌ์จ์ด ๊ฐ์ผ ํจํค์ง์ ๋ํ ์ต๊ทผ ๋ฌธ์ ๋ฅผ ๊ฐ์ํ ๋, ํนํ ์ค์ ์คํฌ๋ฆฝํธ๊ฐ ์ค์น ์ ์์์ ์ฝ๋๋ฅผ ์คํํ ์ ์๋ค๋ ์ ์ ๊ณ ๋ คํ์ฌ sudo pip install ...
์ ์ฌ์ฉ์ ์ต์ ํ๊ธฐ ์ํด ํ ์ ์๋ ์ผ์ ํ๋ ๊ฒ์ด pip์ ๊ฐ์ฅ ์ ์ตํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ๊ฐ์ผ๋ ํจํค์ง๋ฅผ ์ฌ์ฉ์๋ก ์ค์นํ๋ ๊ฒ๋ง์ผ๋ก๋ ์ถฉ๋ถํ์ง๋ง ๋ฃจํธ๋ก ์ค์นํ๋ฉด ํจ์ฌ ๋ ๋์ฉ๋๋ค.
์ฌ์ฉ์ ์ค์น๋ฅผ ๊ธฐ๋ณธ๊ฐ์ผ๋ก ์ค์ ํ๋ฉด pip ๋ช ๋ น ์์ sudo๋ฅผ ์ถ๊ฐํ๋ ์ฌ๋์ด ์ค์ด๋ค์ด ์ค์๋ก ์ค์น๋ ๋งฌ์จ์ด๊ฐ ๋ ์ ์ ์์ ์ ์ํํ ์ ์์ต๋๋ค.
๊ตฌ์ฒด์ ์ธ ๋ค์ ๋จ๊ณ๋ก --global
ํ๋๊ทธ ์ถ๊ฐ์ ๋ํ ๋ณ๋์ ๋ฌธ์ ๋ฅผ ์ ๊ธฐํ์ต๋๋ค. https://github.com/pypa/pip/issues/4865
์ด๊ฒ์ virtualenv ๋๋ conda ํ๊ฒฝ์์ ๊ฑฐ์ ํ์คํ ๋์ ์๊ฐ์
๋๋ค. ํ ํ๊ฒฝ์ด ํ์ฑ ์ํ์ผ ๋ .local
์ ์ค์น๋ ๋ชจ๋ ๊ฒ์ด ๋ค๋ฅธ ํ๊ฒฝ์ ์ฝ๊ฒ ์์์ํฌ ์ ์์ต๋๋ค. ๊ทธ๋ ๋ค๋ฉด ๊ทธ ๊ฒฝ์ฐ์๋ ์ด๋ค ์๊ฐ์ ํ๊ณ ์์๊น์?
cc @msarahan @kalefranz
์ด ๋ฌธ์ ๋ ํ์ฑ ๊ฐ์ ํ๊ฒฝ ๋ด๋ถ์๋ ์ ์ฉ๋์ง ์์ต๋๋ค. ํ์ฑ ํ๊ฒฝ์ด ๊ฐ์ง๋์ง ์๊ณ ๋์ ์ ์ ์ต์
( --prefix
, --root
๋ฑ)์ด ์ ๊ณต๋์ง ์์ ๊ฒฝ์ฐ์๋ง ์ ์ฉ๋ฉ๋๋ค. ๋ช
๋ น์ค์์.
์ด๊ฒ์ ์ด๋ป๊ฒ ๊ฒฐ์ ๋๊ณ ์์ต๋๊น?
์ฐ๋ฆฌ๋ ๊ธฐ๋ณธ์ ์ผ๋ก conda์ ์ํด ์ค์น๋ ๋ชจ๋ python์ธ conda ํ๊ฒฝ ๋ด๋ถ์ python์ ๋ํด sys.path
์์ ๊ธฐ๋ณธ์ ์ผ๋ก ~/.local
๋ฅผ ๋นํ์ฑํํ๋ ๊ฒ์ ๊ณ ๋ คํ์ต๋๋ค. ๊ทธ๋๋ ๊น๋ค๋กญ์ต๋๋ค. ์ด๋ ์ชฝ์ด๋ ์ฐ๋ฆฌ๋ ์ฌ์ฉ์ ๊ทธ๋ฃน์ ๊ธฐ๋์น๋ฅผ ์๋ฐํ๊ฒ ๋ ์ ์์ต๋๋ค. https://github.com/conda/conda/issues/7173 ์์ ํ ๋ก
pip๊ฐ PIP_
๋ก ์์ํ๋ ํ๊ฒฝ ๋ณ์์์ ์ธ์๋ฅผ ๋ก๋ํ ์ ์์์ต๋๊น? --user
์์ ์๋ํฉ๋๊น? ์ ์ฒด ๋ณ์ ์ด๋ฆ์ ๋ฌด์์
๋๊น?
PIP_USER
์
๋๋ค.
๋ฌธ์: https://pip.pypa.io/en/stable/user_guide/#environment -๋ณ์
PIP_USER=yes
์ ํํ ๋งํ๋ฉด ๊ฐ์ฌํฉ๋๋ค! ํ๊ฒฝ ๋ณ์๋ฅผ ์ฌ์ฉํ๋ฉด ํ๊ฒฝ ๋ณ์๋ฅผ ํ ๋ฒ๋ง ์ ์ํ๋ฉด ๋ช
๋ น์ด ํธ์ถ๋ ๋๋ง๋ค ์ฌ์ฉ๋๋ฏ๋ก CI ์ฌ์ฉ์ด ํจ์ฌ ์ฝ์ต๋๋ค.
๋ถ๋ช ํ ์ผ๋ถ ๋จ๊ณ๋ virtualemv ์์ด ์ผ๋ฐ ์ฌ์ฉ์๋ก ์คํ๋๊ณ ์ผ๋ถ๋ virtualenv ๋ด๋ถ์์ ์คํ๋๋ travis์ ๋ํด ์ ๋ง ์ถ์ ํ ๋ ผ๋ฆฌ๋ฅผ ์ํํด์ผ ํ์ต๋๋ค.
virtualenv ๋ด๋ถ๋ ์ฌ์ดํธ ํจํค์ง(๋ค๋ฅธ ๋ฌธ์ ๋ฅผ ์ผ์ผํค๊ณ ์์)๋ฅผ ์ฌ์ฉํ์ง ์์ผ๋ฉด ์ฌ์ฉ์๊ฐ ์คํจํ ๊ฐ๋ฅ์ฑ์ด ์์ต๋๋ค.
bash์์ virtualenv๋ฅผ ๊ฐ์งํ๊ณ -user ์ถ๊ฐ๋ฅผ ํผํด์ผ ํ๊ณ ๊ทธ๋ ์ง ์์ผ๋ฉด ์คํ์ด ์คํจํฉ๋๋ค.
์ด๊ฒ์ ์ถ์ ํ๊ณ ๋๋ฒ๊น ์ ๋ง์ ์๊ฐ์ ๋ญ๋นํ๊ฒ ๋ง๋ค์์ต๋๋ค. ๋ค๋ฅธ ์ฌ๋๋ค๋ ๊ฐ์ ๋ฌธ์ ์ ์ง๋ฉดํ ๊ฒ์ด๋ผ๊ณ ํ์ ํฉ๋๋ค.
๊ฐ๋ฅํ ๊ฒฝ์ฐ ์ฌ์ฉ์์๊ฒ ์ค์นํ๊ณ ์์คํ ์ผ๋ก ๋์ฒดํ๋ ๊ฒ๊ณผ ๊ฐ์ด ์ค์น์ ๊ด๋ จํ์ฌ ๋์ฒด๋ฅผ ํ์ฑํํ๋ ์ต์ ์ด ํ์ํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
pip๋ ํจํค์ง๋ฅผ ์ค์นํ ์ฅ์๋ฅผ ์ฐพ์ง ๋ชปํ ๊ฒฝ์ฐ์๋ง ์คํจํด์ผ ํฉ๋๋ค.
์ด์ ๋ํ ์์ง์์ด ์์ต๋๊น?
์ธ๊ธ๋ ๊ฒ์ ๋ณด์ง ๋ชปํ์ง๋ง sudo์์ ์คํํ ๋ --user๊ฐ ์ ๋ฌ๋๋ฉด pip๊ฐ ๋ถํํด์ผ ํ ๊ฒ์ ๋๋ค.
์ด๋ฌํ ๋ฏธํด๊ฒฐ ๋ฌธ์ ๋ก ์ธํด ํ๋ก๊ทธ๋๋จธ๋ pip ๋ฐ python์์ ๋ฉ์ด์ง๊ณ ์ด์ ๊ฐ์ ๋ฌธ์ ๊ฐ ์ ์ ๋ค๋ฅธ ํจํค์ง ๋๋ javascript ๋ฐ npm๊ณผ ๊ฐ์ ๋ค๋ฅธ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ฅผ ์ฌ์ฉํ๊ฒ ๋ฉ๋๋ค. ํ์ด์ฌ์ ์ฌ์ฉํ๋ ค๋ ์๋ก์ด ์ด๋ณด์์๊ฒ๋ ์ด๋ฌํ ์ถ๊ฐ ํ์ ์ต์ ์ด ์ค๋ง์ค๋ฝ์ต๋๋ค.
--user๊ฐ ๊ธฐ๋ณธ๊ฐ์ธ ์ด์ ๋ ๋ฌด์์ ๋๊น? ๋ช ์์ ์ผ๋ก ์ง์ ํ ์ ์๋์? ์ฌ์ฉ์์ ํจ๊ป ์ฌ์ฉํ ์ ์๋ค๊ณ ๋ถํํ๊ธฐ ๋๋ฌธ์ pip --target์ ์คํํ ์ ์์ต๋๋ค. ๊ทธ๊ฒ์ ํผํ๋ ๋ฐฉ๋ฒ์ ๋ํ ์์ด๋์ด๊ฐ ์์ต๋๊น?
@dmikov : ๊ธฐ๋ณธ๊ฐ์ด ์๋๋๋ค. Debian/Ubuntu ๊นจ์ง ๋ฒ์ ์ ์ฌ์ฉํ์ง ์๋ ํ PIP_USER=0 pip install -t ...
๋ฅผ ์ฌ์ฉํ์ฌ --user
๊ฐ ์๋์ผ๋ก ์ค์ ๋๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์์ต๋๋ค. ๋๋ ๋ ๋์ ๋ฐฉ๋ฒ์ ๊ณต์ ๋ฒ์ ์ ์ค์นํ๊ณ ์ฌ์ฉํ๋ ๊ฒ์
๋๋ค.
๋๋ ๋ฐค์ --user
์ต์
์ด ๊ธฐ๋ณธ๊ฐ์ด ๋๋ ๊ฟ์ ๊พธ์์ต๋๋ค(๋๋ด ์๋). ๋ด ๊ฟ์ด ๊ณง ์ด๋ฃจ์ด์ง ๊ฐ๋ฅ์ฑ์ด ์์ต๋๊น?
์๋ชป๋ ๊ตฌ๋ฌธ์ด ๊ณ์ ํ์๋๋ ํ์ด ๊ฒ์ ์ค์น์ ๋์์ด ํ์ํฉ๋๋ค.
๋๋ ์ฌ์ฉํ๋ค
python3 -m pip ์ค์น -U ํ์ด ๊ฒ์ --์ฌ์ฉ์
์ด๊ฒ ์๋ชป๋ ๊ฑด๊ฐ์?
@flamedro56 : ์์์ ๋ฌธ์ ์ ๋ํด ๋ ผํํ๋ ๋์ ์ ๋ฌธ์ ๋ฅผ ์ด๊ณ Python ๋ฒ์ , pip ๋ฒ์ , ์ด์ ์ฒด์ , ๋ช ๋ น ์ถ๋ ฅ ๋ฑ์ ์ถ๊ฐ ์ ๋ณด๋ฅผ ์ ๊ณตํ์ธ์.
์ค์น ํ๋ก๊ทธ๋จ reCAPTCHA
์๋ก์ด ๊ตฌ์ฑ ์ต์ default=system,user๋ฅผ ๊ฐ๋ ๊ฒ์ ์ด๋ป์ต๋๊น? ์๋ฌด๋ "๊ฐ์ ํ๊ฒฝ์์๋ ํญ์ ์ฌ์ฉ์"๋ฅผ ์๋ฏธํ๋ค๊ณ ์๊ฐํ์ง ์์ ๋งํผ ์ถฉ๋ถํ ๋ช ์์ ์ ๋๋ค. ๊ทธ๊ฒ์ ์ ์์ ์ธ ๋ง์ด๊ทธ๋ ์ด์ ๊ฒฝ๋ก๋ฅผ ํ์ฉํฉ๋๋ค.
#4575๋ฅผ ์ฐธ์กฐํ์ญ์์ค.
Manjaro ๊ฐ --user
์ ๊ธฐ๋ณธ๊ฐ์ผ๋ก ์ค์ ํ๋ ค๊ณ ํ๋ ๊ฒ ๊ฐ์ต๋๋ค.
์ด ๋ฌธ์ ์ ๋ํด ์ ์คํธ๋ฆผ์์ ์๋ก์ด ๊ฒ์ด ์์ต๋๊น?
@Tids : "filesystem-2018.9-3์ ๊ธฐ๋ณธ์ ์ผ๋ก $HOME/.local/bin์ $PATH์ ์ถ๊ฐํฉ๋๋ค." Manjaro๊ฐ ์ฌ๋ฐ๋ฅด๊ฒํ๊ณ ์๋ ํต์ฌ ์ถ๊ฐ ์กฐ๊ฐ์ ๋๋ค.
Debian์ Python ์์ค์์ "default to --user"๋ฅผ ์ฌ์ฉ์ ๊ณ์ ์์ค์์ "$HOME/.local/bin์ด ๊ธฐ๋ณธ์ ์ผ๋ก $PATH์ ์์ต๋๋ค"์ ๊ฒฐํฉํฉ๋๋ค. ์ด๊ฒ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ์ฝค๋ณด์ ๋๋ค.
#7002์์ ์ ์ญ site-packages dir์ ์ธ ์ ์๊ณ ์ฌ์ฉ์ site-packages๊ฐ ํ์ฑํ๋ ๊ฒฝ์ฐ ๊ธฐ๋ณธ์ ์ผ๋ก pip๊ฐ ์ฌ์ฉ์ ์ค์น๋ฅผ ์ํํ๋๋ก ์๋ํ์ต๋๋ค. ์ด๋ ํ๊ฒฝ์ ์์ ํ ์ ์๋ ๊ถํ์ด ์๋ ํ ํ๊ฒฝ์ ์ค์นํ๋ ค๊ณ ํ ๋ ์ฌ์ฉ์ ์ค์น๋ฅผ ์ํํ๋ ๊ฒ์ ํฌ๊ฒ ํผํด์ผ ํฉ๋๋ค.
์ ๋ ๋จผ์ ์์ด๋์ด์ ๋ํ ํ ๋ก ์ ์ฐพ๊ณ ์์ต๋๋ค. ๊ตฌํ์ ๊ฒํ ํ๋ ๋ฐ ์๋ ์ ๋น ์ง์ง ๋ง๊ณ ๊ทธ ์ผ์ ํ๋ ๊ฒ์ด ํ๋นํ์ง ์๊ฐํ์ง ๋ง์๋ค.
์ฌ์ฉ์ ์ค์น์ ๋น์ฌ์ฉ์ ์ค์น(pip ์์ฒด์)๋ฅผ ํผํฉํ๋ฉด ๋ฌธ์ ๊ฐ ๋ง๋ค๋ ์ ์ ์ฃผ๋ชฉํ ๊ฐ์น๊ฐ ์์ต๋๋ค. ์ต๊ทผ #7209๋ฅผ ํ ์๋ก ์ฐธ์กฐํ์ญ์์ค.
์ด ๋ฌธ์ ์ ์ง์ ์ ์ธ ๊ด๋ จ์ ์์ง๋ง(์ค์ ๋ก ์ฌ์ฉ์๋ฅผ ๊ธฐ๋ณธ๊ฐ์ผ๋ก ์ค์ ํ๋ฉด ์ํฉ์ด ๋ค์ ์ํ๋ ์ ์์) --user
๋ก์ ์ ํ์ ๊ธฐ๋ณธ๊ฐ์ผ๋ก ์ฒ๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์ ์คํ๊ฒ ์๊ฐํ ํ์๊ฐ ์์์ ๊ฐ์กฐํฉ๋๋ค.
(์ ๋ ์ฃผ๋ก ์ด ์ฃผ์์ ์ฌ๊ธฐ์ ์ถ๊ฐํ๊ณ ์์ผ๋ฏ๋ก ์ด๋๊ฐ์ ๊ธฐ๋ก๋ฉ๋๋ค. ๋๋ถ๋ถ pip ๋ฌธ์ ๊ฐ ์๋๋ผ Python์ USER_SITE ๋๋ ํ ๋ฆฌ๊ฐ ์ผ๋ฐ์ ์ผ๋ก ์๋ํ๋ ๋ฐฉ์์ ํฉ๋ณ์ฆ์ด๋ฉฐ --user
๋ก ์ค์นํ๋ ์ฌ์ฉ์๊ฐ ์ถฉ๋ถํ ์ดํดํ์ง ๋ชปํฉ๋๋ค.
PATH
(๋ช
๋ น ์ฐพ๊ธฐ์ฉ) ๋ฐ sys.path
(Python ๊ฐ์ ธ์ค๊ธฐ ์ฐพ๊ธฐ์ฉ)์ ์ฐ์ ์์๊ฐ ๋ฐ๋์ด๋ฏ๋ก ํ ์ค์น์ ๋ฐ์ฒ ์คํฌ๋ฆฝํธ๊ฐ ํจํค์ง๋ฅผ ๋ก๋ํ๋ ค๊ณ ์๋ํ๋ ๊ฒ์ด ๋ฌธ์ ์ธ ๊ฒ ๊ฐ์ต๋๋ค. ๋ค๋ฅธ. ์๋ง๋ pip์๋ง ๊ตญํ๋ ๊ฒ์ ์๋๋๋ค. ์คํฌ๋ฆฝํธ๋ฅผ ์ค์นํ๋ ๋ชจ๋ ํจํค์ง์ ์ํฅ์ ๋ฏธ์น ์ ์์ต๋๋ค.
์ฐ๋ฆฌ๊ฐ ๊ทธ๊ฒ์ ๋ํด ๋ฌด์์ ํ ์ ์๋์ง ํ์คํ์ง ์์ง๋ง ์๊ฐํด ๋ณผ ๊ฐ์น๊ฐ ์๋ค๋ ์ ์๋ ๋์ํฉ๋๋ค.
๋ค, ๊ทธ๊ฒ์ด ์ ๊ฐ ์ผ๋์ ๋์๋ ์ฃผ์ "USER_SITE์ ํฉ๋ณ์ฆ"์
๋๋ค. IMO, ๋ํผ ์คํฌ๋ฆฝํธ๋ฅผ ์ฌ์ฉํ์ง ์๊ณ python -m pip
๋ง ์ง์ํ๋ ๊ฒ์ด ๊ฐ์ฅ ํจ๊ณผ์ ์ธ ์๋ฃจ์
์
๋๋ค. (์ ๋ ๋ํผ ์์ฒด์ ๋ฐ๋ํ์ง ์์ง๋ง ์ฐ๋ฆฌ๊ฐ ๋ณผ ์ ์๋ ๋ฌธ์ ๋ ์ผ๋ฐ์ ์ผ๋ก ์ฌ๋๋ค์ด ์ค์๋ก ์๋ชป๋ ๋ํผ๋ฅผ ์คํํ๋ ๊ฒ์ด๋ฏ๋ก ๋ํผ ์คํฌ๋ฆฝํธ ๋ฌธ์ ๋ฅผ ์์ ํ๋ ๊ฒ์ ์ผ๋ฐ์ ์ผ๋ก pip ๋ฌธ์ ๊ฐ ์๋๋ผ "์ฌ์ฉ์ ํ๊ฒฝ์ ์๋ชป๋ ๊ตฌ์ฑ ์ง๋จ ๋ฐ ์์ " ๋ฌธ์ )
pip
๋ํผ ์คํฌ๋ฆฝํธ๋ฅผ ๋ ์ด์ ์ฌ์ฉํ์ง ์๋๋ค๋ ๋ป์
๋๊น, ์๋๋ฉด pip๊ฐ ์ค์นํ ์ ์๋ ๊ฒ์ผ๋ก ๋ํผ ์คํฌ๋ฆฝํธ๋ฅผ ์ฌ์ฉํ์ง ์๋๋ค๋ ๋ป์ธ๊ฐ์?
๋๋ ํ์คํ ํ์์ ๋ํด -1์ ๋๋ค. ๋ช ๋ น์ ์ค์นํ๋ ๊ธฐ๋ฅ์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋๋ผ๋ ๋งค์ฐ ์ ์ฉํฉ๋๋ค.
$#$ python -m pip
pip
๋ฅผ ๋น์ถ์ฒํ๋ ๊ฒ์ด ๋ ํฉ๋ฆฌ์ ์ผ ์ ์์ต๋๋ค. pip๊ฐ ์คํ ์ค์ธ Python ํ๊ฒฝ์ ์ค์น๋ ๋ ์ด๋ค ํ๊ฒฝ์ธ์ง ๋ช
ํํ ์ดํดํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ๊ทธ๋ฌ๋ ๊ทธ๊ฒ์ ์ฌ์ ํ โโํธ์์ฑ์ ์์คํ๊ณ ์ฌ๋๋ค์๊ฒ ์ต์ํ ๊ฒ์ ํฐ ํด์์ด ๋ ๊ฒ์
๋๋ค.
๋๋ ํนํ pip ์์ฒด์ ๋ํ ๋ํผ ์คํฌ๋ฆฝํธ๋ฅผ ์๋ฏธํ์ต๋๋ค. ํธ์์ฑ ์์ค์ ๋์ํ๊ณ ์ด๋ค ํํ๋ก๋ ์ ์งํ๋ ๊ฒ์ ๋ฐ๋ํ์ง ์์ ๊ฒ์
๋๋ค(#3164๋ ๋ํผ๋ฅผ ์ ๊ณตํ๋ ์๋ก์ด pip-cli
ํ๋ก์ ํธ๋ฅผ ์ ์ํจ). ๊ทธ๋ฌ๋ ํต์ฌ์ python -m pip
์ ๋ํ ๊ฒ์
๋๋ค. ์ง์ ๋๋ pip ์คํ ์๋จ์
๋๋ค.
ํ์ฌ python
(PATH ๋๋ python -m pip
์ ํจ๊ป ์ฌ์ฉ๋๋ ํญ๋ชฉ)์ด $#์์ ์ฌ์ฉํ๋ pip
python
๊ฐ ์๋ ๊ฒฝ์ฐ pip ๋ํผ ์คํฌ๋ฆฝํธ๋ฅผ ํธ์ถํ๋ฉด ๊ฒฝ๊ณ ๊ฐ ํ์๋ฉ๋๋ค. pip
? ์ด๋ฐ ์์ผ๋ก ํธ์ถํ๋ฉด python -m pip
์ ์์ํ ์๋ ์์ต๋๊น?
์ ์ฌํ๊ฒ, pipenv๋ ์ฌ์ฉ์๊ฐ ์ด๋ฏธ virtualenv์ ์์ผ๋ฉด ๊ฒฝ๊ณ ํ๊ณ , ๊ทธ๋ ๋ค๋ฉด ๊ฒฝ๊ณ ๋ฅผ ๋ด๋ณด๋ธ ํ ์์ ์ virtualenv๋ฅผ ๊ด๋ฆฌํ๋ ๋์ ํด๋น virtualenv๋ฅผ ์ฌ์ฉํฉ๋๋ค.
์, ์ฌ๊ธฐ์์ #7002๋ ์ด ์์ ์์ 6๋ช ์ pip ์ ์ง ๊ด๋ฆฌ์ ์ค 3๋ช ์ ์น์ธ์ ๋ฐ์์ต๋๋ค.
์ด์จ๋ ์ฌ์ฉ์ ์ค์น๋ฅผ ์ค์ ๋ก ์ํํด์ผ ํ๋ ๋๋ถ๋ถ์ ๊ฒฝ์ฐ ๊ธฐ๋ณธ์ ์ผ๋ก ๋น์ฌ์ฉ์ ์ค์น์์ ์ฌ์ฉ์ ์ค์น๋ก pip ์ ํ์ ์ํํฉ๋๋ค. ์ด ๋ณ๊ฒฝ์ ์ํํ๋ ๊ฒ๊ณผ ๊ด๋ จํ์ฌ ๋ ๊ฐ์ง ๋ ํฐ ์ฐ๋ ค ์ฌํญ์ด ์์ต๋๋ค. ๋ฐ๋ก ๊ทธ ๊ฐ์ ์ฌํญ์ ๋ง๋๋ ๋ฆด๋ฆฌ์ค๋ฅผ ๋ง๋ค๊ธฐ ์ ์ ํ์ ํด์ผ ํ๋ค๋ ๊ฒ์ ๋๋ค.
--no-user
์ ์ด๋ป๊ฒ ๋ค๋ฅผ๊น์? (๋ช
์์ ์ตํธ์์์ผ๋ก --no-user
์ ์ด๋ฆ์ --global
๋ก ๋ณ๊ฒฝํ๋ ๋ฐ ๋์ํฉ๋๋ค.)ํ๊ฒฝ ๋ด๋ถ์ ์๋ค๋ฉด --global
์ ์ด๋ฆ์ด ์๋ชป๋์๋ค๊ณ ๋งํ๊ณ ์ถ์ต๋๋ค. flit install
์ ๊ฒฝ์ฐ --user
์ ๋ฐ๋๋ --env
์
๋๋ค. "์์คํ
Python ํ๊ฒฝ"์ ๋์จํ๊ฒ ํฌํจํ๋ ค๊ณ ํ์ง๋ง ๊ทธ๊ฒ๋ ์์ ํ ๋ช
ํํ์ง ์์ ๊ฒ ๊ฐ์ต๋๋ค. ์๋ง๋ --no-user
๊ฐ ์ฌ์ ํ ์ต์ ์ ์ ํ์ผ ๊ฒ์
๋๋ค. --user
์ ๋ฐ๋์
๋๋ค.
ํ์ฌ ๊ธฐ๋ณธ๊ฐ์ ์ฌ์ค์ user = False
์ด๋ฏ๋ก --no-user
(๋๋ ๋๋ฑํ ํ๊ฒฝ ๋ณ์ ๋๋ ๊ตฌ์ฑ ํญ๋ชฉ)์ด ๊ธฐ์กด ๋์์ ๋๋๋ ค์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
๋ด๊ฐ ์๊ฐํด๋ธ ๋ณ๊ฒฝ ์ฌํญ์ด ํผ๋์ค๋ฌ์ธ ์ ์๋ ์ ์ผํ ์๋๋ฆฌ์ค๋ ํ๊ฒฝ(์: conda๊ฐ ํ์ฑํ๋ ์ฌ์ฉ์ ์ฌ์ดํธ)์ ์ค์นํ ์ ์๋ ๊ถํ์ด ์๋ค๊ณ ์๊ฐํ์ง๋ง ์ค์ ๋ก๋ ๊ทธ๋ ์ง ์์ ๊ฒฝ์ฐ์ ๋๋ค. ์ฌ์ฉ์ ์ค์น์ ๋ํ ๋ก๊ทธ ๋ฉ์์ง๊ฐ ์๋๋ผ๋. ๊ฐ์ ํ ์ข์ ๋ฐฉ๋ฒ์ด ์๊ฐ๋์ง ์์์ต๋๋ค.
์ฐ๊ธฐ ๊ฐ๋ฅ์ฑ ๊ฐ์ง๊ฐ ์๋ชป๋ ์๋ ์์ต๋๋ค. ๊ฐ์์ฑ์ ๊ธฐ์กด ๋์์ ์ ๊ณตํฉ๋๋ค(์ผ๋ฐ ์ค์น๋ฅผ ์๋ํ๊ณ ์คํจ). ๊ฑฐ์ง ๋ถ์ ์ ์ ์์ ์ธ ์ค์น๋ฅผ ์ํํ ์ ์์ ๋ ์ฌ์ฉ์ ์ค์น๋ฅผ ์ํํฉ๋๋ค.
๊ธฐ๋ณธ์ ์ผ๋ก ๋น ์ฌ์ฉ์ ์ค์น์์ ์ฌ์ฉ์ ์ค์น๋ก pip ์ ํ์ ์ํํฉ๋๋ค.
์๋ฅผ ๋ค์ด Windows์์๋ ๊ทธ๋ ์ง ์์ต๋๋ค. ์ฌ๊ธฐ์ (๊ธฐ๋ณธ์ ์ผ๋ก) Python ์ค์น๋ ์ฌ์ฉ์๋ณ ์ค์น์ด๊ณ ์ฌ์ดํธ ํจํค์ง ๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์ฐ๊ธฐ ๊ฐ๋ฅํฉ๋๋ค. ์ด๊ฒ์ ๋ด๊ฐ #7002์ ๋ํด ์ผ๋ฐ์ ์ผ๋ก ์ ํธํ๋ ๊ฒ์ ๋๋ค. ์๋ํ๋ฉด ์ด ๋ฌธ์ (#1668)๊ฐ ์ด๋ฆฐ ์ดํ์ ๊ฒฝํ์ pip์ ๊ฐ์ ํจํค์ง๊ฐ ๋ ๋ค ์ฌ์ดํธ ํจํค์ง์ ์ค์น๋ "ํผํฉ" ํ๊ฒฝ์์ ์๋ง์ด ๋๊ธฐ๊ฐ ๋๋ฌด ์ฝ๋ค๋ ๊ฒ ์ ๋๋ค. ๋ฐ ์ฌ์ฉ์ ์ฌ์ดํธ. ๊ทธ๋์ ์ง๊ธ์ ๊ฐ๋ฅํ๋ฉด ์์คํ ์ค์น๋ฅผ ํ๊ณ , ์ฌ์ดํธ ํจํค์ง๋ฅผ ์์ฑํ ์ ์๋ Linux ์์คํ ๊ด๋ฆฌ Python๊ณผ ๊ฐ์ ๊ฒฝ์ฐ์๋ง ์ฌ์ฉ์ ์ค์น๋ฅผ ์ํํ๋ ๊ฒ์ ์ ํธํฉ๋๋ค.
๋ผ๊ณ ํ:
--no-user
์ต์
์ ์๋ฏธ๊ฐ ์๋ ๊ฒ ๊ฐ์ต๋๋ค.pip check
๋ฅผ ํ์ฅํ ์ ์์ต๋๋ค. ์ ์๊ฐ์๋...--no-user ์ต์ ์ ๋ํ ์๋ฏธ๊ฐ ์๋ ๊ฒ ๊ฐ์ต๋๋ค.
๋ถ๋ช
ํ ์ด๊ฒ์ ์ด๋ฏธ ์กด์ฌํ์ง๋ง ์ข
์ข
์ ์ฉํ์ง๋ ์์ ๊ฒ์
๋๋ค. ๊ตฌ์ฑ ํ์ผ์ user=true
๊ฐ ์๋ ๊ฒฝ์ฐ --no-user
๊ฐ ์ด๋ฅผ ์ฌ์ ์ํด์ผ ํฉ๋๋ค.
๋ถ๋ช ํ ์ด๊ฒ์ ์ด๋ฏธ ์กด์ฌํฉ๋๋ค.
์ฃ์กํฉ๋๋ค. ๋ ๋ช ํํ์ด์ผ ํ์ต๋๋ค. ์ ์ด๋ @pradyunsg ๊ฐ ์๋ฏธํ๋ค๊ณ ๊ฐ์ ํ๋ค๋ ์๋ฏธ์์ "๊ธฐ๋ณธ์ ์ผ๋ก ์ฌ์ฉ์ ์ค์น๋ฅผ ๋ช ์์ ์ผ๋ก ์ตํธ์์ํ๋ ๋ฉ์ปค๋์ฆ"์ ๊ฐ๋ ๊ฒ์ ์๋ฏธ๊ฐ ์์ต๋๋ค. ๋ด๊ฐ ๋งํ๋ฏ์ด "๊ธฐ๋ณธ์ ์ผ๋ก ์ฌ์ฉ์ ์ค์น๋ก ์ ํ"๊ณผ ๋์ผ ํ์ง ์์ต๋๋ค .
์ฌ์ค, ๋๋ ๊ทธ๊ฒ์ด ๋ ๋ช ํํ์ง ํ์ ํ์ง ๋ชปํฉ๋๋ค ;-) ์๋ง๋ ๋ด๊ฐ ๋งํ๊ณ ์ถ์ ๊ฒ์ "ํ์ฌ ์ฐ๋ฆฌ๊ฐ ๊ฐ์ง ๊ฒ๋ณด๋ค ๋ ๋ง์ ์ต์ ์ด ํ์ํ์ง ์์ต๋๋ค"...
ํ ... @pfmoore #7002 ์ดํ์ ์ด ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋์๋ค๊ณ ํ๋ ค๋ฉด ๋ฌด์์ด ํ์ํ๊ฐ์?
์ถ์ : ๊ทธ ์ด์ ๋๊ธ์ ๊ธํ๊ฒ ์์ฑํ๋๋ฐ ์ค์๋ก ๊ฒ์๋์์ต๋๋ค. ์ด์์ ๊ด์ฐฎ์ต๋๋ค. ๋๋ ๊ทธ๊ฒ์ด ๊ฒ์๋๊ธฐ ์ ์ ๊ทธ ๋จ๋ฝ์ ์ด์์ ์์ฑํ๊ณ ์์์ต๋๋ค. ํผ๋์ ๋๋ ค ์ฃ์กํฉ๋๋ค.
@pradyunsg ์ด์ ์ ๋์ ์ผ๋ก ํ์ํ ๊ฒฝ์ฐ๊ฐ ์๋๋ฉด --user
๋ฅผ ๊ธฐ๋ณธ๊ฐ์ผ๋ก ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ ์๊ฐ์ด๋ผ๊ณ ์๊ฐํ๋ ๊ฒฝํฅ์ด ํจ์ฌ ์ค์ด๋ค์๋ค๋ ์ ์ ๊ฐ์ํ ๋(์ฌ๋ก #7002 ์ฃผ์) ์ด ๋ฌธ์ ๋ฅผ ๋ค์๊ณผ ๊ฐ์ด ํฌ๊ธฐํ ์ ์๋ค๊ณ ๋งํ๊ณ ์ถ์ต๋๋ค. #7002๊ฐ ์๋ฃ๋์์ผ๋ฏ๋ก ๋ ์ด์ ์ข์ ์๊ฐ์ด ์๋๋๋ค.
2๊ฐ์ ๊ธ๋จธ๋ฆฌ ๊ธฐํธ๋ฅผ #7002๋ฅผ ์์ ํ ๊ฒ์ผ๋ก ๊ณ์ฐํด์ผ ํ ์ ์๋ ๊ฒ์ผ๋ก ์ทจํ๋ฉด ์ ์ ๋ด ์๊ฒฌ์ด ์ด๋ฅผ ๋ค๋ฃน๋๋ค.
์ฌ๊ธฐ์์ ๋ฆด๋ฆฌ์ค ์ ๋ณด๋ฅผ ๋ฐ๋์ต๋๋ค.
https://pip.pypa.io/en/stable/news/#id3
"๊ธฐ๋ณธ ์ฌ์ดํธ ํจํค์ง ๋๋ ํ ๋ฆฌ๊ฐ ์ฐ๊ธฐ ๋ถ๊ฐ๋ฅํ๊ณ ์ฌ์ฉ์ ์ฌ์ดํธ ํจํค์ง๊ฐ ํ์ฑํ๋ ๊ฒฝ์ฐ ์ฌ์ฉ์ ์ค์น(--user๊ฐ ์ ๋ฌ๋ ๊ฒ์ฒ๋ผ)๋ฅผ ์ํํ๋ ๊ฒ์ด ๊ธฐ๋ณธ๊ฐ์
๋๋ค. (#1668)"
๋ด ๋น๋๋ ์ด์ ์คํจํฉ๋๋ค.
ERROR: Can not perform a '--user' install. User site-packages are not visible in this virtualenv.
์ด๊ฒ์ ๋ด pip ๋ช ๋ น์์ --user๋ฅผ ์ ๊ฑฐํ์ฌ ํด๊ฒฐ๋ ๊ฒ ๊ฐ์ต๋๋ค.
์ด๊ฒ์ด ์์๋ ํ๋์ด์์ต๋๊น? ๋ฆด๋ฆฌ์ค ๋ ธํธ๋ ์ด๊ฒ์ ๋ฐ์ํ์ง ์๋ ๊ฒ ๊ฐ์ต๋๋ค.
์ด์ pip 20.0.1์์ ์คํจํ๋ ์คํฌ๋ฆฝํธ์ ๋ํ ๋งํฌ(--user๋ฅผ ์ ๊ฑฐํ๋ฉด ํ๋ ์ค๋ฅ๊ฐ ์์ ๋จ)
https://github.com/lfit/releng-global-jjb/blob/master/shell/python-tools-install.sh
์ฌ์ฉ์ ์ฌ์ดํธ ํจํค์ง๋ฅผ ํด๋น ํ๊ฒฝ์์ ๊ฐ์ ธ์ฌ ์ ์๋ ๊ฒ์ด ๋ง๋ค๋ฉด ์ด๋ ์์๋๋ ๋์์ด์ง๋ง ์ด PR๊ณผ ์ง๊ตํฉ๋๋ค. ์ด ๊ฒ์ฌ๋ ๋ช ๋ ์ ์ ๋์ ๋์์ง๋ง(#567) ์ต๊ทผ๊น์ง(#7155) venv๋ก ์ธํด ์์๋ ๊ฒ ๊ฐ์ต๋๋ค. ์ด์ ๋ํ ๋ฆด๋ฆฌ์ค ๋ ธํธ๊ฐ ์์ต๋๋ค.
venv(PEP 405)๋ก ์์ฑ๋ ๊ฐ์ ํ๊ฒฝ์์ ์์คํ ์ฌ์ดํธ ํจํค์ง๋ฅผ ์ฌ๋ฐ๋ฅด๊ฒ ์ฒ๋ฆฌํฉ๋๋ค.
์ ๋ค, ๋๊ธ ๊ฐ์ฌํฉ๋๋ค. ๋๋ ์ด๊ฒ์ ์์ ๋์ต๋๋ค ...
๋ด ์คํฌ๋ฆฝํธ๊ฐ .local/bin/์ ์ฑ์ฐ๊ณ ์์์ต๋๋ค.
๋ด๊ฐ ๋ฌ๋ ธ์ ๋
python3 -m venv ~/.local
๊ทธ๋ฐ ๋ค์ ์ฐ๋ถํฌ ๋ก๊ทธ์ธ ์
ธ์์(#!/bin/bash -l) .local/bin์ด ๊ฒฝ๋ก์ ์ถ๊ฐ๋ฉ๋๋ค(๊ทธ๋์ python3์ ํธ์ถํ๋ฉด ์ด์ .local/bin/python3 ์คํ ํ์ผ์ด ํธ์ถ๋จ).
python3 -m venv ~/.local์ ์คํํ ํ์๊ฐ ์์์ต๋๋ค.
๋๋ ๋ก๊ทธ์ธ ์
ธ์์ ๋ด ์คํฌ๋ฆฝํธ๋ฅผ ํธ์ถํ๊ณ ์ด๋ฌํ ๋ฌธ์ ์ค ํ๋ ๋๋ ๋ ๋ชจ๋๋ฅผ ์ ๊ฑฐํ๋ฉด ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋ฉ๋๋ค.
#fresh ubuntu docker
root<strong i="13">@7d8107816f64</strong>:/# python3 -m pip install --user --upgrade pip
Successfully installed pip-20.0.1
root<strong i="14">@7d8107816f64</strong>:/# python3 -m pip --version
pip 20.0.1 from /root/.local/lib/python3.6/site-packages/pip (python 3.6)
root<strong i="15">@7d8107816f64</strong>:/# ls root/.local/bin/pip
pip pip3 pip3.6
#Now we populate ~/.local/bin/
root<strong i="16">@7d8107816f64</strong>:/# python3 -m venv ~/.local
root<strong i="17">@7d8107816f64</strong>:/# ls root/.local/bin/
activate activate.fish easy_install-3.6 pip3 python
activate.csh easy_install pip pip3.6 python3
root<strong i="18">@7d8107816f64</strong>:/# ./root/.local/bin/python --version
Python 3.6.9
root<strong i="19">@7d8107816f64</strong>:/# ./root/.local/bin/python -m pip install --user --upgrade pip
ERROR: Can not perform a '--user' install. User site-packages are not visible in this virtualenv.
๋ฐ๋ผ์ ์คํ ๊ฐ๋ฅํ .local/bin/python์ ์คํํ๋ฉด --user๋ฅผ ์ฌ์ฉํ์ฌ pip install์ ํ ์ ์์ต๋๋ค.
์ค, ๋น์ ์ด python3 -m venv ~/.local
ํ๊ณ ์๋ค๋ ๊ฒ์ ๋์ณค์ต๋๋ค. ~/.local
๋ --user
์ค์น(Linux์์)์ ์ ๋์ด์ด๊ธฐ ๋๋ฌธ์ pip์ ๊ฐ์ ๋๊ตฌ๋ฅผ ํผ๋ํ ์ ์์ต๋๋ค. venvs์ --user
๋ ์์คํ
์ ์ฒด๋ฅผ ๋ณ๊ฒฝํ์ง ์๊ณ ํจํค์ง๋ฅผ ์ค์นํ ์ ์๋ ๋ ๊ฐ์ง _๋ค๋ฅธ_ ๋ฐฉ๋ฒ์
๋๋ค. ๋ ์ค ํ๋๋ฅผ ์ฌ์ฉํด์ผ ํฉ๋๋ค. ~/.local
์์ ๊ฐ์ ํ๊ฒฝ์ ๋ง๋ค๋ฉด ๋์ ์ด์ํ ํ์ด๋ธ๋ฆฌ๋๊ฐ ๋ฉ๋๋ค.
์๋ก์ด ๋์์ ์๋ง๋ ๋ง์ ์ฌ๋๋ค์๊ฒ ํธ๋ฆฌํ ๊ฒ ๊ฐ์ง๋ง '์ฌ์ฉ์' ์ค์น๋ ์น ๊ฐ๋ฐ์๋ก์ ์ ์๊ฒ ์ฝ๊ฐ์ ์ฌํ์ ์๊ฒจ์ฃผ์์ต๋๋ค. ์ ๋ ์ข
์ข
ํ๋ก๋์
๋จธ์ ์ ๋ฐฐํฌ๋ ๊ฐ์ ํ๊ฒฝ์ ์ค๋นํด์ผ ํ๊ณ , ๋ด ์ฌ์ฉ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ํจํค์ง๊ฐ ์ค์น๋ ๊ฒฝ์ฐ, ๊ธฐ๋ณธ์ ์ผ๋ก pip
๋ ๋ด๊ฐ ์ค๋นํ๊ณ ์๋ virtualenv์ ์ค์นํ๋ ๊ฒ์ ๊ฑฐ๋ถํ๊ณ ์ฌ์ ํ ์ฑ๊ณต์ผ๋ก ์ข
๋ฃ๋ฉ๋๋ค . ํจํค์ง๋ฅผ ์ค์นํ์ง ์๊ธฐ๋ก ๊ฒฐ์ ํ๋ค๋ ์๋ฆผ์ virtualenv๋ฅผ ์ค๋นํ๋ ๋ฐ ์ฌ์ฉํ๋ ์คํฌ๋ฆฝํธ์ ์ถ๋ ฅ 30~40ํ์ด์ง ์์ ๋ฌปํ ์์ต๋๋ค. ์ต์ข
๊ฒฐ๊ณผ๋ virtualenv๊ฐ ๋ฐฐํฌ๋๋ฉด ๋ด ํ ๋๋ ํ ๋ฆฌ์ ํจํค์ง๋ฅผ ๋ ์ด์ ์ฌ์ฉํ ์ ์์ผ๋ฏ๋ก ํ๋ก๋์
์น ์ฑ์์ ์ผ๋ถ ์์ ํจํค์ง๊ฐ ๋๋ฝ๋์ด ์ฃฝ์ ๊ฒ์
๋๋ค.
์ ์ฌ์ฉ ์ฌ๋ก๊ฐ ์ผ๋ฐ์ ์ธ ์ฌ๋ก๊ฐ ์๋๋ผ๋ ์ ์ ๊ธฐ๊บผ์ด ์ธ์ ํฉ๋๋ค. ๊ทธ๋์ ์๋ง๋ ์ด๊ฒ์ ์ผ๋ฐ์ ์ธ ์ฌ์ฉ์ฑ ๊ด์ ์์ ์ฌ์ ํ ์ข์ ์์ด๋์ด์์ ๊ฒ์ ๋๋ค.
๋น์ทํ ๋ฌธ์ ๋ฅผ ๊ฒช์ ๋ค๋ฅธ ์ฌ๋๋ค์ ์ํด ๋ช ๊ฐ์ง ๋ฐฉ๋ฒ์ด ์์ต๋๋ค.
pip install
๋ช
๋ น์ค์ --force-reinstall
์ถ๊ฐ~/.local/lib/python*
~/.pip/pip.conf
๋ฅผ ํธ์งํ์ฌ global
์น์
์ user = no
$๋ฅผ ์ถ๊ฐํฉ๋๋ค.[global]
user = no
~/.local/lib
๋ฅผ ๋๋ ํ ๋ฆฌ๊ฐ ์๋ ํ์ผ๋ก ๋ณ๊ฒฝํ๋ ๊ฒ๊ณผ ๊ฐ์ด ๋ ๊ณผ๊ฐํ ์์
์ ์ํํ์ญ์์ค.ํญ์ ๊ทธ๋ ๋ฏ์ด, ์ฌ๋ํ๋ ํฌ์ฅ ๊ด๋ฆฌ์ ์ฌ๋ฌ๋ถ, ๋ชจ๋ ์ผ์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค. ๋๊ตฐ๊ฐ์ ๋ฌผ๊ฑด์ ์์์ํค์ง ์๊ณ ๋ฌด์์ด๋ ๋ฐ๊พธ๋ ๊ฒ์ ์ฌ์ค์ ๋ถ๊ฐ๋ฅํ๋ฉฐ ์ด์จ๋ ์์กฐํ๋ค๋ ์ฌ์ค์ ์ค์ ๋ก ํ๋ฅญํฉ๋๋ค. ์๋ํ๋ฉด ๊ทธ๊ฒ์ด ์ฐ๋ฆฌ๋ฅผ ๋ฐ์ ์ํฌ ์ ์๊ธฐ ๋๋ฌธ์ ๋๋ค.
์, ์ฌ์ฉ์ ์ค์น๋ ๋์ผํ ์ฌ์ฉ์ ๊ณ์ ์ผ๋ก ๋ง์ ๋ค๋ฅธ ํญ๋ชฉ์ด ์คํ๋์ง๋ง ์ฌ๋๋ค์ ์ฌ์ ํ โโ๋น๋๊ฐ ์๋ก ๊ฒฉ๋ฆฌ๋๊ธฐ๋ฅผ ๊ธฐ๋ํ๋ ์ง์์ ์ธ ํตํฉ ํ๊ฒฝ์์ ํฐ ๋ฌธ์ ๋ฅผ ์ผ์ผํฌ ์ ์์ต๋๋ค. ์ฐ๋ฆฌ๋ ~/.local
๋ฅผ ์ฝ๊ธฐ ์ ์ฉ์ผ๋ก ๋ง๋ค์ด ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ง๋ง ์์ ์๋ฃจ์
๋ ์๋ํ ๊ฒ์
๋๋ค.
๊ธฐ๋ณธ ์ต์ ์ผ๋ก virtualenv๋ฅผ ๋ง๋ค๋ฉด ๊ฒฉ๋ฆฌ๋ฉ๋๋ค. ์ฌ์ฉ์ ๋๋ ์์คํ ์ฌ์ดํธ ํจํค์ง๋ฅผ ๋ณผ ์ ์์ผ๋ฏ๋ก pip๋ ํด๋น ํ๊ฒฝ์ ์ค์น๋ ํจํค์ง์์๋ง ์๋ํด์ผ ํฉ๋๋ค. ์ด๊ฒ์ ์ ํํ ๋น์ ์ด ์ค๋ช ํ๋ ๋ฌธ์ ์ ์ข ๋ฅ ๋๋ฌธ์ ๋ช ๋ ์ ์ ๊ธฐ๋ณธ๊ฐ์ด ๋์์ต๋๋ค.
--system-site-packages
์ต์
์ ์ฌ์ฉํ์ฌ virtualenvs๋ฅผ ์์ฑํ๋ ๊ฒฝ์ฐ(๋๋ ์ด๊ฒ์ด ๊ธฐ๋ณธ๊ฐ์ธ ๋งค์ฐ ์ค๋๋ ๋ฒ์ ์ virtualenv), ์์คํ
์ ์ฒด์ ๊ฐ์ ์์ ์ค์นํ์ ํจํค์ง์ ์ค๋ฒ๋ ์ด ์ญํ ์ ํฉ๋๋ค. ์๋ฐฐ ๊ท์น์. ์์คํ
ํจํค์ง๋ ํ์ํ์ง๋ง ์ฌ์ฉ์ ํจํค์ง๋ ํ์ํ์ง ์์ผ๋ ค๋ฉด -s
์ต์
๋๋ PYTHONNOUSERSITE
ํ๊ฒฝ ๋ณ์ ๋ฅผ ์ฌ์ฉํ์ฌ Python์ ์คํํ ์ ์์ต๋๋ค.
์ค! ์ ๋ง ์ฃ์กํฉ๋๋ค. ๋น์ ์ด ์์ ํ ์ณ์์ต๋๋ค. ์ฐ๋ฆฌ ์กฐ์ง์ ์ด์ํ ์์คํ ์ฌ์ดํธ ํจํค์ง ์ ์ฑ ์ด ๋ค์ ์ ์ฉ๋ฉ๋๋ค. ๋ช ๊ฐ์ง ์๋ฃจ์ ์ ์ง์ ํด ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค.
๋ฌธ์ ์์ด์. ์์คํ ์ฌ์ดํธ ํจํค์ง๋ ๋ช ๋ ์ numpy์ ๊ฐ์ ์์ ์ ์ํด ์์คํ ํจํค์ง ๊ด๋ฆฌ์์ ์์ฃผ ์์กดํ์ ๋ ๋ ์ผ๋ฐ์ ์ด์์ต๋๋ค. ๋ฐ๋ผ์ ํด๋น ์ ์ฑ ์ ๋ค์ ์ดํด๋ณผ ๊ฐ์น๊ฐ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ค๋๋ ์๋ ์ฌ์ ํ ๊ทธ๊ฒ์ ์ฌ์ฉํด์ผ ํ๋ ํฉ๋ฆฌ์ ์ธ ์ด์ ๊ฐ ์์ต๋๋ค.
https://github.com/pypa/pip/issues/1668#issuecomment -544569965์ ๋ฐ๋ผ ์ข ๋ฃํฉ๋๋ค.
@takluyver ๊ฐ์ฌํฉ๋๋ค! ^>^
@takluyver ์ค๋ซ๋์ ์ ๋ฅผ ๊ดด๋กญํ๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํด์ฃผ์
์ ๊ฐ์ฌํฉ๋๋ค
๊ทธ๋ฌ๋ ๊ถํ์ด ์๋ ์ฌ์ฉ์์ ํจ๊ป ํจํค์ง๋ฅผ ์ค์นํ ๋ pip 20.0.2๊ฐ ํฌํจ๋ Windows 10 python 3.8.2๊ฐ ์ฌ์ ํ ์คํจํ๋ ๊ฒ์ผ๋ก ๋ํ๋ฌ์ต๋๋ค.
ERROR: Exception:
Traceback (most recent call last):
File "c:\program files (x86)\python38-32\lib\site-packages\pip\_internal\cli\base_command.py", line 186, in _main
status = self.run(options, args)
File "c:\program files (x86)\python38-32\lib\site-packages\pip\_internal\commands\install.py", line 253, in run
options.use_user_site = decide_user_install(
File "c:\program files (x86)\python38-32\lib\site-packages\pip\_internal\commands\install.py", line 604, in decide_user_install
if site_packages_writable(root=root_path, isolated=isolated_mode):
File "c:\program files (x86)\python38-32\lib\site-packages\pip\_internal\commands\install.py", line 548, in site_packages_writable
return all(
File "c:\program files (x86)\python38-32\lib\site-packages\pip\_internal\commands\install.py", line 549, in <genexpr>
test_writable_dir(d) for d in set(get_lib_location_guesses(**kwargs))
File "c:\program files (x86)\python38-32\lib\site-packages\pip\_internal\utils\filesystem.py", line 140, in test_writable_dir
return _test_writable_dir_win(path)
File "c:\program files (x86)\python38-32\lib\site-packages\pip\_internal\utils\filesystem.py", line 153, in _test_writable_dir_win
fd = os.open(file, os.O_RDWR | os.O_CREAT | os.O_EXCL)
PermissionError: [Errno 13] Permission denied: 'c:\\program files (x86)\\python38-32\\Lib\\site-packages\\accesstest_deleteme_fishfingers_custard_m59lch'
๋๋ ์ด๊ฒ์ด OSError
์ errno
๊ฐ errno.EACCES
์ด์ง๋ง errno.EPERM
๋ก ์ธํด ๋ฐ์ํ ์ ์๋ค๊ณ ์๊ฐํ์ต๋๋ค.
@catPill ์ ๋๋ก ์ถ์ ํ ์ ์๋๋ก ์ ๋ฌธ์ ๋ฅผ ์ด์ด ์ฃผ์ธ์. ๋ด๊ฐ Windows์์ ๋ญ๊ฐ๋ฅผ ๋์ณค๋ค๋ ๊ฒ์ ์์ ํ ๊ทธ๋ด๋ฏํฉ๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
๋๋ ๋ฐค์
--user
์ต์ ์ด ๊ธฐ๋ณธ๊ฐ์ด ๋๋ ๊ฟ์ ๊พธ์์ต๋๋ค(๋๋ด ์๋). ๋ด ๊ฟ์ด ๊ณง ์ด๋ฃจ์ด์ง ๊ฐ๋ฅ์ฑ์ด ์์ต๋๊น?