์ผ๋ถ ์ฌ์ฉ์๋ ์ด์ pip 9.0.2๊ฐ ์๋ ํจ์์์ import pip
๋ฅผ ํธ์ถํ ๋ ๊ฐ์ ธ์ค๊ธฐ ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค. 9.0.1๋ก ๋ค์ด๊ทธ๋ ์ด๋ํ๋ฉด ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋ฉ๋๋ค.
์ถ์ : https://user-images.githubusercontent.com/2273226/37558391-5e41fc94-2a24-11e8-9fdc-5884445e829a.png
์์ธํ ๋ด์ฉ์ ์ฌ๊ธฐ:
https://github.com/Miserlou/Zappa/issues/1446
์ด๊ฒ๋ ํ์ธํ ์ ์์ต๋๋ค. ๋์ผํ ๋ฌธ์ ๋ฅผ ์ ์ถํ๋ ค๊ณ ํฉ๋๋ค.
์ด๊ฒ์ #5079์ ์์์์ ๋๋ค -- pip ๊ฐ์ ธ์ค๊ธฐ๋ ์ง์๋๋ ์ฌ์ฉ ์ฌ๋ก๊ฐ ์๋๋๋ค.
์ด์.. ๋จ์ผ x.x.PATCH
๋ฒ์ ๋ฒํ์์ ์์ฒญ๋ ๋ณํ๋ฅผ ์ผ์ผํค๊ณ ์์ต๋๊น? "main"์ด๋ผ๊ณ ํ๋ ์ต์์ ๋ฉ์๋์ ๊ฒฝ์ฐ? ์ข ๋ณ๋ก์ธ ํผ์ธ๊ฑฐ ๊ฐ์๋ฐ..
์ด๊ฒ์ ๋ํ Anaconda๋ฅผ ๊นจ๋จ๋ ธ๊ณ @Miserlou ์ ๋์ผํ ์๋ฃจ์ ์ ์๊ฐํด ๋์ต๋๋ค.
https://github.com/ContinuumIO/anaconda-issues/issues/8911
๋ง์ ํ๋ก์ ํธ์์ ์ค๋ฅ๊ฐ ๋ณด๊ณ ๋๊ณ ์์ต๋๋ค.
pip๋ฅผ ์ฌ์ฉํ์ฌ anaconda-navigator๋ฅผ ์ ๋ฐ์ดํธํ๋ ค๊ณ ํ ๋๋ ์ด ์ค๋ฅ๊ฐ ๋ฐ์ํ์ต๋๋ค.
์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ 9.0.3์ ์ป์ ์ ์๋ ๊ธฐํ๊ฐ ์์ต๋๊น? ์ด์์ ์ผ๋ก๋ ์กฐ๋ง๊ฐ?
์ด๊ฒ์ ์ด๋ฏธ ๋ง์ ์ฃผ์ ํ๋ก์ ํธ(Anaconda, SpaCy, Zappa)์ ์ํฅ์ ๋ฏธ์น๊ณ ์์ผ๋ฉฐ GitHub์์๋ง ์ด "ํจ์น" ๋ฒ์ ์ ๋ฐ์ดํธ๋ก ์ธํด ์ค๋จ๋ 850,000๊ฐ ์ด์์ ์ฌ์ฉ์ด ์์ต๋๋ค.
์ต์ํ 9.0.3์์ ์ด ๋๊ท๋ชจ ๋ณ๊ฒฝ์ ๋๋๋ฆฐ ๋ค์ ํฅํ 10.xx ๋๋ ์ต์ 9.xx ๋ฆด๋ฆฌ์ค์์ ์ด ๋์์ ๋ณ๊ฒฝํ๋ ค๋ ์๋๋ฅผ ๋ค์ด์คํธ๋ฆผ์ผ๋ก _announce_ํ ์ ์์ต๋๊น?
์ฐ๋ฆฌ๋ ์ด์ ๋ฒ์ ์ ์ฌ์ฉํ๊ณ ์ถ์ง ์์ง๋ง ๊ทธ๊ฒ์ด ๋ฐ๋ก ์ฐ๋ฆฌ๊ฐ ํ ์ผ์ ๋๋ค. 9.0.2๋ ์ ์ด๋ ํ์ฌ๋ก์๋ CI ํ๊ฒฝ ๋ด์ ์กด์ฌํ์ง ์์ต๋๋ค.
์ผ๋ถ OpenStack ํ๋ก์ ํธ์์๋ ์ด ํํธ์์ ๋ณผ ์ ์์ต๋๋ค.
Pip 10์ ์ฝ ํ ๋ฌ ํ์ ์ถ์๋ ์์ ์
๋๋ค. ๋ด๊ฐ ์ดํดํ๋ ํ ๋ฌธ์ ๋ import pip
๋ฅผ ์ฌ์ฉํ์ฌ pip์ ๋ด๋ถ ๊ธฐ๋ฅ์ ์ก์ธ์คํ๋ ์ฝ๋์ ์์ต๋๋ค. ์ฐ๋ฆฌ๋ ๊ณต์์ ์ผ๋ก ๊ทธ๋ฌํ ์ฌ์ฉ์ ์ง์ํ ์ ์ด ์์ผ๋ฉฐ ํ์ฌ ํ๋์ ์ง์ ๋ถ์กฑ์ ๋ช
์์ ์ผ๋ก ๋ฌธ์ํํ์ต๋๋ค(๋จ, https://pip.pypa.io/en/latest/user_guide์์ ๋ฌธ์์ "์ต์ " ๋ฒ์ ์๋ง ์์) /#using-pip-from-your-program, ์๋ํ๋ฉด ํด๋น ๋ฌธ์ ์น์
์ด ์ถ๊ฐ๋ ์ดํ๋ก ์์ ์ ์ธ ์ ๋ฆด๋ฆฌ์ค๊ฐ ์์๊ธฐ ๋๋ฌธ์
๋๋ค). ๋ํ ์ง๋ 10์ ๋ด๋ถ API ์ฌ์ฉ์ด ์ง์๋์ง ์๋๋ค๋ ์ ์ ๋ช
ํํ ํ๊ธฐ ์ํด ๋ด๋ถ ๊ตฌ์กฐ ๊ฐํธ์ ๋ฐํํ์ต๋๋ค(https://mail.python.org/pipermail/distutils-sig/2017-October/031642.html ์ฐธ์กฐ). pip 10์ ์๋ ํด๋น ๋ณ๊ฒฝ ์ฌํญ์ ๊ฐ๋ฅํ pip 9.0.3 ๋ฆด๋ฆฌ์ค๊ฐ ์ํํ๋ pip์ ๊ด๊ณ์์ด ์ด๋ฌํ ์ฌ์ฉ์ ์ค๋จํฉ๋๋ค. ๋ฐ๋ผ์ ์ด๋ฅผ ๊ฐ์์ค๋ฝ๊ณ ์์์น ๋ชปํ ํ์์ผ๋ก ๋ณด๊ธฐ ์ด๋ ต๋ค.
@dstufft ๊ฐ ๊ธด๊ธ 9.0.3 ๋ฆด๋ฆฌ์ค๋ฅผ ๋ง๋ค๊ณ ์ถ๋ค๋ฉด ์ ๋ ๊ด์ฐฎ์ต๋๋ค. ๊ทธ๋ฌ๋ ๊ทธ๊ฒ์ ๋งค์ฐ ๋จ๊ธฐ์ ์ธ ํํ์ผ ๋ฟ์ด๋ฉฐ ์ฌ๋๋ค์ด ์ด๋ฏธ import pip
์์ ๋ฒ์ด๋์ง ์์๋ค๋ ์ ์ ์ฝ๊ฐ ์ค๋งํ์ต๋๋ค. ์ด ๋ฌธ์ ๋ก ํผํด๋ฅผ ์
์ ์ฌ๋๋ค์ ์ฌ์ ํ โโpip 10์ ์ค๋นํด์ผ ํ๋ฉฐ ๋จ์ํ import pip._internal
๋ก ์ ํํ๋ ๊ฒ์ ์ฐ๋ฆฌ๊ฐ ์ง์ํ๊ฑฐ๋ ๊ถ์ฅํ ์ผ์ด ์๋ ์ ์ดํดํด์ผ ํฉ๋๋ค.
์ผ์ ์์ค์ API ์ง์์ ๋ค์ ๋์ ํ๊ธฐ ์ํ ์ ์์ ํ์คํ ์ต์ ์ด์ง๋ง(์: #5080 ์ฐธ์กฐ) ํ์ฌ ๋จ๊ณ์์๋ ๊ทธ๋ฌํ ๋ณ๊ฒฝ์ด pip 10์ผ๋ก ๋ง๋ค๊ธฐ์๋ ๋๋ฌด ๋ฆ์์ต๋๋ค.
์ด์ ๋ฐฉ์์ ์ฌ์ฉํ๋ ์ฌ๋๋ค์ ์ํด ์ฝ๋์ ์ํด ๊ฒฝ๊ณ ๊ฐ ๋ฐ์ํ์ง ์๊ณ _๋ก ์์ํ๋ "๋ด๋ถ"๋ก ํ์๋์ง ์๊ณ ์ด๊ฒ์ ๋จ์ง ๋ฒ๊ทธ ์์ ๋ฒํ์ด๋ฏ๋ก ์ค์ ๋ก ์ด๊ฒ์ ๊ฐ์์ค๋ฝ๊ณ ์๊ธฐ์น ์์ ํ์์ผ๋ก ๋ณด๋ ๊ฒ์ด ๋งค์ฐ ์ฝ๋ค๊ณ ์๊ฐํฉ๋๋ค. .
์, ์ด๊ฒ์ ์ฌ๋๋ค์ด MAJOR
๋ฒ์ ์
๋ฐ์ดํธ์์ ๊ธฐ๋ํ ์ ์๋ ๋ณ๊ฒฝ ์ ํ์
๋๋ค. ๊ด์ฐฎ์๊ฑฐ์ผ.
๋ถํํ๋, ์ด ์์ฒญ๋ ๋ณํ๋ PATCH
์
๋ฐ์ดํธ๋ก ์ด๋ฃจ์ด์ก์ต๋๋ค. ์ด ์
๋ฐ์ดํธ๋ _๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํ ๊ฒ์ด์ง ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํ ๊ฒ์ด ์๋๋๋ค_. ์ด๊ฒ์ ์๋ฏธ๋ก ์ ๋ฒ์ ๊ด๋ฆฌ์ ์ ๋ฐ๋์
๋๋ค. ๊ทธ ๊ฒฐ๊ณผ Python ์ํ๊ณ ์ ๋ฐ์ ๊ฑธ์ณ ๋ง๋ํ ํผํด๊ฐ ๋ฐ์ํ๊ณ ์์ต๋๋ค.
๋ค๋ฅธ PATCH
์
๋ฐ์ดํธ์์ ์ด ๋ณ๊ฒฝ ์ฌํญ์ ์ต๋ํ ๋นจ๋ฆฌ ๋๋๋ฆฐ ๋ค์ MAJOR
๋ฒ์ ์
๋ฐ์ดํธ์ ํจ๊ป ์ฃผ์ ์ฃผ์ ๋ณ๊ฒฝ ์ฌํญ์ ์ ์ฉํด์ผ ํฉ๋๋ค. ์ด๋ฏธ ๋ชจ๋ ์ฌ๋์ ์ํ ๋ชจ๋ ๊ฒ์ ์ฃ๋ถ๋ฅด๊ฒ ๊นจ๋จ๋ ธ๊ธฐ ๋๋ฌธ์ ์ค์ ์ฃผ์ ๋ณ๊ฒฝ ์ฌํญ์ด ์ค๊ณ ์์์ ๋ ์ ์ธ์ํ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
๋๋ ๋ํ ์ด๊ฒ์ด ์์ ์ ์ธ ๋ฌธ์์ ๋ฌธ์ํ๋์ง _์์_ ๊ฒ์ ๊ณ ๋ คํ๋ฉด ์ด๊ฒ์ด ์ด๋ฏธ ๋ฌธ์ํ๋๊ณ ๋ฐํ๋์๋ค๊ณ ๋งํ๋ ๊ฒ์ ๊ฒฝ์ฐฐ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ์ด์ ์.
๋ชจ๋ ์ฌ๋์๊ฒ ์์ฒญ๋ ๊ณจ์นซ๊ฑฐ๋ฆฌ๋ฅผ ๋์ด์ฃผ๊ณ ์ด ๋ฌธ์ ๋ฅผ ๋๋๋ฆฌ๊ณ ์ค์ ๋ก ์๋ฏธ๋ก ์ ๋ฒ์ ๊ด๋ฆฌ๋ฅผ ์์ํ์ญ์์ค.
@Miserlou ์๊ฒ ์ต๋๋ค. pip 10์ด ์ฃผ์ ๋ฒ์ ์ด๊ธฐ ๋๋ฌธ์ ๋ด๋ถ ์ด๋ฆ ๋ณ๊ฒฝ ๋ณ๊ฒฝ์ ๋ชฉํ๋ก ์ผ์์ต๋๋ค. ์ ๋ ํจ์น ๋ฆด๋ฆฌ์ค์ฉ ๋๋ผ์ด๋ฒ๋ฅผ ์ ๋ชจ๋ฆ ๋๋ค. @dstufft ์์ ์ด์ ๋ํด ํ์ ๋ณด๋๊ณ , ์ด๋ pip 10 ๋ฆด๋ฆฌ์ค ์ด์ ์ธ TLS ์ง์ ๋ง๊ฐ์ผ์ด ์๋ฐํ์ ๋ Mac OS ์ฌ์ฉ์์๊ฒ ์ฌ๊ฐํ ๋ฌธ์ ๋ฅผ ๋ฐฉ์งํ๊ธฐ ์ํ ๊ฒ ๊ฐ์ต๋๋ค. ์ฐ๋ฆฌ๋ ๋ฌธ์ ๊ฐ ๋จ๊ธฐ ํจ์น ๋ฆด๋ฆฌ์ค๋ฅผ ๋ณด์ฆํ ๋งํผ ์ถฉ๋ถํ ์ค์ํ ๊ฒ์ผ๋ก ์์ํ์ต๋๋ค. ํ์คํ ๊ธฐ์กด ์ฌ์ฉ๋ฒ์ ๊นจ๋ ค๋ ์๋๋ ์์์ต๋๋ค.
ํ์ ์กฐ์น 9.0.3์ ๋ํ ๊ฒฐ์ ์ @dstufft ์๊ฒ ๋งก๊ฒจ์ผ ํฉ๋๋ค. 9.0.2์ ๋ค์ด๊ฐ ๋ด์ฉ์ ๋ํ ์ธ๋ถ ์ ๋ณด๊ฐ ์๊ฑฐ๋ ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋ฐฉ๋ฒ์ ์๋ณํ๋ ๊ฒ์ด ๊ฐ๋ฅํ์ง ์ฌ๋ถ๋ ๋ชจ๋ฆ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ผ๋ง๋ ๋ง์ ์ฌ๋๋ค์ด Mac OS ๋ฌธ์ ์ ์ํฅ์ ๋ฐ๋์ง ์ ์ ์๊ธฐ ๋๋ฌธ์ 9.0.2๋ฅผ ์์ ํ ๋์ ํ๋ ๊ฒ์ด ์ ๋ฐ์ ์ธ ์ด์ ์ด ๋ ์ง ํ๋จํ ์ ์์ต๋๋ค. ๋๋ (์ ์ด๋ ์ผ๋ถ ์ฌ๋๋ค์๊ฒ๋) 9.0.1๋ก ๊ณ ์ ํ๋ ๊ฒ์ด ํด๊ฒฐ์ฑ ์ด๋ผ๋ ๊ฒ์ ์ดํดํฉ๋๋ค. ๊ทธ๋์ ๊ทธ๊ฒ์ด ๊ฐ์ฅ ๋์ ์ ํ์ด ๋ ์ ์์ต๋๋ค.
macOS TLS ๋ฌธ์ ๋ macOS<10.13์์ ์์คํ Python์ ์ฌ์ฉํ๋ ๋ชจ๋ ์ฌ๋์๊ฒ ์ํฅ์ ๋ฏธ์นฉ๋๋ค.
@dstufft์๊ฒ ํ์ ์กฐ์น 9.0.3์ ๊ฒฐ์ ์ ๋จ๊ฒจ์ผ ํฉ๋๋ค.
@pfmoore์ ๊ฐ์ ์ ์ฅ์ ๋๋ค.
ํด๊ฒฐ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ ์ ์๋ ๊ฒฝ์ฐ ๊ฐ์ ธ์ค๊ธฐ ์์๋ฅผ ํ์ธํ๊ณ ๊ฐ์ ธ์ค๊ธฐ pip๋ฅผ ๋ค๋ฅธ ํจํค์ง ๊ฐ์ ธ์ค๊ธฐ ์์ ํ ์คํธํ๋ ๊ฒ์ ๋๋ค(ํนํ, pip ๊ฐ์ ธ์ค๊ธฐ _before_ ๊ฐ์ ธ์ค๊ธฐ ์์ฒญ์ด ์ผ๋ถ ๊ฒฝ์ฐ๋ฅผ ํด๊ฒฐํ๋ ๊ฒ์ผ๋ก ๋ณด์ ๋๋ค). (์ด๊ฒ์ ์ฌ์ ํ โโ๊ณต์์ ์ผ๋ก ์ง์๋์ง ์๋ pip์ ๋ด๋ถ ์ฌ์ฉ์ ์๋ฏธํฉ๋๋ค.)
docker python 3.4๊ฐ ์๋ gitlab-ci์ pip 9.0.2์ ๋์ผํ ๋ฌธ์ : KeyError
File "/usr/local/lib/python3.4/site-packages/pip/__init__.py", line 45, in <module>
from pip.vcs import git, mercurial, subversion, bazaar # noqa
File "/usr/local/lib/python3.4/site-packages/pip/vcs/mercurial.py", line 9, in <module>
from pip.download import path_to_url
File "/usr/local/lib/python3.4/site-packages/pip/download.py", line 40, in <module>
from pip._vendor import requests, six
File "/usr/local/lib/python3.4/site-packages/pip/_vendor/requests/__init__.py", line 98, in <module>
from . import packages
File "/usr/local/lib/python3.4/site-packages/pip/_vendor/requests/packages.py", line 12, in <module>
sys.modules['pip._vendor.requests.packages.' + mod] = sys.modules["pip._vendor." + mod]
KeyError: 'pip._vendor.urllib3.contrib'
์ฐธ๊ณ ๋ก 9.0.2๋ ์์๋ ๋น๋์ ํจ๊ป ๋ฆด๋ฆฌ์ค๋์์ต๋๋ค.
Travis-CI ์ฐธ์กฐ: https://travis-ci.org/pypa/pip/builds/354616774?utm_source=github_status&utm_medium=notification
์ค๋ฅ๋ ๊ด๋ จ์ด ์์ ์ ์์ง๋ง "์๋๋ฅธ ๋ฆด๋ฆฌ์ค" ๋์๊ฐ ๋ฉ๋๋ค...
@pf๋ฌด์ด
@dstufft ๊ฐ ๊ธด๊ธ 9.0.3 ๋ฆด๋ฆฌ์ค๋ฅผ ๋ง๋ค๊ณ ์ถ๋ค๋ฉด ์ ๋ ๊ด์ฐฎ์ต๋๋ค. ๊ทธ๋ฌ๋ ๊ทธ๊ฒ์ ๋งค์ฐ ๋จ๊ธฐ์ ์ธ ํํ์ผ ๋ฟ์ด๋ฉฐ ์ฌ๋๋ค์ด ์ด๋ฏธ ์์ ํ์์ ๋ฒ์ด๋์ง ์์๋ค๋ ์ ์ ์ฝ๊ฐ ์ค๋งํฉ๋๋ค. ์ด ๋ฌธ์ ๋ก ํผํด๋ฅผ ์ ์ ์ฌ๋๋ค์ ์ฌ์ ํ โโpip 10์ ์ค๋นํด์ผ ํ๋ฉฐ ๋จ์ํ pip._internal ๊ฐ์ ธ์ค๊ธฐ๋ก ์ ํํ๋ ๊ฒ์ ์ฐ๋ฆฌ๊ฐ ์ง์ํ๊ฑฐ๋ ๊ถ์ฅํ๋ ๊ฒ์ด ์๋๋ผ๋ ์ ์ ์ดํดํด์ผ ํฉ๋๋ค.
์ด๊ฒ์ด ์ด ์ ์ฅ์ ์์ ์ ์ ์ง์ ์ด๋ผ๋ ๊ฒ์ด ๋ฏฟ๊ธฐ์ง ์์ต๋๋ค... ๋น์ ์ ๋ง ๊ทธ๋๋ก "f*ck ์๋ฏธ๋ก ์ ๋ฒ์ ๊ด๋ฆฌ"์ "์ด์จ๋ ์ฌ์ฉ ์ค๋จ ์ ์ฑ ์ด ํ์ํ ์ฌ๋"์ด๋ผ๊ณ ๋งํ์ต๋๋ค.
pip๋ ํญ์ ์๋ชจ์ฑ python api๊ฐ ์๋ ๊ฒ์ผ๋ก ๋ฌธ์ํ๋์์ต๋๋ค. ๊ทธ ์์ ์์๋ "๋ช ๋ ๋์ ๊ทธ๋ ๊ฒ ๋งํ" ์นด๋ฅด๋ง๋ฅผ ๋๋๋ฆฌ๋ ค๊ณ ํ๋ ์ฌ๋๋ค์๊ฒ ์ค๋งํ์ต๋๋ค.
@RonnyPfannschmidt ์ด๊ฒ์ "์๋ ์ ํ์ ์ด๊ณผํ์ฌ ์ด์ ํ ์ ์๋ค๊ณ 100๋ฒ์ด๋ ๋งํ์ต๋๋ค."๋ผ๊ณ ๋งํ ๋ค์ ๋ชจ๋ ์์ง ์ฐจ๋์ ๋ถ์ฏ๋ ์ฐจ๋์ผ๋ก ๊ต์ฒดํ์ฌ ์ฌ๋๋ค์ด ์ ํ ์๋๋ฅผ ๋์ง ๋ชปํ๋๋ก ์๋ ์ ํ์ ์ํํ๋ ๊ฒ๊ณผ ๊ฐ์ต๋๋ค. ๋ ์ด์ ์๋ ์ ํ.
๋น์ ์ ๋ง์ ๋๋ฆฌ๋ ๊ฒ์ด ๋๋ฌด ๋์๋ค๋ ๊ฒ์ ์๋ฒฝํ๊ฒ ๋ณด์ฌ์ฃผ์์ต๋๋ค. "๊ทธ๊ฒ์ด ๊นจ์ง ๊ฒ์ด๋ผ๊ณ ๋ฏฟ์ง ๋ง์ญ์์ค"๋ผ๋ ๋ง์ด์์ต๋๋ค.
๊ทธ๊ฒ์ ๋น์ ์ด ์๋ชปํ๊ธฐ๋ฅผ ์ซ์ดํ๊ธฐ ๋๋ฌธ์ ๋น๋์ ํผ๋จ๋ฆฌ๋ ๊ฒ์ ๋๋ค.
@RonnyPfannschmidt
๊ทธ๊ฒ์ ๋น์ ์ด ์๋ชปํ๊ธฐ๋ฅผ ์ซ์ดํ๊ธฐ ๋๋ฌธ์ ๋น๋์ ํผ๋จ๋ฆฌ๋ ๊ฒ์ ๋๋ค.
๊ทธ๋์ ๋น์ ์ ๋ด๊ฐ pip์ ๋ฌธ์ํ๋์ง ์์ ๊ธฐ๋ฅ์ ์์กดํ๋ ํ์ฌ ํจํค์ง๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ๋ํด ์๋ชป์ด ์๋ค๊ณ ๋งํ๊ณ ์์ต๋๋ค. ์๋ง๋, ์ ๋... ํด๋น ์ค๋ฅ์ ๋ํด ํด๋น ํ์ฌ ํจํค์ง๋ฅผ ์ ๋ณํ๊ณ ๋ฌธ์ ๋ฅผ ์ ์ถํ๊ฑฐ๋ ๋ ๋์ PR์ ์ ์ถํ์ด์ผ ํฉ๋๋ค.
๊ทธ๋ฌ๋ ํ์ค์ ์ง์ํฉ์๋ค. ํ๋ก๋์ ์ ์ฌ์ฉ๋ ๋ง์ ํ๋ก์ ํธ๊ฐ ํ์ฌ ์ค๋จ๋์ด ์์ต๋๋ค. ์ด๊ฒ์ ๋๋์ ์ธ ๋ฌธ์ ๊ฐ ์๋๋ผ ๋๊ตฌ์ ์๋ชป์ธ์ง์ ๋ฌธ์ ๊ฐ ์๋๋๋ค. "์ด ๋ฌธ์ ๋ฅผ ์์ ํ๊ณ ์ ์ ํ ๊ฒฝ๊ณ /์ฌ์ฉ ์ค๋จ์ ์ ๊ณตํ ์ ์์ต๋๊น?"์ ๋ฌธ์ ์ ๋๋ค.
์ฌ์ฉํ๋ ํ์ฌ ํจํค์ง๊ฐ ๋ฌธ์ํ๋์ง ์๊ณ ๋ณด์ฅ๋์ง ์๋ ๋ด๋ถ API์ ์์กดํ๊ธฐ ๋๋ฌธ์ ์ค๋จ๋๋ ๊ฒฝ์ฐ ํด๋น ํจํค์ง์ ๋ํด ๋ฒ๊ทธ๋ฅผ ์ ๊ณ ํด์ผ ํ๋ ๊ฒ ๊ฐ์ต๋๋ค.
pip
์ ์ด๋ค ๋ถ๋ถ์ด ์ 3์ ์๋น๋ฅผ ์ํ ๊ฒ์ธ์ง ์๋์ง ์ฌ์ด์๋ ์ฝ๊ฒ ์ฐพ์ ์ ์๋ ์ ์ด ์์ต๋๋ค. ์ ๋ ๊ฐ๋ฐ์๊ฐ ์ ๋๋ก ํด์๋ ์ ๋๋ ๋ด๋ถ API๋ฅผ ์ ์งํ๋๋ก ๊ฐ์ํ๋ ๊ฒ์ ์ง์งํ์ง ์์ต๋๋ค. ํ์ฌ ํจํค์ง์์ ์ฌ์ฉํฉ๋๋ค. ๋๋ ์ด๊ฒ์ pip
๊ฐ๋ฐ์์ ์๋ชป์ผ๋ก ์ทจ๊ธํ๊ณ ํ๋ ์ฌ์ฉ์๋ฅผ ๊ทธ๋ค์ ๋ฐฉ์์ผ๋ก ๋ณด๋ด๋ ๊ฒ์ ์ง์งํ์ง ์์ต๋๋ค. ๋๊ตฐ๊ฐ์๊ฒ ํ๋ฅผ ๋ด๊ณ ์ถ๋ค๋ฉด ๋ด๋ถ API์ ์์กดํ๋ ํจํค์ง์ ํ๋ฅผ ๋ด๊ณ ์ ์ง ๊ด๋ฆฌ์๊ฐ ์์ ์ ์ฝ๋๋ฅผ ์์ ํ๋๋ก ํ์ธ์.
@anx-ckreuzberger
์ด๊ฒ์ด ์ด ์ ์ฅ์ ์์ ์์ ์ง์ ์ด๋ผ๋ ๊ฒ์ด ๋ฏฟ๊ธฐ์ง ์์ต๋๋ค... ๋น์ ์ ๋ง ๊ทธ๋๋ก "f*ck ์๋ฏธ๋ก ์ ๋ฒ์ ๊ด๋ฆฌ"์ "์ด์จ๋ ์ฌ์ฉ ์ค๋จ ์ ์ฑ ์ด ํ์ํ ์ฌ๋"์ด๋ผ๊ณ ๋งํ์ต๋๋ค.
๋๋ ์ฌ๊ธฐ์ ์ข์ ๊ฐ์ ์ดํดํ์ง๋ง, ์ฐ๋ฆฌ๊ฐ ์ฝ์ํ์ง ์์ ์ผ์ ๋ํด pip ์ ์ง ๊ด๋ฆฌ์๋ฅผ ๋น๋ํ๋ ค๋ ์ฌ๋๋ค์ ์์ง์ ์ ์ ์ง์ฆ์ด ๋๊ณ ์์ต๋๋ค.
๊ทธ๋ฐ ๋น๋์ ํ๊ณ ์ถ์ผ์๋ค๋ฉด
๊ทธ ์ฆ๊ฑฐ๋ฅผ ์ฐพ์ง ๋ชปํ ๊ฒ ๊ฐ์๋ฐ...
๊ทธ๋์ ๋น์ ์ ๋ด๊ฐ pip์ ๋ฌธ์ํ๋์ง ์์ ๊ธฐ๋ฅ์ ์์กดํ๋ ํ์ฌ ํจํค์ง๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ๋ํด ์๋ชป์ด ์๋ค๊ณ ๋งํ๊ณ ์์ต๋๋ค.
์๋์, ํ์ง๋ง ํด๋น ํ๋ก์ ํธ๊ฐ ์๋ pip ์ ์ง ๊ด๋ฆฌ์๋ฅผ ๋น๋ํ๋ ๊ฒ์ ํ์ฉ๋์ง ์์ต๋๋ค. ์ฐ๋ฆฌ๋ ๋น์ ์ ๋์ฐ๋ ค๊ณ ๋ ธ๋ ฅํ๊ณ ์์ง๋ง ๊ทธ ํ๋ก์ ํธ๊ฐ ํ๋ ์ผ์ ๋ํด ์ฑ ์์ ์ง ์ ์์ต๋๋ค. ๊ทธ๋ค๊ณผ ํจ๊ป ๋น์ ์ ๋ถ๋ง์ ํธ์ด๋์ผ์ญ์์ค.
๊ทธ๋ฌ๋ ํ์ค์ ์ง์ํฉ์๋ค. ํ๋ก๋์ ์ ์ฌ์ฉ๋ ๋ง์ ํ๋ก์ ํธ๊ฐ ํ์ฌ ์ค๋จ๋์ด ์์ต๋๋ค. ์ด๊ฒ์ ๋๋์ ์ธ ๋ฌธ์ ๊ฐ ์๋๋ผ ๋๊ตฌ์ ์๋ชป์ธ์ง์ ๋ฌธ์ ๊ฐ ์๋๋๋ค. "์ด ๋ฌธ์ ๋ฅผ ์์ ํ๊ณ ์ ์ ํ ๊ฒฝ๊ณ /์ฌ์ฉ ์ค๋จ์ ์ ๊ณตํ ์ ์์ต๋๊น?"์ ๋ฌธ์ ์ ๋๋ค.
์ฐ๋ฆฌ๋ ๊ฒฝ๊ณ ๋ฅผ ์ ๊ณตํ๋ ค๊ณ ๋
ธ๋ ฅํ์ต๋๋ค. ์ฐ๋ฆฌ๋ ๋ช ๋ฌ ์ ์ ๊ณต์ง๋ฅผ ๋ณด๋ด๊ณ ์ํฉ์ ์ค๋ช
ํ๋ ๋ฌธ์๋ฅผ ์ถ๊ฐํ์ผ๋ฉฐ ๋ด๋ถ API ์ฌ์ฉ์ด ์ง์๋์ง ์๋๋ค๋ ํธ๋์ปค์ ๋ฌธ์ ์ ์ง์์ ์ผ๋ก ๋ต๋ณํ์ต๋๋ค. ๋น์ถ์ฒ์ ์ถ๊ฐํ๋ ๊ฒ์ ๋น์ ์ด ์ ์ํ ๊ฒ์ฒ๋ผ ์ฝ์ง ์์ต๋๋ค. pip ์์ฒด๊ฐ ์ด๋ฌํ ๊ฒฝ๊ณ ๋ฅผ ๋ฟ์ด๋ผ ๊ฒ์ด๊ธฐ ๋๋ฌธ์
๋๋ค(๋๋ pip๊ฐ ๊ฒฝ๊ณ ๋ฅผ ๋๋ ๋ฐฉ๋ฒ์ด ์๊ณ ๋ค๋ฅธ ์ฌ๋๋ค์ ๋ณต์ฌํ ๊ฒ์
๋๋ค. ์ฐ๋ฆฌ๋ ์ด๋ฏธ pip._internal import pip._internal
๋ณ๊ฒฝํด ๋ ๋ฉ์ถ์ง ์์ต๋๋ค. :disappointed:).
์ด "์์ "์ ๊ดํด์๋ ๊ธด๊ธํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด 9.0.2๊ฐ ์ ์ํ๊ฒ ๋ฆด๋ฆฌ์ค๋์์ผ๋ฉฐ ์ฐ๋ฆฌ๋ ์ด ๋ฌธ์ ๋ฅผ ์์ํ์ง ๋ชปํ๋ค๋ ์ ์ ๊ธฐ๊บผ์ด ์ธ์ ํฉ๋๋ค. ์๋ช ์ด 2-3์ฃผ์ธ 9.0.3์ ์ถ์ํ๋ ๊ฒ์ ํฉ๋ฆฌ์ ์ธ ์ผ์ ๋๋ค. ์ ์๊ฐ์๋ ๊ทธ๋ ๊ฒ ์๊ฐํ์ง ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ ๋ ์ฐ๋ฆฌ๊ฐ ๊ทธ๊ฒ์ ๊ณ ๋ คํ ๊ฒ์ด๋ผ๊ณ ๋งํ์ต๋๋ค. ๋๋ 9.0.x ๋ฆด๋ฆฌ์ค์ ๊ด๋ จ๋ ์ฌ๋์ด ์๋๊ธฐ ๋๋ฌธ์ ๊ฐ์ธ์ ์ผ๋ก ๋์ํ ์ ์์ต๋๋ค. ์ ๋ pip 10์ ๋ํด ์์ ์ค์ด๋ฉฐ, ์ด๋ ์ด ๋ชจ๋ ๋ ผ์์ ๋ฌด์๋ฏธํ๊ฒ ๋ง๋ค ๊ฒ์ ๋๋ค. ๋ฐ๋ผ์ ์ด๊ฒ์ด ์ด ๋ฌธ์ ์ ๋ํ ์ ์ ๋ง์ง๋ง ๋ง์ผ ๊ฒ์ ๋๋ค. ํด๋น ๋ฆด๋ฆฌ์ค์ ๊ด๋ จ๋ ์ฌํญ์ ์ง์คํด์ผ ํฉ๋๋ค.
๋ด ๊ฐ์ธ์ ์ธ ์กฐ์ธ:
๋์ปค ์ปจํ
์ด๋ ๋ด์์ pip 9.0.2 ๋ฐ Python 2.7.14์์ ๋์ผํ ๋ฌธ์ ๋ฅผ ๊ฒฝํํ์ต๋๋ค.
๋์ปค ์ปจํ
์ด๋ ์ธ๋ถ์ ๊ฐ๋ฐ ์์คํ
์์ ๋ฌธ์ ๋ฅผ ์ฌํํ ์ ์์ต๋๋ค.
pip ๊ฐ์ ธ์ค๊ธฐ( import.pip
, from.pip
, \'pip
, \"pip
์ ๋ํ grep'd )๋ฅผ ๊ฒ์ํ์ง๋ง ์๋ฌด ๊ฒ๋ ์ฐพ์ ์ ์์ต๋๋ค.
์ฐ๋ฆฌ Plone์ setuptools setup.py ํ์ผ์ ํฌํจ๋ ํจํค์ง์ ๊ตฌ์ฑ์ ์๋์ผ๋ก ํฌํจํ๋ ๋ฉ์ปค๋์ฆ์ ์ฌ์ฉํ๊ณ ์์ต๋๋ค. ์ด๋ ์์ฌ์ค๋ฝ๊ฒ ๋ค๋ฆฌ์ง๋ง ๋ค์ ํ ๋ฒ ์ด๊ฒ์ __import__
๋ฅผ ์ฌ์ฉํ๊ณ pip AFAIcansee์์ ์๋ฌด ๊ฒ๋ ์ฌ์ฉํ์ง ์์ต๋๋ค.
์ด๊ฒ์ ์ญ์ถ์ ์ ๊ด๋ จ ๋ถ๋ถ์ ๋๋ค.
File "/home/plone/.buildout/shared-eggs/zope.configuration-3.7.4-py2.7.egg/zope/configuration/xmlconfig.py", line 359, in endElementNS
self.context.end()
File "/home/plone/.buildout/shared-eggs/zope.configuration-3.7.4-py2.7.egg/zope/configuration/config.py", line 558, in end
self.stack.pop().finish()
File "/home/plone/.buildout/shared-eggs/zope.configuration-3.7.4-py2.7.egg/zope/configuration/config.py", line 706, in finish
actions = self.handler(context, **args)
File "/home/plone/.buildout/shared-eggs/z3c.autoinclude-0.3.7-py2.7.egg/z3c/autoinclude/zcml.py", line 51, in includeDependenciesDirective
info = DependencyFinder(dist).includableInfo(['configure.zcml', 'meta.zcml'])
File "/home/plone/.buildout/shared-eggs/z3c.autoinclude-0.3.7-py2.7.egg/z3c/autoinclude/dependency.py", line 26, in includableInfo
module = resolve(dotted_name)
File "/home/plone/.buildout/shared-eggs/zope.dottedname-4.2-py2.7.egg/zope/dottedname/resolve.py", line 39, in resolve
found = __import__(used)
File "/plone/buildout/lib/python2.7/site-packages/pip/__init__.py", line 45, in <module>
from pip.vcs import git, mercurial, subversion, bazaar # noqa
File "/plone/buildout/lib/python2.7/site-packages/pip/vcs/mercurial.py", line 9, in <module>
from pip.download import path_to_url
File "/plone/buildout/lib/python2.7/site-packages/pip/download.py", line 40, in <module>
from pip._vendor import requests, six
File "/plone/buildout/lib/python2.7/site-packages/pip/_vendor/requests/__init__.py", line 98, in <module>
from . import packages
File "/plone/buildout/lib/python2.7/site-packages/pip/_vendor/requests/packages.py", line 12, in <module>
sys.modules['pip._vendor.requests.packages.' + mod] = sys.modules["pip._vendor." + mod]
zope.configuration.xmlconfig.ZopeXMLConfigurationError: File "/plone/buildout/parts/instance/etc/site.zcml", line 15.2-15.55
ZopeXMLConfigurationError: File "/plone/buildout/parts/instance/etc/package-includes/002-bda.aaf.site-configure.zcml", line 1.0-1.56
ZopeXMLConfigurationError: File "/plone/buildout/src-aaf/bda.aaf.site/src/bda/aaf/site/configure.zcml", line 11.2-11.48
ZopeXMLConfigurationError: File "/plone/buildout/src-aaf/bda.aaf.site/src/bda/aaf/site/configure-dependencies.zcml", line 10.2-10.39
ZopeXMLConfigurationError: File "/plone/buildout/src-addons/plone.app.mosaic/src/plone/app/mosaic/configure.zcml", line 9.2-9.39
ZopeXMLConfigurationError: File "/home/plone/.buildout/shared-eggs/plone.app.tiles-3.0.3-py2.7.egg/plone/app/tiles/configure.zcml", line 18.2-18.41
ZopeXMLConfigurationError: File "/plone/buildout/src/plone.app.z3cform/plone/app/z3cform/configure.zcml", line 10.2-10.41
ZopeXMLConfigurationError: File "/plone/buildout/src/plone.app.widgets/plone/app/widgets/configure.zcml", line 12.2-12.41
ZopeXMLConfigurationError: File "/home/plone/.buildout/shared-eggs/Products.CMFPlone-5.1.0.1-py2.7.egg/Products/CMFPlone/configure.zcml", line 15.2-15.46
ZopeXMLConfigurationError: File "/home/plone/.buildout/shared-eggs/plone.app.contenttypes-1.4.9-py2.7.egg/plone/app/contenttypes/configure.zcml", line 10.2-10.37
KeyError: 'pip._vendor.urllib3.contrib'
๋ด๊ฐ ์ดํดํ๋ ํ pip๋ฅผ ์ฌ์ฉํ์ง ์๊ณ ๊ฐ์ ธ์ค๊ธฐ๋ง ํ๋ฉด ์ด๋ฏธ ์ค๋จ๋ฉ๋๋ค. ์ด๊ฒ์ ํ์ด์ฌ ๋๋ผ์์ ์ข์ ์๋ฏผ ํ๋์ด ์๋๋๋ค. ์ฌ์ฉ์ ์ง์ํ์ง ์๊ฑฐ๋ ๊ณต๊ฐ API๋ฅผ ์ ๊ณตํ์ง ์๋ ๊ฒ์ ๊ฐ์ ธ์ค๊ธฐ๋ฅผ ์ค๋จํ๋ ๊ฒ์ ๋๋ค. ์ด๊ฒ์ ๋ง์ ์๋ ๊ฒ์ฌ ์ฝ๋์ ์ํฅ์ ๋ฏธ์นฉ๋๋ค.
์ด๋ ๊ฒ ์๊ฐํ์ญ์์ค. pip๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์๋๋ผ ๋ช ๋ น์ค ์ ํธ๋ฆฌํฐ์ ๋๋ค. Python์ผ๋ก ์์ฑ๋์๋ค๋ ์ฌ์ค์ ๊ด๋ จ์ด ์์ต๋๋ค. ๊ทธ๊ฒ์ด ๋ฌธ์ ์ ํ์ค์ ๋๋ค.
@pf๋ฌด์ด
๋๋ ์ฌ๊ธฐ์ ์ข์ ๊ฐ์ ์ดํดํ์ง๋ง, ์ฐ๋ฆฌ๊ฐ ์ฝ์ํ์ง ์์ ์ผ์ ๋ํด pip ์ ์ง ๊ด๋ฆฌ์๋ฅผ ๋น๋ํ๋ ค๋ ์ฌ๋๋ค์ ์์ง์ ์ ์ ์ง์ฆ์ด ๋๊ณ ์์ต๋๋ค.
์ด๋ ๊ฒ ์๊ฐํ์ญ์์ค. pip๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์๋๋ผ ๋ช ๋ น์ค ์ ํธ๋ฆฌํฐ์ ๋๋ค. Python์ผ๋ก ์์ฑ๋์๋ค๋ ์ฌ์ค์ ๊ด๋ จ์ด ์์ต๋๋ค. ๊ทธ๊ฒ์ด ๋ฌธ์ ์ ํ์ค์ ๋๋ค.
๊ฒฐ๋ก ์ ๋น์ ์ด ์ฝ์ํ ๊ฒ์ ์ ๋ง๋ก ์ค์ํ์ง ์๋ค๋ ๊ฒ์ ๋๋ค. ์ค์ํ ๊ฒ์ ๋น์ ์ด ํ ์ผ๊ณผ ๊ฒฐ๊ณผ์ ์ธ ์ํฉ์ ๋๋ค. ์๋ง๋ ๋น์ ์ ๊ทธ๊ฒ์ ๋ช ๋ น์ค ์ ํธ๋ฆฌํฐ๋ก ์๊ฐํ์ ๊ฒ์ ๋๋ค. ๊ทธ๋ฌ๋ ๋น์ ์ ๊ทธ๊ฒ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก ์ถ์ํ์ต๋๋ค. ์ด๊ฒ์ด ๋ฌธ์ ์ ํ์ค์ ๋๋ค.
Feature X๊ฐ ํฌํจ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ถ์ํ์ต๋๋ค. ์ฌ๋๋ค์ด Feature X๋ฅผ ์ฌ์ฉํ๊ธฐ ์์ํ์ต๋๋ค. ๋ฌผ๋ก "์ฌ๋ฌ๋ถ, Feature X๋ฅผ ์ฌ์ฉํ์ง ๋ง์ญ์์ค"๋ผ๊ณ ๋ง์ํ์ จ์ต๋๋ค. ๊ทธ๋ฌ๋ ๋น์ ์ ๊ทธ๊ฒ์ Feature X๋ก ๊ณ์ ์ถ์ํ์ต๋๋ค. ์๋ ๋์. ๊ทธ๋์ ์ฌ๋๋ค์ด ๊ณ์ ์ฌ์ฉํ์ต๋๋ค. ํฌ๊ณ ์์ ์์ญ, ์๋ฐฑ, ์์ฒ ๊ฐ์ ํ๋ก์ ํธ์์ ์ง๊ธ ์ฌ์ฉํ๊ณ ์์ต๋๋ค. ๊ฐ์๊ธฐ ์ ์ ํ ๊ฒฝ๊ณ ์์ด ๋ง์ด๋ ์ ๋ฐ์ดํธ์์ ์ ๊ฑฐํฉ๋๋ค.
๋ค์์ ๋ฌด์จ ์ผ์ด ์ผ์ด๋ ๊ฒ ๊ฐ์ต๋๊น?
๋จ๊ธฐ์ ์ผ๋ก ์ฌ๋๋ค์ ์ ๋นํ ์ด์ ๊ฐ ์๋ ํ ์ด์ ๋ฒ์ ์ ๊ณ ์ ํ๊ณ ๊ณ ์ ์ ํด์ ํ์ง ์์ ๊ฒ์ ๋๋ค.
์ฅ๊ธฐ์ ์ผ๋ก... ๊ธ์, ์ผ๋ง๋ ๋ง์ ์ฌ๋๋ค์ด ๋น์ ์ด ๋ง๊ฐ์ง ๋ชจ๋ ๊ฒ์ ์๋ฆฌํ๋ ๊ฒ๋ณด๋ค ๋น์ ์ ๊ต์ฒดํ๋ ๊ฒ์ด ๋ ๋น์ฉ ํจ์จ์ ์ผ ๊ฒ์ด๋ผ๊ณ ๊ฒฐ์ ํ๋์ง์ ๋ฌ๋ ค ์์ต๋๋ค.
@pfmoore ์์์ ์ธ๊ธํ ์ญ์ถ์ ์์ ์์ฌ์ค๋ฌ์ด ์ ์ด ์์ต๋๊น? pip ๋ด๋ถ AFAIK๋ฅผ ์ฌ์ฉํ์ง ์์ต๋๋ค. ๋๋ถ๋ถ์ ์ฌ๋๋ค์ด ๋์ปค ์ปจํ ์ด๋ ๋ด์์ ์ด ๋ฌธ์ ๋ฅผ ๊ฐ๊ณ ์๋ค๋ ๊ฒ์ ํฅ๋ฏธ๋กญ์ต๋๋ค.
@ ๋ชจ๋, ๊นจ์ง ์ฝ๋์ ๋ํด ์ ์ง ๊ด๋ฆฌ์๋ฅผ ๋น๋ํ๋ ๊ฒ์ ๋ฌธ์ ํด๊ฒฐ์ ๋์์ด ๋์ง ์์ต๋๋ค.
์ด๋ ๊ฒ ์๊ฐํ์ญ์์ค. pip๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์๋๋ผ ๋ช ๋ น์ค ์ ํธ๋ฆฌํฐ์ ๋๋ค. Python์ผ๋ก ์์ฑ๋์๋ค๋ ์ฌ์ค์ ๊ด๋ จ์ด ์์ต๋๋ค. ๊ทธ๊ฒ์ด ๋ฌธ์ ์ ํ์ค์ ๋๋ค.
Fact: ์ด๋ค ์ด์ ์์๋ ์ฝ๋๋ฅผ ์๋ ๊ฒ์ฌํ์ฌ ๊ฐ์ ธ์ค๋ฉด ๊ฐ์ ธ์ฌ ์ ์์ต๋๋ค. ๋ชจ๋ ์ค๋จ. ๋๋ ์ด๊ฒ์ด @t ์ ๊ฒฝ์ฐ์ ๋ฐ์ํ๋ค๊ณ ๊ฐ์ ํฉ๋๋ค.
๊ฒฐ๋ก : pip๋ ํจํค์ง๋ฅผ ์ค์นํ๋ ์ ์ญ ๋๋ ํ์ฌ virtualenv/venv Python ๋ค์์คํ์ด์ค์์ ์์ฒด๋ฅผ ๊ฒฉ๋ฆฌํด์ผ ํฉ๋๋ค. ๊ทธ๋ ๊ฒ ํ๋ฉด ์ค์ผ๋์ง ์๊ณ ์ฐ์ฐํ ์์
๋๋ ์ผ์ด ๋ฐ์ํ์ง ์์ต๋๋ค.
๋จผ์ ์๋ชป๋ ์ฝ๋๋ก repo ๊ด๋ฆฌ์๋ฅผ ๋น๋ํ๋ค๋ฉด ์ฃ์กํฉ๋๋ค. ๋ชจ๋ ๋น๋์ ์ข์ ๊ฐ์์ ๋น๋กฏ๋์์ผ๋ฉฐ, IMHO 9.0.2 ๋ฆด๋ฆฌ์ค ๊ฐ semver์ ์ ์์ ๋ฐ๋ผ ํจ์น ๋ฆด๋ฆฌ์ค๋ผ๋ ์ฌ์ค์ ์ง์ ํฉ๋๋ค( @pfmoore ๋ pip๊ฐ ๋ฐ๋์ semver๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ์๋์ ๋ถ๋ช ํ ํ์ต๋๋ค. ๋ค๋ฅธ ๋ ์ ๋ํ ๋ ๋ค๋ฅธ ๋ฌธ์ ์ ๋๋ค).
@MikeHart85
๋จ๊ธฐ์ ์ผ๋ก ์ฌ๋๋ค์ ์ ๋นํ ์ด์ ๊ฐ ์๋ ํ ์ด์ ๋ฒ์ ์ ๊ณ ์ ํ๊ณ ๊ณ ์ ์ ํด์ ํ์ง ์์ ๊ฒ์ ๋๋ค.
์ฅ๊ธฐ์ ์ผ๋ก... ๊ธ์, ์ผ๋ง๋ ๋ง์ ์ฌ๋๋ค์ด ๋น์ ์ด ๋ง๊ฐ์ง ๋ชจ๋ ๊ฒ์ ์๋ฆฌํ๋ ๊ฒ๋ณด๋ค ๋น์ ์ ๊ต์ฒดํ๋ ๊ฒ์ด ๋ ๋น์ฉ ํจ์จ์ ์ผ ๊ฒ์ด๋ผ๊ณ ๊ฒฐ์ ํ๋์ง์ ๋ฌ๋ ค ์์ต๋๋ค.
๊ฝค ๋ง์ด. ๋ด ๋ง์ JavaScript ํจํค์ง ๊ด๋ฆฌ์๋ฅผ ์ดํด๋ณด๋ ๊ฒ์ ๋๋ค: npm, bower, yarn, ๋ค์ ~๋ ~์ฃผ์ ์ถ์๋๋ ๋ชจ๋ ๊ฒ
์๋์, ํ์ง๋ง ํด๋น ํ๋ก์ ํธ๊ฐ ์๋ pip ์ ์ง ๊ด๋ฆฌ์๋ฅผ ๋น๋ํ๋ ๊ฒ์ ํ์ฉ๋์ง ์์ต๋๋ค. ์ฐ๋ฆฌ๋ ๋น์ ์ ๋์ฐ๋ ค๊ณ ๋ ธ๋ ฅํ๊ณ ์์ง๋ง ๊ทธ ํ๋ก์ ํธ๊ฐ ํ๋ ์ผ์ ๋ํด ์ฑ ์์ ์ง ์ ์์ต๋๋ค. ๊ทธ๋ค๊ณผ ํจ๊ป ๋น์ ์ ๋ถ๋ง์ ํธ์ด๋์ผ์ญ์์ค.
๋๋ ์ด ๋ฌธ์ ์ ๋ํ ๋์ (์ฐ๋ฆฌ์?) ๋ถ๋ง ์ฌํญ์ด ์๋ชป ์ ๋ฌ๋ ์ ์์์ ์ดํดํฉ๋๋ค. ์ด๊ฒ์ด ์ 3์ ์ ์ง ๋ณด์์ ์๋ชป์ด๋ผ๋ ๊ฒ์ ๋๊ตฌ์๊ฒ๋ ๋ฉ๋์ํค๋ ๊ฒ์ด ์ ๋ง๋ก ์ด๋ ต๋ค๋ ๊ฒ์ ์ธ์ ํด์ผ ํ์ง๋ง.
์ฐ๋ฆฌ๋ ๊ฒฝ๊ณ ๋ฅผ ์ ๊ณตํ๋ ค๊ณ ๋ ธ๋ ฅํ์ต๋๋ค. ์ฐ๋ฆฌ๋ ๋ช ๋ฌ ์ ์ ๊ณต์ง๋ฅผ ๋ณด๋๊ณ ์ํฉ์ ์ค๋ช ํ๋ ๋ฌธ์๋ฅผ ์ถ๊ฐํ์ต๋๋ค.
์ด๊ฒ์ pip 9.0.2์ฉ์
๋๊น ์๋๋ฉด pip 10์ฉ์
๋๊น? pip 9.0.2์ฉ์ด๋ผ๋ฉด Changelog ์ ๋ฉ๋ชจ๊ฐ ์์ผ๋ฉด ์ข์ ๊ฒ์
๋๋ค. ์ด์จ๋ , pip 10 ๊ฐ๋ฐ์ ๋งค์ฐ โโ์ ๊ทน์ ์ด๊ณ import pip
๋ฅผ ์ฌ์ฉํ์ง ์๋๋ค๋ ๊ณต์ง๋ฅผ ๋ณด๋ด์ฃผ์
์ ๊ฐ์ฌํฉ๋๋ค. ์ข์ต๋๋ค! ๊ณ์ ํด!
๋น์ถ์ฒ์ ์ถ๊ฐํ๋ ๊ฒ์ ๋น์ ์ด ์ ์ํ ๊ฒ์ฒ๋ผ ์ฝ์ง ์์ต๋๋ค. pip ์์ฒด๊ฐ ์ด๋ฌํ ๊ฒฝ๊ณ ๋ฅผ ๋ฟ์ด๋ผ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ๋๋ค(๋๋ pip๊ฐ ๊ฒฝ๊ณ ๋ฅผ ๋๋ ๋ฐฉ๋ฒ์ด ์๊ณ ๋ค๋ฅธ ์ฌ๋๋ค์ ๋ณต์ฌํ ๊ฒ์ ๋๋ค. ์ฐ๋ฆฌ๋ ์ด๋ฏธ import pip._internal, ๊ทธ๋์ ๊ทธ ๋ณ๊ฒฝ์กฐ์ฐจ๋ ์ค๋ง์ ๋ฉ์ถ์ง ์์ ๊ฒ์ ๋๋ค).
๋๋ ์ด๊ฒ์ด ๋๋ฌด ์ด๋ ค์ธ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ์ง ์์ต๋๋ค... ๋น์ ์ ์ด๋ฏธ __init__.py
์ ์ด๊ฒ์ ๊ฐ์ง๊ณ ์์ต๋๋ค:
if __name__ == '__main__':
sys.exit(main())
๊ทธ๋ฅ ํ๋ ๋ ์ถ๊ฐํ๋ฉด ์ด๋จ๊น์?
if __name__ == '__main__':
sys.exit(main())
else:
logger.warning("You are importing PIP as a Python library. This behaviour is deprecated and should no longer be used. We will break the API with version 10.0!!!111eleven Please see https://pip.readthedocs.org/some_link_where_you_explain_this.html")
edit : "์๊ฒฉ"ํ๊ณ ์ถ๋ค๋ฉด ์ฌ๊ธฐ์์ ์์ธ๋ฅผ ๋ฐ์์ํค๊ณ ์ ์ฌํ ๋ช ๋ น๋ฌธ์ ํ์ ๋ชจ๋์ ์ถ๊ฐํ ์๋ ์์ต๋๋ค.
์ฌ๋๋ค์ด ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ๋ ธ๋ ฅํ ๊ฒ์ด๋ผ๋ ์ฌ์ค์ ๋ค๋ฅธ ๊ฒ์ ๋๋ค. ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํดํนํ๊ณ ์ถ๋ค๋ฉด ์ธ์ ๋ ์ง ๋ฆฌ๋ฒ์ค ์์ง๋์ด๋งํ ์ ์์ต๋๋ค. ํญ์ ์ฃผ๋ณ์์ ๋ฐฉ๋ฒ์ ์ฐพ์ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ๋์์ธ ๊ฒฐ์ ์์ ์ฃผ๋ณ์ ๋ชจ๋ ๋ฐฉ๋ฒ์ ๊ณ ๋ คํด์๋ ์ ๋ฉ๋๋ค.
์ฅ๊ธฐ์ ์ผ๋ก... ๊ธ์, ์ผ๋ง๋ ๋ง์ ์ฌ๋๋ค์ด ๋น์ ์ด ๋ง๊ฐ์ง ๋ชจ๋ ๊ฒ์ ์๋ฆฌํ๋ ๊ฒ๋ณด๋ค ๋น์ ์ ๊ต์ฒดํ๋ ๊ฒ์ด ๋ ๋น์ฉ ํจ์จ์ ์ผ ๊ฒ์ด๋ผ๊ณ ๊ฒฐ์ ํ๋์ง์ ๋ฌ๋ ค ์์ต๋๋ค.
์ ๋ ํญ์ ์ด "์ํ"์ด ์ฌ๋ฏธ์์ต๋๋ค. ๊ทธ๊ฒ์ pip์ ๊ฐ์ ๊ฒ์ ํฌ์ ๋๋ ๋ ธ๋ ฅ์ ์๊ณผ ์ค์ ๋ก ๋น์ฉ์ด ์ผ๋ง๋ ๋๋์ง(๊ทธ๋ฆฌ๊ณ ์ค์ ๋ก ์ง๋ถํ ์์ฌ๊ฐ ์๋ ์ฌ๋์ด ์ผ๋ง๋ ๋๋์ง)์ ๋ํ ๊ทผ๋ณธ์ ์ธ ์คํด์ ํจ๊ป ์ต๋๋ค. ๋น์ ์ด ๋ ์ํ ์ ์๋ค๊ณ ๋๋๋ค๋ฉด, ๋ฐ๋์ ๊ทธ๋ ๊ฒ ํ์ญ์์ค. ์ ๋ (๋ค๋ฅธ ์ฌ๋๋ค๋ ๋ง์ฐฌ๊ฐ์ง๋ผ๊ณ ์๊ฐํฉ๋๋ค) ๊ทธ๊ฒ์ ํ์ํฉ๋๋ค. ์ง๋ ๋ช ๋ ๋์ ์ด๋ฌํ ์ผ์ด ๊ฐ๋ฅํ๋๋ก ํ๋ ๊ฒ์ด ๋ถ๋ช ํ ๋ชฉํ ์ค ํ๋์ธ ํ์ค์ ๋ฌธ์ํํ๊ณ ์ค๊ณํ๋ ๋ฐ ์ ์ง ์์ ๋ ธ๋ ฅ์ด ์์์ต๋๋ค.
์ด๋ฌํ ๊ฒ๋ค์ ๋ํ ๊ด์ ์ ์ ์งํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค. ์์ต๋๋ค .. 15 ๋ฏธ๋ง? 20? ์ฌ๋๋ค์ด ์ด๊ฒ์ด ์ด๋ป๊ฒ ๋ฌธ์ ๋ฅผ ์ผ์ผ์ผฐ๋์ง์ ๋ํด ๋ ผํํ๋ ๋์(์ด๋ฌํ ์ธก์ ํญ๋ชฉ์๋ ํญ์ "๋น์ฐ์ ์ผ๊ฐ" ๋ฌธ์ ๊ฐ ์์ง๋ง) pip 9.0.2๋ ์ด๋ฏธ ์ง๋ ์ฃผ์ ๋ ๋ฒ์งธ๋ก ๋ง์ด ์ฌ์ฉ๋ ์ค์น ํ๋ก๊ทธ๋จ์ ๋๋ค(์กด์ฌํ์ง๋ ์์ ๋ ์ง๊น์ง ๊ณ์ฐํ๋ฉด) for) ์ถ์ ์ดํ PyPI์์ 1,700๋ง ํ์ผ์ ๋ค์ด๋ก๋ํ์ต๋๋ค. ๋ง์ง๋ง ๋ ๋ง ๋ณด๋ฉด PyPI ์์ ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉ๋๋ ์ค์น ํ๋ก๊ทธ๋จ์ผ๋ก pip 9.0.1์ ์ถ์ํ๋ ๋ฐฉ๋ฒ์ 80%์ ๋๋ค.
๋ฐ๋ผ์ ์ด๊ฒ์ด ์ผ๋ถ ์ฌ๋๋ค์๊ฒ ๋ฌธ์ ๋ฅผ ์ผ์ผ์ผฐ๋ค๋ ๊ฒ์ ์๊ณ ์์ง๋ง ์ง์๋์ง ์๋ ์ผ์ ํ๊ฑฐ๋ ์๋นํ ๊ทน๋จ์ ์ธ ์ํฉ์์ ์ํํ๋ ์ฌ๋์ ์๋์ ์ผ๋ก ์ ์ต๋๋ค.
์๊ฐ์ ์ฐพ์ ์ ์๋ค๋ฉด 9.0.3์ ์๋ฅด๋ ค๊ณ ํ ์ ์์ต๋๋ค. ์ฃผ๋ก @thet ๊ฐ ๋ฌผ๊ฑด์ ๊ฐ์ ธ์ค๋ ค๊ณ ํ๋ ์๋ ๊ฐ์ ธ์ค๊ธฐ ๋๊ตฌ์ผ ๋ฟ์ด๊ณ ์ค์ ๋ก ์ฌ์ฉํ๋ ค๊ณ ํ์ง ์๋ ๊ฒฝ์ฐ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ์ด๋ค ์์ผ๋ก๋ pip์ ๋ด๋ถ API. ๊ทธ๊ฒ์ด ๋ํ pip์ ๋ด๋ถ API๋ฅผ ์ฌ์ฉํ๋ ์ฌ๋๋ค์ ๋์์ ํด๊ฒฐํ๋ ๊ฒ์ผ๋ก ๋๋๋ฉด ๊ตฌ์ฒด์ ์ผ๋ก ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ์ต์ ์ ๋คํ์ง ์์ ๊ฒ์ด์ง๋ง, ๊ทธ๋ ์ง ์์ ๊ฒฝ์ฐ์๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ๋ ธ๋ ฅํ์ง ์์ ๊ฒ์ ๋๋ค. ๊ทธ๋ค ์ค ํนํ.
์ด ์์ ์์ 9.0.x๋ฅผ ๋ฆด๋ฆฌ์คํ๋ ๋ฐ ๋ง์ ์๊ฐ์ด ๊ฑธ๋ฆฌ๋ฉฐ(๋ฆด๋ฆฌ์ค๋ฅผ ์ํํ๋ ๋ฐ ์ฝ๊ฐ์ ์์ ์ด ํ์ํ ์ ๋๋ก ์ํฉ์ด master
๋ก ๋ถ๊ธฐ๋จ) ๋๋ฒ๊ทธ์ ํ์ํ ์๊ฐ์ ๊ณ์ฐ๋์ง ์์ต๋๋ค. ์ค์ ๋ฌธ์ ๋ฅผ ์์ ํฉ๋๋ค. ์ด๋ฐ ์ผ์ด ๋ฐ์ํ ๊ฐ๋ฅ์ฑ์ ๋์ด๋ ค๋ฉด ๋๋ฒ๊น
๋ฐ ์์ ์ ์ํํ๊ณ ํจ์น(๋๋ ์์ฒด ํฌํฌ์์ 9.0.2 ํ๊ทธ์ ๋ถ๊ธฐ)๋ฅผ ์ ๊ณตํ๋ ๊ฒ์ด ๊ฐ์ฅ ์ข์ ๋ฐฉ๋ฒ์
๋๋ค.
๋จผ์ ์๋ชป๋ ์ฝ๋๋ก repo ๊ด๋ฆฌ์๋ฅผ ๋น๋ํ๋ค๋ฉด ์ฃ์กํฉ๋๋ค. ๋ชจ๋ ๋น๋์ ์ข์ ์์ ๋ง๋ค์ด์ก๋ค
๊ฐ์ฌํฉ๋๋ค. ์ฌ๊ธฐ์ ์ข์ ๊ฐ์ด ํฌ๋ฉฐ ์ดํดํฉ๋๋ค.
๊ทธ๋ฅ ํ๋ ๋ ์ถ๊ฐํ๋ฉด ์ด๋จ๊น์?
์ข์ ์๊ฐ์ ๋๋ค. ์ฐ๋ฆฌ๊ฐ ์ด๊ฒ์ ์ข ๋ ์ผ์ฐ ์๊ฐํด ๋ณด์๋๋ผ๋ฉด ์ข์์ ํ ๋ฐ. ๋ฌผ๋ก , ๋ด๋ถ ๋ค์์คํ์ด์ค๊ฐ pip 10์์ ์ฌ๊ตฌ์ฑ๋๋ฏ๋ก ์ง๊ธ์ ์ง์ง ์๋ฏธ๊ฐ ์์ผ๋ฏ๋ก ๋๋ฌด ๋ฆ์์ต๋๋ค. ๋๋ ํ์คํ ๋ฏธ๋๋ฅผ ์ํด ์ด ํธ๋ฆญ์ ๊ธฐ์ตํ ๊ฒ์ ๋๋ค.
์ด๊ฒ์ pip 9.0.2์ฉ์ ๋๊น ์๋๋ฉด pip 10์ฉ์ ๋๊น?
10.0์ ๊ฒฝ์ฐ. 9.0.2๋ฅผ ๋ฆด๋ฆฌ์คํ๋ ค๋ ์๋ ์๋๋ ์์๊ณ , TLS ๋ณ๊ฒฝ ์ฌํญ์ด ์ ์ฉ๋ ๋ Mac OS ์ฌ์ฉ์๊ฐ PyPI์ ๋ํ ๋ชจ๋ ์ก์ธ์ค ๊ถํ์ ์์ง ์๋๋ก ๊ธด๊ธ ๋ฆด๋ฆฌ์ค๋ก๋ง ์ํํ์ต๋๋ค.
@dstufft ๊ฐ ์ฌ๊ธฐ์์ ํจ์ฌ ๋ ์๋ฒฝํ๊ฒ ์๋ตํ์ผ๋ฏ๋ก ์ด๊ฒ์ด ํ์ฌ๋ก์๋ ๊ฐ๋ฅํ ํ ํด๊ฒฐ๋์๋ค๊ณ ์๊ฐํฉ๋๋ค.
์ ๋ ํญ์ ์ด "์ํ"์ด ์ฌ๋ฏธ์์ต๋๋ค.
์ ํ ์ํ์ ์ด์ง ์์ต๋๋ค. ๊ทธ๋ฐ ์์ผ๋ก ๋ค๋ ธ๋ค๋ฉด ์ฃ์กํฉ๋๋ค.
์ํํธ์จ์ด ์ธ๊ณ์์ ๋๋ฌด๋ ์์ฃผ ์ผ์ด๋๋ ์ผ์ ๋ํ ๊ด์ฐฐ์ ๋๋ค. ์ฌ๋๋ค์ ๋น์ ์ ์ฝ์์ด๋ ์๋์ ๋ฐ๋ผ ์ผํ์ง ์์ต๋๋ค. ์ฌ๋๋ค์ ๋น์ ์ด ์ ๊ณตํ๋ ์ ํ์ผ๋ก ์ผํฉ๋๋ค. ๊ทํ์ ์ ํ์ ๋ง์ ์ฌ๋๋ค์ด ์์กดํ๊ฒ ๋๋ ๊ธฐ๋ฅ์ด ์๋ค๋ฉด ๋ ์ด์ ๋ฐ ์๋์์ ๋นผ๋ผ ์ ์์ต๋๋ค. ๊ทธ๋ ๊ฒ ํ๋ฉด ์ ํ์ด ํ์๋ ๊ฒ์ผ๋ก ๋ณด๊ธฐ ์์ํฉ๋๋ค. ๋น์ ์ด ์ ๊ณตํ๋ ์ ์ผํ ์ค๋ช ์ด "์, ์ฐ๋ฆฌ๋ ์ด์จ๋ ์ด๊ฒ์ ์ฝ์ํ ์ ์ด ์์ต๋๋ค"๋ผ๋ฉด ๊ทธ๋ค์ ๋น์ ์ด ๊ทธ๋ค์ ์ฐ๋ ค๋ฅผ ์ฑ ์์ผ๋ก ์ธ์ ํ์ง ์์ผ๋ ค๋ ๊ฒ์ ๋ณด๊ธฐ ์์ํฉ๋๋ค.
๊ทธ๋ด์๋ก ๋์์ ๋ํ ์๊ตฌ์ ์๊ตฌ๊ฐ ์ปค์ง๋๋ค. ๋ฌผ๋ก ์ฌ๋๋ค์ ๊ทธ ์์ ์ด ์ผ๋ง๋ ํ์ํ์ง ๊ณผ์ํ๊ฐํฉ๋๋ค. ๊ทธ๋ฌ๋ ๊ทธ๊ฒ์ ๊ทธ๋ค์ด ํ๋์ ์์ ์ ์์ํ ๊ฐ๋ฅ์ฑ์ ๋ ๋ง์ด, ๋ ์ ๊ฒ ๋ง๋ค ๋ฟ์ ๋๋ค. ๊ทธ ๊ณต์ ์ผ๋จ ๊ตด๋ฌ๊ฐ๊ณ ๋๋ฉด ๊ทธ ์์ฒด์ ์๋ช ์ ๊ฐ๊ฒ ๋ฉ๋๋ค.
๋์์ด ํญ์ ์ข์ ๊ฒ์ ์๋๋๋ค. ๊ทธ๋ค์ ์ผ์ ์๋ง์ผ๋ก ๋ง๋๋ ๊ฒฝํฅ์ด ์์ต๋๋ค. ๊ฐ์ธ์ ์ผ๋ก ๋จ์ผ ํจํค์ง ๊ด๋ฆฌ์๋ฅผ ์ ํธํฉ๋๋ค. ๋ชจ๋๋ฅผ์ํ. ๊ทธ๋ฌ๋ ์ ๋ Python์ฉ ๋จ์ผ ํจํค์ง ๊ด๋ฆฌ์๋ก ์ ์ฐฉํ ๊ฒ์ ๋๋ค.
์ฌ๋๋ค์ด ์๋ํ ๊ฒ์ด๋ ์๋๋ ๊ฐ์ ๊ธฐ๋ฅ์ ์ค๋จํ๋ค๊ณ ๋ณด๊ณ ํ๋ฉด "์ด ๊ธฐ๋ฅ์ด ๊ณ์ ์ง์๋์ง ์์์ต๋๋ค"๋ผ๋ ์ฐ๋ ค๋ฅผ ๋ฌด์ํ๊ธฐ๋ณด๋ค ์ค๋จํด์ผ ํ๋ ์ด์ ๋๋ ์ ์งํ์ง ๋ชปํ๋ ์ด์ ๋ฅผ ๊ฐ๋ตํ๊ฒ ์ค๋ช ํ๋ ๊ฒ์ ๊ณ ๋ คํ์ญ์์ค.
@dstufft๋ , ์ฐธ์ฌํด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. ์ด ์ค๋ ๋๋ ์ ์ ๋ ๋จ๊ฑฐ์์ง๊ณ ์์ต๋๋ค!
๋จผ์ ๋
ธ๊ณ ์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค! ์ ์ง ๊ด๋ฆฌ๊ฐ ๋์ด ์๊ณ ๊ฐ์ฌํ ์ ์๋ ์์
์ด๋ผ๋ ๊ฒ์ ์๊ณ ์์ผ๋ฉฐ pip
๋งํผ ํฌ๊ณ ์ธ๊ธฐ ์๋ ํ๋ก์ ํธ๋ฅผ ๊ด๋ฆฌํ ๋๋ง ๋ ์
ํ๋ ๊ฒ์ด๋ผ๊ณ ์์ํฉ๋๋ค!
์ด์ ๋น๋ฉดํ ๋ฌธ์ ๋ก: ์ง๊ธ๊น์ง 20๋ช ์ _maintainers_๊ฐ ์ด ๋ฌธ์ ๋ฅผ ๋ณด๊ณ ํ์ง๋ง ์ด๋ฏธ ์์ฒ ๋ช ์ _๋ช ์๊ฒ ์ํฅ์ ๋ฏธ์น๊ณ ์๋ค๋ ๊ฒ์ ์๊ณ ์์ต๋๋ค. ์ํฅ์ ๋ฐ๋ ์ผ๋ถ ํ๋ก์ ํธ๋ ๊ทธ ์์ฒด๋ก ๋ง๋ํ ๊ท๋ชจ์ ๋๋ค. Anaconda, OpenStack, SpaCy, Zappa ๋ฐ ์๋ง ๋ช ์ ์ฌ์ฉ์. Slack ์ฑ๋์ด ์ด์ ๋ํ ํ ๋ก ์ผ๋ก ๋์ณ๋๋ค๋ ๊ฒ์ ์๊ณ ์์ต๋๋ค. (๋ง ๊ทธ๋๋ก ์ด ๊ธ์ ์ฐ๋ฉด์ ์๋ก์ด ์ด์๊ฐ ์๊ฒผ์ต๋๋ค.)
๋ถ๋ช ํ, ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ์์ผ๋ก ํ๊ฒฝ์ ๊ฒ์ฌํ๋ ๊ธฐ๋ฅ์ด ํ์ํ ์ค์ํ Python ํ๋ก์ ํธ๊ฐ ๋ง์ด ์์ต๋๋ค. ์ด๊ฒ์ ํ ์ ์์ด์ผ ํ๋ ์์ ํ ํฉ๋ฆฌ์ ์ธ ์ผ์ ๋๋ค. ๊ฒ๋ค๊ฐ ๋ฌธ์์์๋ ์ด๋ ๊ฒ ํ๋ ๊ฒ์ ๋ํด ๊ฒฝ๊ณ ํ ์ ์ด ์์ผ๋ฉฐ ์ฌ์ ํ ๊ฒฝ๊ณ ํ์ง ์์ต๋๋ค! (์ด ๋ฆฌํฌ์งํ ๋ฆฌ์ README์์ ๋ฌธ์ ๋งํฌ๋ฅผ ํด๋ฆญํ์ธ์!)
์ง๊ธ๊น์ง์ ์ํฉ์ ๋ค์๊ณผ ๊ฐ๋ค๊ณ ์๊ฐํฉ๋๋ค.
import pip
๋ฅผ ํธ์ถํ๋ ๊ฒ๋ง์ผ๋ก๋ ํ๋ก๊ทธ๋จ์ด ์ฆ์ ์ค๋จ๋๋ฉฐ ์ด๋ ๋งค์ฐ ๊ฐ๋ฐ์์๊ฒ ์ ๋์ ์
๋๋ค.pip
๋ฅผ ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ์์ผ๋ก ์ฌ์ฉํ๋ ๊ฒ์ ๋ํด ๊ฒฝ๊ณ ํ์ง ์์ต๋๋ค(๊ทธ๋ฆฌ๊ณ _์ฌ์ ํ_ - ์ด ๋ฆฌํฌ์งํ ๋ฆฌ์ README์ ์๋ ๋ฌธ์ ๋งํฌ๋ฅผ ํด๋ฆญํ์ง ์์).import pip
๊ฐ PATCH
์
๋ฐ์ดํธ์์ ์ด ํผํด๋ฅผ ์ผ์ผํฌ ๊ฒ์ด๋ผ๋ ๋ฐํ๋ ์์์ต๋๋ค. ๊ทธ ๋ฐํ๋ _์์ง ์ถ์๋์ง ์์_ ๋ฒ์ ์ ๋ํ ๊ฒ์
๋๋ค.PATCH
๋ฅผ ์ ๋ง ์ ๋ง ์ํฉ๋๋ค!pip>=10.0.0 ์ธ๊ณ์์ ํ๊ฒฝ์ ๊ฒ์ฌํ๋ ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ์์ ํ์์ฑ์ ๋ค๋ฅธ ํ ๋ก ์ ์ฃผ์ ์ด์ง๋ง ๋น๋ฉดํ ๋ฌธ์ ๋ pip์์ ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ์์ผ๋ก pip๋ฅผ ์ฌ์ฉํด์๋ ์๋๋ค๋ ๋ง์ ๋ค์ด๋ณธ ์ ์ด ์๋ค๋ ๊ฒ์ ๋๋ค. <=9 ์ธ๊ณ, ๊ทธ๋ฆฌ๊ณ ๋๊ท๋ชจ์ ์๊ณ ์๋ ๋ณํ๊ฐ ์์๊ณ ์์ฒ ๋ช ์ ์ฌ๋๋ค์๊ฒ ๋ถ์ ์ ์ธ ์ํฅ์ ๋ฏธ์น๊ธฐ ๋๋ฌธ์ ์ฐ๋ฆฌ๋ ๊ทธ๊ฒ์ด ์ญ์ ๋๊ธฐ๋ฅผ ์ ๋ง๋ก ์ํฉ๋๋ค.
๋ค์ ํ ๋ฒ ๊ฐ์ฌํฉ๋๋ค.
๋ถ์
์ฐ์ , ํ๋ก์ ํธ ๋ด์์ ๊ทธ๋ค์ ๋ ธ๋ ฅ๊ณผ ํต์ฐฐ๋ ฅ์ ๋ํด pip ๊ด๋ฆฌ์์๊ฒ ๊ฐ์ฌ๋๋ฆฝ๋๋ค. ๋๋ ์ด๊ฒ์ด ๋ค๋ฅธ ์ฌ๋๋ค์ด ๋ฌธ์ ๋ฅผ ์ดํดํ๋ ๋ฐ ์ ๋ง๋ก ๋์์ด ๋๋ค๊ณ ์๊ฐํฉ๋๋ค(ํ์ง๋ง ๊ทธ๊ฒ์ ๋ํ ์์ฝ ๋ธ๋ก๊ทธ ๊ธฐ์ฌ๋ฅผ ์์ฑํ ๊ฐ์น๊ฐ ์์ ์ ์์).
@dstufft
์ด๋ฌํ ๊ฒ๋ค์ ๋ํ ๊ด์ ์ ์ ์งํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค. ์์ต๋๋ค .. 15 ๋ฏธ๋ง? 20? ์ฌ๋๋ค์ด ์ด๊ฒ์ด ์ด๋ป๊ฒ ๋ฌธ์ ๋ฅผ ์ผ์ผ์ผฐ๋์ง์ ๋ํด ๋ ผํํ๋ ๋์(์ด๋ฌํ ์ธก์ ํญ๋ชฉ์๋ ํญ์ "๋น์ฐ์ ์ผ๊ฐ" ๋ฌธ์ ๊ฐ ์์ง๋ง) pip 9.0.2๋ ์ด๋ฏธ ์ง๋ ์ฃผ์ ๋ ๋ฒ์งธ๋ก ๋ง์ด ์ฌ์ฉ๋ ์ค์น ํ๋ก๊ทธ๋จ์ ๋๋ค(์กด์ฌํ์ง๋ ์์ ๋ ์ง๊น์ง ๊ณ์ฐํ๋ฉด) for) ์ถ์ ์ดํ PyPI์์ 1,700๋ง ํ์ผ์ ๋ค์ด๋ก๋ํ์ต๋๋ค. ๋ง์ง๋ง ๋ ๋ง ๋ณด๋ฉด PyPI์์ ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉ๋๋ ์ค์น ํ๋ก๊ทธ๋จ์ผ๋ก pip 9.0.1์ ์ถ์ํ๋ ๋ฐฉ๋ฒ์ 80%์ ๋๋ค.
๋๋ ๋ฉํธ๋ฆญ์ด ์ง์์ ํตํฉ/์ ๋ฌ ์์คํ
์ ๋ชจ๋ ์๋ํ๋ pip install pip --upgrade
๋ช
๋ น์ ์ํด ํฌ๊ฒ ํธํฅ๋์ด ์๋ค๊ณ ํ์ ํฉ๋๋ค(์บ์๋ฅผ ์ฌ์ฉํด์ผ ํ๋ฏ๋ก ํญ์ pypi์์ ํจํค์ง๋ฅผ ๋ค์ ์ค์นํ ํ์๊ฐ ์์ต๋๋ค. ๋์์ import pip
๋ ํด์๋ ์ ๋ฉ๋๋ค. ์ด๊ฒ์ด IT ์ธ๊ณ๊ฐ ์๋ํ๋ ๋ฐฉ์์
๋๋ค.
15๋ช ๋ฏธ๋ง์ ์ฌ๋๋ค์ด ์ด์ ๋ํด ๋ถ๋ง์ ์ ๊ธฐํ๋ค๋ ์ฌ์ค์ด ๋ค์ ๋ ๊ฐ์ง๋ฅผ ์๋ ค์ค๋๋ค.
์ด์จ๋ , ์ด ๋ฌธ์ ์ ๋ํด ์ด์ผ๊ธฐํ๊ณ ๋ ผ์ํ๋ ๊ฒ์ ์ฌ๋๋ค์ด ๋ด๋ถ API์ ์ ๋ ์์กดํด์๋ ์ ๋๋ ์ด์ ์ ๋ํ ์ข์ ์๋ฅผ ์ ๊ณตํ๋ฉฐ, ํฌ๋ง์ ์ผ๋ก ์ผ๋ถ ํ์ฌ ํจํค์ง ์ ์ง ๊ด๋ฆฌ์๋ ์ฌ๊ธฐ์์ ๋ ผ์๋ ๋ด์ฉ์ผ๋ก ์ธํด ํ๋ก์ ํธ๋ฅผ ์ ๋ฐ์ดํธํ ๊ฒ์ ๋๋ค.
๋ถ๋ช ํ, ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ์์ผ๋ก ํ๊ฒฝ์ ๊ฒ์ฌํ๋ ๊ธฐ๋ฅ์ด ํ์ํ ์ค์ํ Python ํ๋ก์ ํธ๊ฐ ๋ง์ด ์์ต๋๋ค. ์ด๊ฒ์ ํ ์ ์์ด์ผ ํ๋ ์์ ํ ํฉ๋ฆฌ์ ์ธ ์ผ์ ๋๋ค. ๊ฒ๋ค๊ฐ ๋ฌธ์์์๋ ์ด๋ ๊ฒ ํ๋ ๊ฒ์ ๋ํด ๊ฒฝ๊ณ ํ ์ ์ด ์์ผ๋ฉฐ ์ฌ์ ํ ๊ฒฝ๊ณ ํ์ง ์์ต๋๋ค! (์ด ๋ฆฌํฌ์งํ ๋ฆฌ์ README์์ ๋ฌธ์ ๋งํฌ๋ฅผ ํด๋ฆญํ์ธ์!)
์ ์ด๊ฒ์ ๊ฒฝ๊ณ ํด์ผ ํ๋์ง ๋์๊ฒ๋ ๋ช
ํํ์ง ์์ต๋๋ค. pip
๋ฅผ ๋ช
๋ น์ค ๋๊ตฌ ์ด์ธ์ ๋ค๋ฅธ ์ฉ๋๋ก ์ฌ์ฉํ๋ ๊ฒ์ ์์ ํ ๋ฌธ์ํ๋์ง ์์์ต๋๋ค. ๋ฌธ์๋ฅผ ๊ฒ์ํ๋ฉด pip ๊ฐ์ ธ์ค๊ธฐ์ ๋ํ ์ฐธ์กฐ๊ฐ ์ ํ ํ์๋์ง ์์ต๋๋ค. Chrome์์ ์ฌ์ฉํ๋ ์ผ๋ถ .so
์ ๋ํด ๋งํฌํ๊ณ ABI ํธํ์ฑ์ ๊นจ๋จ๋ ธ๊ธฐ ๋๋ฌธ์ ๋ถํํ๋ ๊ฒ๊ณผ ๊ฐ์ต๋๋ค.
SemVer์ ์ผ๋ฐ์ ์ธ ํด์์ ๋ฌธ์ํ๋์ง ์์ ๋ด๋ถ๊ฐ ์๋๋ผ ์ง์๋๋ ๊ณต์ฉ ์ธํฐํ์ด์ค(์ด ๊ฒฝ์ฐ CLI)์ ์ ์ฉ๋๋ค๋ ๊ฒ์
๋๋ค. ๋ด๋ถ๋ฅผ ์ฌ์ฉํ๋ ์ฌ๋์ ์ด์จ๋ pip
๋ฒ์ ์ ๊ณ ์ ํด์ผ ํฉ๋๋ค. ์๋ํ๋ฉด ๊ทธ๊ฒ๋ค์ ์์์ ์ผ๋ก ๋ณ๊ฒฝ๋ ์ ์๊ธฐ ๋๋ฌธ์
๋๋ค.
์ ๋ง ๋ฐ์ ์ด ์์ต๋๋ค. macOS ์ฌ์ฉ์์ ์๋น์๊ฐ ๊ฐ๊น์ด ์ฅ๋์ PyPI์ ์ก์ธ์คํ ์ ์๋๋ก ํ๋ ์์ ์ฌํญ์ ๋ฐฑํฌํ ํ๋ฉด ์ง์๋์ง ์๋ ์กฐ๊ฑด์์๋ง ์์ฒด์ ์ผ๋ก ํํ๋๋ ๊ฒ์ผ๋ก ๋ณด์ด๋ 9.0.x ์ฝ๋ ๊ธฐ๋ฐ์ ์ ์ฉ๋ ๋ ๋ฒ๊ทธ๊ฐ ์์ต๋๋ค. ์์ผ๋ก ๋์๊ฐ ์ ์ผํ ๊ธธ์ 9.0.x ์๋ฆฌ์ฆ์์ ํด๋น ๋ฒ๊ทธ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ์ถ๊ฐ ์์ ์ ์ํํ๋ ๊ฒ์ ๋๋ค. ๋ด๊ฐ ๋งํ๋ฏ์ด ์๊ฐ์ ๋ผ ์ ์์ผ๋ฉด ํด๋ณด๊ณ ์ถ๊ณ , ๊ทธ๋ฐ ์ผ์ด ์ผ์ด๋ ํ๋ฅ ์ ๋์ด๋ ค๋ฉด ํจ์น๋ฅผ ์ ๊ณตํ์ธ์.
๋ฌธ์์์๋ pip๋ก ์ํํ ์ ์์ง๋ง ์ง์๋์ง ์๋ ์์ ์ ์ ์ฒด ๋ชฉ๋ก์ ์ ๊ณตํ ์ ์๊ธฐ ๋๋ฌธ์ ์ด์ ๋ํด ๊ฒฝ๊ณ ํ์ง ์์ต๋๋ค. ๋์ ์ฐ๋ฆฌ๋ ์ง์๋๋ ๊ฒ์ ๋ฌธ์ํํ๋ ์๋นํ ์ผ๋ฐ์ ์ธ ์ ๊ทผ ๋ฐฉ์์ ์์กดํ๊ณ ๋ฌธ์ํ๋์ง ์์ ๋ชจ๋ ๊ฒ์ ์ง์๋์ง ์๋ ๊ฒ์ผ๋ก ๊ฐ์ ํด์ผ ํฉ๋๋ค(๊ทธ๋ฆฌ๊ณ ๋ฌธ์ํ๋์ง ์์ ๊ฒ์ ์์กดํ๋ ค๋ ๊ฒฝ์ฐ ๋ฌธ์ํ ๋ฐ ์ง์์ ์์ฒญํ๋ ๋ฌธ์ ๋ฅผ ์ฝ๋๋ค. ).
์ฅ๊ธฐ์ ์ผ๋ก ์ฐ๋ฆฌ๋ ์ฐ๋ฆฌ๊ฐ semver์ธ์ง ์๋์ง์ ๋ํ ํผ๋์ ์ ๊ฑฐํ๊ธฐ ์ํด ๋ ์ง ๊ธฐ๋ฐ ๋ฆด๋ฆฌ์ค ๊ณํ์ผ๋ก ์ด๋ํ ๊ฐ๋ฅ์ฑ์ด ์์ต๋๋ค.
๋ด iPhone์์ ๋ณด๋ธ
2018๋ 3์ 20์ผ ์ค์ 11:02์ Rich Jones [email protected] ์ด ๋ค์๊ณผ ๊ฐ์ด ์ผ์ต๋๋ค.
@dstufft๋ , ์ฐธ์ฌํด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. ์ด ์ค๋ ๋๋ ์ ์ ๋ ๋จ๊ฑฐ์์ง๊ณ ์์ต๋๋ค!
๋จผ์ ๋ ธ๊ณ ์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค! ์ ์ง ๊ด๋ฆฌ๊ฐ ๋์ด ์๊ณ ๊ฐ์ฌํ ์ ์๋ ์์ ์ด๋ผ๋ ๊ฒ์ ์๊ณ ์์ผ๋ฉฐ pip๋งํผ ํฌ๊ณ ์ธ๊ธฐ ์๋ ํ๋ก์ ํธ๋ฅผ ๊ด๋ฆฌํ ๋๋ง ๋ฌธ์ ๊ฐ ๋ ์ ํ๋ ๊ฒ์ด๋ผ๊ณ ์์ํฉ๋๋ค!
์ด์ ๋น๋ฉดํ ๋ฌธ์ ์ ๋ํด: ์ง๊ธ๊น์ง 20๋ช ์ ์ ์ง ๊ด๋ฆฌ์๊ฐ ์ด ๋ฌธ์ ๋ฅผ ๋ณด๊ณ ํ์ง๋ง ์ด๋ฏธ ์์ฒ ๋ช ์ ์ฌ๋๋ค์๊ฒ ์ํฅ์ ๋ฏธ์น๊ณ ์๋ค๋ ๊ฒ์ ์๊ณ ์์ต๋๋ค. ์ํฅ์ ๋ฐ๋ ์ผ๋ถ ํ๋ก์ ํธ๋ ๊ทธ ์์ฒด๋ก ๋ง๋ํ ๊ท๋ชจ์ ๋๋ค. Anaconda, OpenStack, SpaCy, Zappa ๋ฐ ์๋ง ๋ช ์ ์ฌ์ฉ์. Slack ์ฑ๋์ด ์ด์ ๋ํ ํ ๋ก ์ผ๋ก ๋์ณ๋๋ค๋ ๊ฒ์ ์๊ณ ์์ต๋๋ค. (๋ง ๊ทธ๋๋ก ์ด ๊ธ์ ์ฐ๋ฉด์ ์๋ก์ด ์ด์๊ฐ ์๊ฒผ์ต๋๋ค.)
๋ถ๋ช ํ, ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ์์ผ๋ก ํ๊ฒฝ์ ๊ฒ์ฌํ๋ ๊ธฐ๋ฅ์ด ํ์ํ ์ค์ํ Python ํ๋ก์ ํธ๊ฐ ๋ง์ด ์์ต๋๋ค. ์ด๊ฒ์ ํ ์ ์์ด์ผ ํ๋ ์์ ํ ํฉ๋ฆฌ์ ์ธ ์ผ์ ๋๋ค. ๊ฒ๋ค๊ฐ ๋ฌธ์์์๋ ์ด๋ ๊ฒ ํ๋ ๊ฒ์ ๋ํด ๊ฒฝ๊ณ ํ ์ ์ด ์์ผ๋ฉฐ ์ฌ์ ํ ๊ฒฝ๊ณ ํ์ง ์์ต๋๋ค!
์ง๊ธ๊น์ง์ ์ํฉ์ ๋ค์๊ณผ ๊ฐ๋ค๊ณ ์๊ฐํฉ๋๋ค.
๋ฒ์ ๋ฌธ์์ด์ ํ์์ด ์ฃผ์ด์ง๋ฉด ์ฐ๋ฆฌ ๋ชจ๋๋ pip ์ ์ง ๊ด๋ฆฌ์๊ฐ ์๋ฏธ๋ก ์ ๋ฒ์ ๊ด๋ฆฌ๋ฅผ ๋ฐ๋ฅด๊ณ ์๋ค๊ณ ๋ฏฟ์์ต๋๋ค.
pip ์ ์ง ๊ด๋ฆฌ์๋ ๋๋์ ์ธ ๋ณ๊ฒฝ์ ๋์ ํ "ํจ์น"๋ฅผ ์ถ์ํ์ต๋๋ค.
์ด ๋ณ๊ฒฝ ์ฌํญ์ ์๊ณ ๋์ง ์์๊ณ ๋ฌธ์ํ๋์ง ์์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ ์๊ฐ์๋ ์์์น ๋ชปํ ์๋ํ์ง ์์ ๊ฒ์ผ๋ก ๊ฐ์ ํฉ๋๋ค.
์ด์ import pip๋ฅผ ํธ์ถํ๋ ๊ฒ๋ง์ผ๋ก๋ ๋งค์ฐ ๊ฐ๋ฐ์์๊ฒ ์ ๋์ ์ธ ํ๋ก๊ทธ๋จ์ด ์ฆ์ ์ค๋จ๋ฉ๋๋ค.
์ด๊ฒ์ ํ์ด์ฌ ์ํ๊ณ ์ ๋ฐ์ ๊ฑธ์ณ ํฐ ๊ณจ์นซ๊ฑฐ๋ฆฌ๋ฅผ ์ผ์ผํค๊ณ ์์ต๋๋ค.
๋ฌธ์๋ ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ์์ผ๋ก pip๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ๋ํด ๊ฒฝ๊ณ ํ์ง ์์ต๋๋ค.
ํจ์น ์ ๋ฐ์ดํธ์์ pip ๊ฐ์ ธ์ค๊ธฐ๊ฐ ์ด ์์์ ์ผ์ผํฌ ๊ฒ์ด๋ผ๋ ๋ฐํ๋ ์์์ต๋๋ค. ํด๋น ๋ฐํ๋ ์์ง ์ถ์๋์ง ์์ ๋ฒ์ ์ ๋ํ ๊ฒ์ ๋๋ค.
์ด ๋ณ๊ฒฝ ์ฌํญ์ ๋ณ๊ฒฝ ๋ก๊ทธ์๋ ์ธ๊ธ๋์ง ์์์ต๋๋ค.
์ฐ๋ฆฌ๋ pip๋ pip ๊ฐ๋ฐ์๋ฅผ ๊ต์ฒดํ๊ณ ์ถ์ง ์์ต๋๋ค! ์ฐ๋ฆฌ๋ ๋๋ฅผ ์ฌ๋ํด!
..ํ์ง๋ง ์ฐ๋ฆฌ๋ ์ด๋ฌํ ์ ํ์ ์ผ์ด ๋ค์๋ ๋ฐ์ํ์ง ์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค!
..๊ทธ๋์ ์ฐ๋ฆฌ๋ semver๊ฐ ํ๋ก์ฐ๋๊ธฐ๋ฅผ ์ํฉ๋๋ค!
์ฐ๋ฆฌ๋ ์ด ์ฃผ์ ๋ณ๊ฒฝ ์ฌํญ์ ์ทจ์ํ๋ ๋ ๋ค๋ฅธ PATCH๋ฅผ ์ ๋ง ์ ๋ง ์ํฉ๋๋ค!
pip>=10.0.0 ์ธ๊ณ์์ ํ๊ฒฝ์ ๊ฒ์ฌํ๋ ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ์์ ํ์์ฑ์ ๋ค๋ฅธ ํ ๋ก ์ ์ฃผ์ ์ด์ง๋ง ๋น๋ฉดํ ๋ฌธ์ ๋ pip์์ ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ์์ผ๋ก pip๋ฅผ ์ฌ์ฉํด์๋ ์๋๋ค๋ ๋ง์ ๋ค์ด๋ณธ ์ ์ด ์๋ค๋ ๊ฒ์ ๋๋ค. <=9 ์ธ๊ณ, ๊ทธ๋ฆฌ๊ณ ๋๊ท๋ชจ์ ์๊ณ ์๋ ๋ณํ๊ฐ ์์๊ณ ์์ฒ ๋ช ์ ์ฌ๋๋ค์๊ฒ ๋ถ์ ์ ์ธ ์ํฅ์ ๋ฏธ์น๊ธฐ ๋๋ฌธ์ ์ฐ๋ฆฌ๋ ๊ทธ๊ฒ์ด ์ญ์ ๋๊ธฐ๋ฅผ ์ ๋ง๋ก ์ํฉ๋๋ค.๋ค์ ํ ๋ฒ ๊ฐ์ฌํฉ๋๋ค.
๋ถ์โ
๋น์ ์ด ์ธ๊ธ๋์๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ ๋ฐ๋ ๊ฒ์ ๋๋ค.
์ด ์ด๋ฉ์ผ์ ์ง์ ๋ต์ฅํ๊ฑฐ๋ GitHub์์ ๋ณด๊ฑฐ๋ ์ค๋ ๋๋ฅผ ์์๊ฑฐํ์ธ์.
@Miserlou
๋ฒ์ ๋ฌธ์์ด์ ํ์์ด ์ฃผ์ด์ง๋ฉด ์ฐ๋ฆฌ ๋ชจ๋๋ pip ์ ์ง ๊ด๋ฆฌ์๊ฐ ์๋ฏธ๋ก ์ ๋ฒ์ ๊ด๋ฆฌ๋ฅผ ๋ฐ๋ฅด๊ณ ์๋ค๊ณ ๋ฏฟ์์ต๋๋ค.
semver์ ๊ฐ๋ ฅํ๊ฒ ๋ฐ๋ํ๋ ์ฌ๋์ผ๋ก์ ์ด ํผ๋์ ์์ ๊ธฐ ์ํด ๋ด ๋ฒ์ ๋ฌธ์์ด์ด ์ด๋ค ํ์์ด์ด์ผ ํ๋์ง ์๋ ค์ฃผ์ค ์ ์์ต๋๊น? "์ 3๊ฐ"๊ฐ ๋์๊ฒ "์๊ฒฉํ semver๋ฅผ ๋ฐ๋ฅธ๋ค"๋ ์๋ฏธ๋ ์๋๋ฏ๋ก ์ด ๊ฐ์ ์ ๋๋์ต๋๋ค.
์ด ์๊ฒฌ ์ ๋ํ ์๋ต์ผ๋ก: pip๊ฐ semver๋ฅผ ์ค์ํ๋์ง ์ฌ๋ถ ๋๋ ์ค์๋ฅผ ์ฝ์ํ๋์ง ์ฌ๋ถ์ ๊ด๊ณ์์ด major.minor.micro
๋ฒ์ ๊ด๋ฆฌ ์ฒด๊ณ์ ์ฌ์ฉ์ ์ฌ์ ํ โโ๋ง์ดํฌ๋ก ๋ฆด๋ฆฌ์ค์ ๋ํ ์ผ์ข
์ ์ ํ์ ๋ํ ์์์ ์ฝ์์ ์ ๋ฌํฉ๋๋ค. ~= 9.0.1
์ ๊ฐ์ ํธํ ๊ฐ๋ฅํ ๋ฆด๋ฆฌ์ค ํ์ด ์ด์ ๋ฒ์ ๊ณผ์ ์๊ธฐ์น ์์ ์ค๋จ์ผ๋ก๋ถํฐ ์ฌ์ฉ์๋ฅผ ๋ณดํธํ๊ธฐ์ ์ถฉ๋ถํ์ง ์์ ๊ฒฝ์ฐ ๋จ์ ์ ์ผํ ์์ ํ ๋์์ ์ผ๋ฐ ๋ฒ์ ์ผ์น ์
๋๋ค. ๋ฒ์ ์ผ์น ์ด์์ ์ง์ํ ์๋๊ฐ ์๋ค๋ฉด pip๋ ๋จ์กฐ ์ฆ๊ฐํ๋ ๊ตฌ์ฑ ์์๊ฐ ํ๋๋ง ์๋ Chrome ์คํ์ผ ๋ฒ์ ์ฒด๊ณ๋ก ์ ํํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
ํธ์ง: @dstufft๋ ์ด๋ฏธ ๋ ์ง ๊ธฐ๋ฐ ๋ฒ์ ์ ์ฑํํ์ฌ ์ด ๋ฐฉํฅ์ผ๋ก ์ด๋ํ ๊ฒ์ ์ ์ํ์ต๋๋ค. ์ด๋ฒ ์ฌ๊ฑด์ผ๋ก ์ธํ ์ํ๊น์ด ๋ถ์์ ํผํด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
์, ์์ ๋ด์ฌ ๊ธฐ๋ฐ ์ํํธ์จ์ด ํ๋ก์ ํธ์ ์ฌ์ฉ์๋ก์ ์ฐ๋ฆฌ๋ ์ฌ์ฉ์/์ ์ง ๊ด๋ฆฌ์ ๊ด๊ณ์ ํน์ฑ์ ๋ํ ๊ฐ์ฌ์ ๊ธฐ๋ ์ฌ์ด์ ๊ท ํ์ ๋ง์ถฐ์ผ ํฉ๋๋ค. ๋ํ ์ด ๋ฆด๋ฆฌ์ค๋ import pip
๊ฐ ๊ฐ์๊ธฐ ์คํจํ๊ธฐ ์์ํ๋๋ก ์๋๋ ๊ฒ์ด ์๋์ด ๋ถ๋ช
ํฉ๋๋ค. ํ์ง๋ง ํํธ์ผ๋ก๋ ๋ง์ดํฌ๋ก ๋ฆด๋ฆฌ์ฆ์์ ์ด๋ฐ ํดํ์ด ์ผ์ด๋๋ ๊ฒ์ ๋ํด ์ฌ๋๋ค์ด ๋ต๋ตํดํ๋ ๊ฒ์ด ๋น์ฐํ๋ค๊ณ ์๊ฐํ๊ณ , ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ 9.0.3 ๋ฒ์ ์ ๋ฆด๋ฆฌ์ฆํ๋ ๊ฒ์ด ํฉ๋ฆฌ์ ์ธ ํด๊ฒฐ์ฑ
์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
์ ์ณ๋๊ณ ๋ค์ ๋จ๊ณ์ ๋ฐ๋ผ virtualenv(2 ๋๋ 3, ์ค์ํ์ง ์์)์์ ์ด๊ฒ์ ์ฌํํ ์ ์์ต๋๋ค.
virtualenv -p python3 /tmp/pip
/tmp/pip/bin/pip install -e path/to/clone/of/pip/9.0.2
/tmp/pip/bin/pip install requests
/tmp/pip/bin/python
๊ทธ๋ฐ ๋ค์ Python ์ ธ ๋ด์์ ๋ค์์ ์ํํฉ๋๋ค.
>>> import requests
>>> import pip
์์ฒญ์ ์์ง ๊ฐ์ ธ์ค์ง ์์ ๊ฒฝ์ฐ import pip
๊ฐ ์ฑ๊ณตํฉ๋๋ค.
์ด์ ๋ฒ์ ๊ณผ์ ํธํ์ฑ์์ ์๊ธฐ์น ์์ ์ค๋จ
import pip
๊ฐ ์ฐ๋ฆฌ๊ฐ ํ๋ ์ด์ ๋ฒ์ ๊ณผ์ ํธํ์ฑ ์ฝ์์ ํด๋นํ๋ ์์ ์ ์ธ API๋ก ๋ฌธ์ํ๋ ๊ณณ์ ์๋ ค์ฃผ์ญ์์ค. ๋๋ ์ฐ๋ฆฌ๊ฐ ๊ทธ ์ฌ์ฉ์ ๋จํธํ๊ฒ ์ง์ํ์ง ์๊ธฐ ๋๋ฌธ์ ๊ทธ๋ฌํ ๋ฌธ์๋ฅผ ์ ๊ฑฐํ๋์ง ํ์ธํ๊ณ ์ถ์ต๋๋ค.
์ง์๋์ง ์๊ฑฐ๋ ํ
์คํธ๋์ง ์์ ์ฌ์ฉ์ ํฌํจํ์ฌ ์ ๋ ์๋ฌด๊ฒ๋ ์ค๋จํ ์ ์๋ค๋ ์๊ฒฌ์ด ์๋๋ผ๋ฉด. ์ด ๊ฒฝ์ฐ ==
๋ฅผ ๊ณ ์ ํ๊ณ ์ถ์ ๊ฒ์
๋๋ค. ์๋ํ๋ฉด ๊ทธ ์์ ์์ ๋ฌด์์ ์ฌ์ฉํ๊ณ ์๋์ง ์์ ํ ์ ์ ์๊ณ ๋ชจ๋ ๋ณ๊ฒฝ ์ฌํญ์ ์ ์ฌ์ ์ผ๋ก ๋๊ตฐ๊ฐ๋ฅผ ์ํ ์ฃผ์ ๋ณ๊ฒฝ ์ฌํญ์ด ๋๊ธฐ ๋๋ฌธ์
๋๋ค(ํ์ xkcd ).
pip
๋ Python์ ํจํค์ง ๊ด๋ฆฌ์์
๋๋ค. ํ์ด์ฌ์ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์
๋๋ค. ์ฌ๋๋ค์ ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ์์ผ๋ก ํ๊ฒฝ์ ๊ฒ์ฌํด์ผ ํฉ๋๋ค. 1+1=2.
์ฌ๋๋ค์ด ์ด๊ฒ์ด ์ฌ๋ฐ๋ฅธ ๋ฐฉ๋ฒ์ด๋ผ๊ณ ๊ฐ์ ํ๋ ๊ฒ์ ์์ ํ ํฉ๋ฆฌ์ ์ด์์ต๋๋ค. ๋ฌธ์์๋ ์ด ์์ ์ _ํ์ง _ ํ์ง ์๋๋ค๋ ๋ด์ฉ์ด - ๊ทธ๋ฆฌ๊ณ _ ์ฌ์ ํ _ ์์ต๋๋ค. ๋์ผํ ๊ฒฐ๋ก ์ ๋๋ฌํ 700,000๊ฐ ์ด์์ ์์ฉ ํ๋ก๊ทธ๋จ์ด ์์์ ์๊ธฐ์์ผ ๋๋ฆฝ๋๋ค! ๋ํ - ๋ค๋ฅธ ๋ฐฉ๋ฒ์ ์์ต๋๋ค!
ReadTheDocs์ ๋ฌธ์ํ๋์ง ์์ ๊ฒ์ด ์๋ค๊ณ ํด์ ๊ทธ๊ฒ์ด ๊ธ์ง๋ ๊ฒ์ ์๋๋๋ค. ์ฐ๋ฆฌ ๋ชจ๋๋ ๋จ์ํ ์ด๋ฐ ๋ฐฉ์์ผ๋ก ์ฝ๋๋ฅผ ์ ๊ณตํ๋ ํ๋ก์ ํธ๋ฅผ ๋งค์ผ ์ ํ๊ณ ์ฌ์ฉํฉ๋๋ค.
์ด์จ๋ pip
์กฐ์ฐจ๋ ๋ช
๋ น์ค ์ธํฐํ์ด์ค๋ฅผ _๊ฐ์ง๊ณ _ ์๋ค๋ ์ฌ์ค์ ์ด๋ฏธ Python ํด๋ผ์ด์ธํธ๊ฐ ์๊ธฐ ๋๋ฌธ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก ์ฌ์ฉํ ์ ์๋ค๋ ์ข์ ํ์์ธ ๊ฒ ๊ฐ์ต๋๋ค!
๊ฒ๋ค๊ฐ, ์ฐ๋ฆฌ๋ ๊ด๋ก์ ๊ฐ์ด _
๋ก ๋ค์์คํ์ด์ค๊ฐ ์ง์ ๋ ๋น๊ณต๊ฐ API์ ๋ํด ์ด์ผ๊ธฐํ๊ณ ์์ง ์์ผ๋ฉฐ, ์ฌ์ง์ด ํน์ ๊ณต๊ฐ ๋ฉ์๋์ ๋ํด์๋ ์ด์ผ๊ธฐํ๋ ๊ฒ์ด ์๋๋ผ ์ด ์น๋ช
์ ์ธ ์คํจ๋ฅผ ์ผ์ผํค๋ _import๋ฅผ ํธ์ถํ๋ ๊ฒ_์ ๋ํด์๋ง ์ด์ผ๊ธฐํ๊ณ ์์ต๋๋ค.
๋ฌธ์์ ์ด๋ ๊ฒ ํ์ง ๋ง๋ผ๋ ๋ด์ฉ์ ์์๊ณ ์ง๊ธ๋ ์์ต๋๋ค.
https://pip.pypa.io/en/latest/user_guide/#using -pip-from-your-program
_์ด ๋ฐ๋ก ์ ์ฅ์_์ "๋ฌธ์" ๋งํฌ๋ฅผ ํด๋ฆญํ๋ฉด ํด๋น ํ์ด์ง๋ก ์ด๋ํ ์ ์์ต๋๋ค. ์๋ฌด๋ ์ต์ ์ ์ฐธ์กฐํ์ง ์์ต๋๋ค. ๋ฌธ์์ ๋ํ ์์ฒด ๋งํฌ๋ ์ต์ ๋งํฌ๋ก ์ฐ๊ฒฐ๋์ง ์์ต๋๋ค. ํด๋น ํ์ด์ง๋ก ์ด๋ํ ์ ์๋ ๋ฐฉ๋ฒ์ด ์์ต๋๋ค. ํด๋น ์น์ ์ ํฌํจํ์ง ์๋ ๋ชจ๋ ๊ฒ์ด ์์ ์ ์ผ๋ก ์ด๋ํฉ๋๋ค.
@Miserlou ๋๋ ๊ทธ ๋ฉ๋ชจ๊ฐ ํ์ด์ฌ์์ ๊ตฌํ๋๊ณ ํด๋น ๋ด๋ถ๋ฅผ ๊ฐ์ ธ์ฌ ์ ์๊ธฐ ๋๋ฌธ์ ๋ช ๋ น์ค ๋๊ตฌ์ ๋ด๋ถ๋ฅผ ๊ฐ์ ธ์์ผ ํ๋ค๊ณ ์ด๋ป๊ฒ๋ ์๊ฐํ๋ ์ฌ๋๋ค์ ์ํ ์น์ ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
pip
์ ๊ณต์ฉ ์ธํฐํ์ด์ค์ ๋ํ ํด์์ด ๋์ ๊ฐ๋ฐ์ ๋ฐ pip
๋ฅผ CLI ํ๋ก๊ทธ๋จ์ผ๋ก ์๊ฐํ๋ ๋๋ถ๋ถ์ ์ฌ๋๋ค๊ณผ ๋ค๋ฅด๋ค๋ ๊ฒ์ ์์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ด๊ฒ์ ์ค์ ํผํด๋ ๋ฌด์์
๋๊น? pip != 9.0.2
๋ฅผ ๊ณ ์ ํ๊ณ ๋๋
๋๋ค.
์ง์๋๋ ๊ณต๊ฐ API์ ์ผ๋ถ๊ฐ ๋ฌด์์ด๊ณ ์ผ๋ถ๊ฐ ์๋์ง์ ๋ํด ์ด ์์ ์์ ์ฐ๋ฆฌ๋ ๋ชจ๋ ๊ฐ์ ํ์ด์ง์ ์๋ค๋ ๊ฒ์ด ๋ถ๋ช ํ๋ฉฐ, ๋ชจ๋ ์ฌ๋์๊ฒ ์๊ธํ์ฌ ํต์งํ๊ธฐ ์ํด ์ง๊ธ ํ ์ ์๋ ์ผ์ ์์ต๋๋ค.
์์งํ ๋งํด์, pip์ ์ ์ง ๊ด๋ฆฌ์๋ ์ด๋ฏธ ์๊ฐ์ด ํ๋ฝํ๋ค๋ฉด ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ค๊ณ ๋ ธ๋ ฅํ ๊ฒ์ด๋ผ๊ณ ๋ฐํ์ง๋ง ๋ชจ๋ ์ฌ๋์ด ์๋๋ฅผ ๋์ด๊ธฐ ์ํด ํ ์์ฒญ์ ์ ์ถํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
ํ์ฌ๋ก์๋ ํ์ฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์ด ๋ฌธ์ ๋ฅผ ์ธ์ํ๊ณ ์ด ๋ฌธ์ ๋ฅผ ์ง์ ํ๋๋ก ํ๋ ๊ฒ์ด ์ฐ๋ฆฌ๊ฐ ํ ์ ์๋ ์ ๋ถ๋ผ๊ณ ์๊ฐํฉ๋๋ค. ์ฅ๊ธฐ ํ์ฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ์ด์จ๋ ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํด์ผ ํ๋ฉฐ import pip
ํ์ง ์๊ณ ๋ช
๋ น์ค์ ํตํด pip๋ฅผ ํธ์ถํ๋ ๋ฐฉ์์ผ๋ก ํด๊ฒฐํด์ผ ํฉ๋๋ค(ํ์ ํ๋ก์ธ์ค ๋๋ ์ ์ฌํ python ๋ช
๋ น ์ฌ์ฉ).
๋๋ ์ด ํ ๋ก ์ด ์์ฐ์ ์ด์ง ์์ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ๋ฉฐ ์ค์ ๋ก ๋ ๋งํ ๊ฒ๋ ์์ต๋๋ค. ์์ต๋๋ค:
9.0.3
๊ฐ ์กด์ฌํ ๊ฐ๋ฅ์ฑ์ ๋์ด๊ณ ์ ํ๋ ๊ฒฝ์ฐ ์ํํ ์ ์๋ ํ๋ ์ด๊ตฌ์
๋๋ค.์ด ์์ ์์ ํ ๋ก ์ ๊ด๋ จ๋ ๋ชจ๋ ์ฌ๋๋ค์ ๋ ์ข์ ์ํค๋ ๊ฒ ์ธ์๋ ์ค์ง์ ์ธ ๋ชฉ์ ์ด ์์ผ๋ฏ๋ก ์ง๊ธ์ ์ด ๋ฌธ์ ์์ ๋ฌผ๋ฌ๋ฉ๋๋ค. ์ด ๋ฌธ์ ๋ 10.0 ๋๋ 9.0.3์ด ์ถ์๋๋ฉด ์ข ๋ฃ๋ฉ๋๋ค. ๋๊ตฐ๊ฐ๊ฐ Call To Action์ ๋ ธ๋ ฅ์ ๊ธฐ์ธ์ด๋ฉด ํ ๋ฆฌํ์คํธ๋ฅผ ์ด๊ฑฐ๋ ์ด ๋ฌธ์ ์ ๋ํ diff๋ฅผ ์ ์ถํ ์ ์์ต๋๋ค.
์ด do-not-import-pip ๋งํธ๋ผ๋ฅผ ๋ ์ ๋ณด์ด๊ฒ ํ๋ ค๋ฉด ๋ค์์คํ์ด์ค์ ์ด๋ฆ์ "_pip"๋ก ๋ฐ๊พธ๋ ๊ฒ์ ์ด๋ป์ต๋๊น? ์ด๊ฒ์ ์ ์ฒด๊ฐ ์ด๋ฆ ์์ค์์ ๊ณต๊ฐ์ ์ผ๋ก ์ฌ์ฉ๋์ง ์์์ ๋ํ๋
๋๋ค.
๋ํ ์๋ ๊ฒ์ฌ ์ฝ๋์ ๋ฐ์ค๋ก ์์ํ๋ ํญ๋ชฉ์ ๋ณด์ง ์๋๋ก ์ง์ํ๋ ๊ฒ์ด ๋ ์ฌ์ธ ๊ฒ์
๋๋ค. ๊ธ์์, ํ์๋ ๊ด๋ จ ๊ฒ์ฌ ์ฝ๋๋ ๋ณ๊ฒฝํด์ผ ํฉ๋๋ค. ๊ทธ๋ฌ๋ ์ ์ด๋ ๋ธ๋๋ฆฌ์คํธ๋ฅผ ๊ด๋ฆฌํ์ง ์๊ณ (๊ด๋ก์ ๋ฐ๋ผ) ์๋ํํ ์ ์๋ ๊ธฐํ๊ฐ ์์ต๋๋ค.
์, ๋ง์ง๋ง์ผ๋ก ๋งน์ธํฉ๋๋ค. pip 10์ ์ด๋ฏธ ๋ชจ๋ ๊ด๋ จ ์ฝ๋๋ฅผ pip._internal
python -m pip
_pip
์ต๋๋ค.
https://github.com/pypa/pip/pull/5100 ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋์ง ๋๊ตฌ๋ ํ์ธํ ์ ์์ต๋๊น?
๊ธ์ผ์ญ์์ค. #5100์ด ์๋ชป๋ ๊ฒ ๊ฐ์ต๋๋ค. ๋์ https://github.com/pypa/pip/pull/5101 ์ ํ์ธํด ์ฃผ์๊ฒ ์ต๋๊น?
@dstufft #5101์ ์์ ์ฌํญ์ผ๋ก ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋์์์ ํ์ธํ ์ ์์ต๋๋ค.
์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋ฐ ์๊ฐ์ ํ ์ ํด ์ฃผ์ @dstufft ์๊ฒ ๊ฐ์ฌ๋๋ฆฝ๋๋ค. ์ ๋ Anaconda ํ๊ณผ ํ๋ ฅํ์ฌ ์ด ๋ฌธ์ ๋ฅผ ์๋ฆฌ๊ณ pip ๊ฐ์ ธ์ค๊ธฐ์์ ๋ฒ์ด๋๋๋ก ๋์ธ ๊ฒ์ ๋๋ค.
์ด ์ค๋ ๋์ ๊ธฐ๋ก์ ์ํด #5101๋ ๋ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ต๋๋ค.
๋ง์ฐฌ๊ฐ์ง๋ก #5101์ ์ฌ์ฉํ๋ฉด ๋๊ตฌ ๋ด์์ ๊ฐ์ ธ์ค๊ธฐ ์์ ์ ์ํํ ์ ์์ต๋๋ค. ์ฃผ์ ์ฌํญ: ํจ์น๋ ํ์ด๋ ์ฐ๋ฆฌ ๋๊ตฌ๋ฅผ ๊ด๋ฒ์ํ๊ฒ ํ ์คํธํ์ง ์์์ต๋๋ค.
์ด๊ฒ์ 9.0.3์์ ์์ ๋์ด์ผ ํฉ๋๋ค.
ํ์ import pip
์ ์ฐ์ง ์์์ง๋ง ํ ํจํค์ง์ ์๋น์์๋ ์ฌ๋์ ๋น ๋ฅธ ํด๊ฒฐ์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค. ์ด ์ค๋ ๋๋ฅผ ์ฝ์ ํ ๋ง์ ์ฑ์ด ๋ฒ ์คํธ ํ๋ํฐ์ค์ ๋ํด ์์ง ๋ชปํ๋ ์ฌ์ด์ pip๋ฅผ ๊ฐ์ ธ์จ ๊ฒ์ฒ๋ผ ๋ค๋ฆฌ๋ฉฐ ๋ง์ ๊ฐ๋ฐ์์ ์ฌ์ฉ์๊ฐ ์ ์ฌ์ ์ผ๋ก v9.0.2 ๋ฐ v10์ ์ํฅ์ ๋ฐ์ต๋๋ค.
I ๋ ๋ฒ์งธ/์ธ ๋ฒ์งธ/N ๋ฒ์งธ ์ ์ ํ ์ฌ์ฉ ์ค๋จ ๊ฒฝ๊ณ ๊ฐ ๋ ์ํํ๊ฒ ์ถ๊ฐ๋ฉ๋๋ค. ์ด์ฉ๋ฉด pypi.python.org ๊ฒ์๋ฌผ๋ ๋ ๊น์?
๋ง์ธ! ๊ฐ์ฌํฉ๋๋ค!
๋ํ ์ฌ์ฉ ์ค๋จ ๊ฒฝ๊ณ ์ ๋ ์ค์ํ ๊ฒ์ pip10 ์ธ๊ณ์์ ํ์ด์ฌ ํ๊ฒฝ์ ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ์์ผ๋ก ๊ฒ์ฌํ๋ ๋ฐฉ๋ฒ์ ๋ํ ์ ์ ํ ์ง์นจ์ ์ ๋ง ์ข์ํฉ๋๋ค! 700,000๊ฐ ์ด์์ ์์ฉ ํ๋ก๊ทธ๋จ ์ด ์ด ๋ฒ๊ทธ์ ์ํฅ์ ๋ฐ์๋ค๋ ์ ์ ๊ฐ์ํ ๋ ๋ถ๋ช ํ ๊ทธ๋ด ํ์๊ฐ ์์ต๋๋ค.
pip list --format=json
?
๋จผ์ pip ์ฌ๋๋ค์๊ฒ ๋ช ๊ฐ์ง ์ฌ์ฉ์ ์นํ์ ์ธ ์ต์ ๊ณผ ์ธ์๋ฅผ ํฌํจํ์ฌ ์ ๋ชจ๋ ์ฌ์ฉ ์ฌ๋ก๋ฅผ ์์ ํ ๋ค๋ฃน๋๋ค.
์ด "๋๋๋๋ก ๋๋ฆฌ ์ฑํ๋๊ณ ์ ์ฉํ ์ ์๋์ง ์์ ๋์" ์ผ๋ก ์ธํด piplib๋ฅผ git์ฉ libgit2๋ก ๋ง๋ค์ด์ผ ํฉ๋๊น? libgit2๋ git๊ณผ ์ฝ๋๋ฅผ ๊ณต์ ํ์ง ์์ผ๋ฉฐ git์ ๋ค๋ฅธ ๊ทธ๋ฃน์์ ์ ์ง ๊ด๋ฆฌํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ git ์ํ๊ณ์ ์ข์ต๋๋ค. ์๋ง๋ piplib๋ ์ฐ๋ฆฌ๊ฐ ์์ํ์ง ๋ชปํ ๋ช ๊ฐ์ง ํฅ๋ฏธ๋ก์ด ์ฌ์ฉ ์ฌ๋ก๋ฅผ ๋ค๋ฃฐ ๊ฒ์ ๋๋ค.
๋น์ทํ ์ด์ผ๊ธฐ๊ฐ ์์ต๋๋ค. https://public-inbox.org/git/1267957655.3759.29.camel@mattotaupa/T/
@drunkwcodes ๋๋ ๋น์ ์ด ์ ์ํ ๊ฒ์ด pip ๋ฌธ์ ์์ ์ธ๊ธ ํ ๊ธฐ์กด ํจํค์ง packaging
, setuptools
๋ฐ distlib
์ ์ด๋ฏธ ๊ตฌํ๋์ด ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ด ์ค๋ ๋์์ ์ ์ ์๋ ํ ๊ธฐ๋ฅ์ ๊ฒฉ์ฐจ์๋ ๋ฌธ์ ๊ฐ ์์ง๋ง ์ผ๋ถ ์ฌ๋๋ค์ ๋ชจ๋ ๋ชจ๋์ ๊ฐ์ ธ์ค๊ณ ๊ฒ์ฌํ๋ ค๊ณ ํ๊ณ ๊ฐ์ ธ์ค๊ธฐ ์คํจ๋ฅผ ์น๋ช
์ ์ธ ์ค๋ฅ๋ก ์ฒ๋ฆฌํ๋ ๋๊ตฌ์ ๋ฌธ์ ๊ฐ ์์ต๋๋ค.
๊ทธ๋ฐ ๋๊ตฌ๋ try/except ๋ธ๋ก์ import ๋ฌธ์ ๋ํํ์ฌ ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์๋ ๊ฒ ๊ฐ์ง๋ง, ์ด๊ฒ๋ ์ค์ ํด์ผ ํ ์์ฌ์ค๋ฌ์ด ์ ๋ก์ฒ๋ผ ๋ณด์
๋๋ค. ๊ทธ๋ฌ๋ pip 9.0.3์ ๋ฆด๋ฆฌ์ค๋ฅผ ๊ฐ์ํ ๋ pip 10์์ ๋ฌธ์ ๊ฐ ๋ค์ ๋ฐ์ํ์ง ์๋ ํ ๊ฐ์ ธ์ค๊ธฐ ๋ฌธ์ ์ ๋ํด ํ ๋ก ํ ์๊ฐ์ด ์์ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ์ด์จ๋ ์ ์ง ๊ด๋ฆฌ์๊ฐ import pip
์คํจํ๊ฑฐ๋ ๊ทธ๋ฌํ ์คํจ๋ฅผ ์์ ํ๋ ํจ์น๋ฅผ ๊ฐ๋จํ ๊ฑฐ๋ถํ๋ ๊ฒฝ์ฐ์๋ ๊ณตํต๋ ๊ทผ๊ฑฐ๊ฐ ์์ต๋๋ค.
@sruggier ์ธ๊ธ ๋ ํจํค์ง๋ ๋ชจ๋ ํ๋ฅญํ๊ณ WheelFile.install() ๋ ๋ ๋ง์ ํ๋ณด๊ฐ ํ์ํฉ๋๋ค. ๊ทธ๋ฌ๋ ์ ๊ณต๋๋ ์์คํฑ ์๋น์ค pip.main()
๋ ์์ ๋ชจ๋ ๊ฒ๊ณผ ๋์ฒดํ ์ ์์ต๋๋ค. ์ฌ์ ํ ์๋ํด ๋ณผ ๊ฐ์น๊ฐ ์์ต๋๋ค.
๊ฐ์ฅ ์ค์ํ ๊ฒ์ ์ด๋ฌํ ์๊ตฌ ์ฌํญ์ ๋ค๋ฅธ ํ๋ก์ ํธ์์ ์ ์งํ๊ณ pip10์ด ์ถ๊ฐ ๋ณด์ฆ ์์ด ์ํํ๊ฒ ๋์ฐฉํ๊ธฐ๋ฅผ ๋ฐ๋๋๋ค. ์ฌ์ฉ ์ค๋จ ๋ฐ ์ฝ๋ ๊ธฐ๋ฐ ์ต์ํ๋ ์ฃผ์ ๋ฆด๋ฆฌ์ค์ ์์ ์ ๋๋ค.
์๊ตฌ ์ธํ๋ผ "์ํํธ์จ์ด"์ ๋ํ ๊ตฌ์ฒด์ ์ธ ๊ตฌํ ์ธ๋ถ ์ ๋ณด๋ ์ฐ์ค๊ฝ์ค๋ฝ์ต๋๋ค. ๋ฌธ์ํ๋ ๋จ์ฉ ์ฌ๋ก๋ก ์ ์ง ๊ด๋ฆฌ์๋ฅผ ํ๋จํ๊ณ ํ์ ๋ฐํด๋ฅผ ์ต์ ํ ์ ์์ต๋๋ค.
pip๋ฅผ lib๋ก ์ฌ์ฉํ๊ธฐ๋ฅผ ์ฃผ์ฅํ๋ค๋ฉด ๋ง์ ๊ฐ์ ์ ์ฌ๊ณ ํด์ผ ํฉ๋๋ค.
@drunkwcodes ๋ช
ํํ ํ์๋ฉด , pip.main()
๋ ๊ต์ฒดํ๊ธฐ ๊ฐ์ฅ ์ฌ์ด ์ฌ์ฉ๋ฒ์
๋๋ค. subprocess.run([sys.executable, '-m', 'pip', <rest of args>])
์ฌ์ฉํ๋ฉด ๋ฉ๋๋ค.
๋ํ WheelFile.install()
๊ฐ ์น๊ฒฉ๋์ง ์๋ ์ด์ ๋ wheel ํ๋ก์ ํธ์์๋ ์ฌ์ฉ์๊ฐ ๋ณผ ์ ์๋ API๋ฅผ ์ ๊ณตํ์ง ์๋๋ค๊ณ ๋ช
์ํ๊ธฐ ๋๋ฌธ์
๋๋ค. ์ฐ๋ฆฌ๋ ์๋ pip ๋ฌธ์์์ wheel์ ์ธ๊ธํ์ง๋ง ์์ฒญ์ ๋ฐ๋ผ ์ ๊ฑฐํ์ต๋๋ค. ํ PEP๋ ํ ์ ์ค์นํ๋ ๋ฐฉ๋ฒ์ ๋ํด ๋งค์ฐ ๋ช
ํํฉ๋๋ค. ํ์ฌ ๋ชจ๋์์ ๊ตฌํํ๋ ๊ฒ์ ์ด๋ ต์ง ์์ต๋๋ค.
์ฌ๋ฌ๋ถ ๋ชจ๋๊ฐ pip์์ ํ๋ ์ผ์ ๊ฐ์ฌํ๋ฉฐ ๊ทธ๊ฒ์ด ์ฝ์ง ์๋ค๋ ๊ฒ์ ์๊ณ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ๊ธฐ๋ก์ ์ํด:
๋๋ ์ฌ๋๋ค์ด ์ด๋ฏธ import pip์์ ๋ฉ์ด์ง์ง ์์๋ค๋ ์ฌ์ค์ ์ฝ๊ฐ ์ค๋งํ์ต๋๋ค. ์ด ๋ฌธ์ ๋ก ํผํด๋ฅผ ์ ์ ์ฌ๋๋ค์ ์ฌ์ ํ โโํ 10์ ์ค๋นํด์ผ ํฉ๋๋ค.
spaCy ๊ฐ import pip
์์ ๋ฉ์ด์ก์ต๋๋ค. ๊ทธ๋ฌ๋ ์ผ๋ถ ์ฌ๋๋ค์ ์ฌ์ ํ โโpip๋ฅผ ๊ฐ์ ธ์จ spaCy 1์ ์ฌ์ฉํ๊ณ ์์ต๋๋ค. --- ๋ช
๋ฐฑํ ์ด์ ๋ก pip๋ฅผ ํจ์น ๋ฆด๋ฆฌ์ค๋ก ๊ณ ์ ํ์ง ์์์ต๋๋ค. v10์์ ๋ณ๊ฒฝ ์ฌํญ์ด ์ ์ฉ๋์๋ค๋ฉด ์ด์ ๋ฒ์ ์ ์ํฅ์ ๋ฐ์ง ์์์ ๊ฒ์
๋๋ค. ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ํซํฝ์ค๋ฅผ ์ถ์ํ์ต๋๋ค.
pip10 ์ธ๊ณ์์ ํ์ด์ฌ ํ๊ฒฝ์ ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ์์ผ๋ก ๊ฒ์ฌํ๋ ๋ฐฉ๋ฒ์ ๋ํ ์ ์ ํ ์ง์นจ
distlib์ ๋ํ PyPA์ ์ ์ฅ์ ๋ฌด์์ ๋๊น? Pip์ ๋ถ๋ช ํ ๊ทธ๊ฒ์ ์ด๋ ์ ๋ ์ฌ์ฉํ๊ณ ์์ง๋ง distlib๊ฐ ๋ ์ด์ ์ฌ์ฉํ์ง ์๋ ํจํค์ง์ ์ฌ์ฉํ๋ ๊ฒ๋ ๋ง์ฐฌ๊ฐ์ง์ ๋๋ค.
๊ณต์์ ์ธ ์ ์ฅ์ด ์๋ค๋ฉด, ์ต์ํ pip์ ํต์ฌ ๋ฉ์ธํ ์ด๋๋ค์ ํ์ฌ ์๊ฐ๊ณผ ์๊ฒฌ์ ๋๋จํ ๊ฐ์ฌํ ๊ฒ์ ๋๋ค. ๋ค๋ฅธ ๊ณณ์์ ์ด ์ฃผ์ ์ ๋ํ ๊ด๋ จ ํ ๋ก ์ด ์๋ ๊ฒฝ์ฐ ๋ค๋ฅธ ํ ๋ก ์ ๋ํ ๊ฐ๋จํ ํฌ์ธํฐ๋ง์ผ๋ก๋ ์ถฉ๋ถํฉ๋๋ค.
distlib๊ฐ ํจํค์ง์ ๋ ์ด์ ์ฌ์ฉํ์ง ์๋๋ค๋ ๊ฒ์ ์์ง ๋ชปํฉ๋๋ค. "distutils2/packaging"์ ์ธ๊ธํ์ง๋ง distutils2๋ ๋ญ๊ฐ ๋ค๋ฆ ๋๋ค.
๋ด ๊ฐ์ธ์ ์ธ ๊ฒฌํด๋ distlib์ ํฌ์ฅ ๋ชจ๋ ์ฌ์ฉํ๊ธฐ์ ์๋ฒฝํ๊ฒ ํฉ๋ฆฌ์ ์ธ ๊ฒ์ ๋๋ค. ๋น์ ์ด ์์กดํ๋ ๋ค๋ฅธ ์์กด์ฑ๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก, ๋ถ๋ช ํ ๋น์ ์ ์๊ตฌ ์ฌํญ์ ์ถฉ์กฑํ๋์ง ํ์ธํ๊ธฐ ์ํด ์ง์ ํ๊ฐํด์ผ ํฉ๋๋ค.
์๋ง๋ deprecates๋ ๋จ์ด๊ฐ ๋๋ฌด ๊ฐํฉ๋๋ค. ํ์ฌ ์ดํด์ ์ถ์ฒ:
https://distlib.readthedocs.io/en/latest/overview.html#distlib -evolved-out-of-packaging
์, ๊ทธ๊ฒ์ ๋ค๋ฅธ "ํจํค์ง"์
๋๋ค. distutils๋ฅผ ๋์ฒดํ๊ธฐ ์ํด ์ ์๋ stdlib ๋ชจ๋์ด์์ต๋๋ค. PyPI packaging
ํ๋ก์ ํธ์ ์์ ํ ๋ค๋ฆ
๋๋ค. distlib ํ๋ก์ ํธ์ ๊ทธ ์ฐจ์ด๋ฅผ ์ข ๋ ๋ช
ํํ ํด๋ฌ๋ผ๊ณ ์์ฒญํ ๊ฐ์น๊ฐ ์์ต๋๋ค.
distlib ํ๋ก์ ํธ์ ๊ทธ ์ฐจ์ด๋ฅผ ์ข ๋ ๋ช ํํ ํด๋ฌ๋ผ๊ณ ์์ฒญํ ๊ฐ์น๊ฐ ์์ต๋๋ค.
์ด๋ฏธ ์๋ฃํ์ต๋๋ค :) ์ฐธ์กฐ: https://bitbucket.org/pypa/distlib/issues/100/clarify-project-positioning-and-status
์ด ์ค๋ ๋๋ ๋ซํ ํ ์ต๊ทผ ํ๋์ด ์์๊ธฐ ๋๋ฌธ์ ์๋์ผ๋ก ์ ๊ฒผ์ต๋๋ค. ๊ด๋ จ ๋ฒ๊ทธ์ ๋ํ ์ ๋ฌธ์ ๋ฅผ ์ฌ์ญ์์ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
์ด์.. ๋จ์ผ
x.x.PATCH
๋ฒ์ ๋ฒํ์์ ์์ฒญ๋ ๋ณํ๋ฅผ ์ผ์ผํค๊ณ ์์ต๋๊น? "main"์ด๋ผ๊ณ ํ๋ ์ต์์ ๋ฉ์๋์ ๊ฒฝ์ฐ? ์ข ๋ณ๋ก์ธ ํผ์ธ๊ฑฐ ๊ฐ์๋ฐ..