์ ๋ #988์ ๋ํด ์กฐ๊ธ ์๊ฐํ์ต๋๋ค. ํนํ ํ์์ ์ต์ํํ๊ณ ์ฌ์ฉ์๋ก๋ถํฐ ์ ์ฉํ ํผ๋๋ฐฑ์ ์ป์ ์ ์๋ ๊ธฐํ๋ฅผ ์ต๋ํํ๊ธฐ ์ํด ๋กค์์ํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์๊ฐํด ๋ณด์์ต๋๋ค.
๋ง์นจ๋ด ๋ ์์ง์๊ฐ๋ฝ + ์๊ฐ์ด ๋จ์์ ์ด ๋ฌธ์ ๋ฅผ ์ ๊ธฐํฉ๋๋ค. ๋ถ๋ช ํ ๋ค์ ๋ด์ฉ์ ๋ชจ๋ ๋ ผ์ ๋์์ ๋๋ค. :)
์ ํ์ธ์๋ฅผ ์ถ์ํ๊ธฐ ์ํ ํ์ฌ ๊ณํ์ ํ๋๊ทธ ๋ค์ ์ ํ์ธ์๋ฅผ ๋ ธ์ถํ๋ ๊ฒ์ ๊ธฐ๋ฐ์ผ๋ก ํฉ๋๋ค. ํ๋ฆ์ ์ด๊ธฐ์ ๋ฌธ์ํํ์ง ์๊ณ ํ๋๊ทธ ์ฌ์ฉ์ ๋ํด ํฐ ๊ฒฝ๊ณ ๋ฅผ ์ถ๊ฐํ๋ ๊ฒ์ ๋๋ค. ์คํ์ด ๋ํ๊ณ ๋ฒ ํ ๋ฒ์ ์ด ๋๋ฉด ์ฌ์ฉ์๋ฅผ ์ด๋ํ์ฌ ์ ํด๊ฒฐ ํ๋ก๊ทธ๋จ์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ฌ๊ธฐ์๋ ์ฌ์ฉ์์๊ฒ ์ฌ์ฉํด ๋ณด๊ณ ํผ๋๋ฐฑ์ ์ ๊ณตํ๋๋ก ์์ฒญํ๋ CTA๊ฐ ํฌํจ๋ฉ๋๋ค. ์ด ์ ๋ณด๋ ํ๋๊ทธ์ ํจ๊ป ์คํํ ๋๋ ์ธ์๋ ์ ์์ต๋๋ค.
ํผ๋๋ฐฑ ๊ด๋ฆฌ ์ธก๋ฉด์์ ๋ค๋ฅธ ์ ์ฅ์์ ์ด์ ํธ๋์ปค์ ๋ํ ํผ๋๋ฐฑ์ ์์ฒญํ ์๊ฐ์ ๋๋ค. ๋ค๋ฅธ ๋ฌธ์ ์ถ์ ๊ธฐ์ ๋ฌธ์ ๋ฅผ ๋๋ ์ด์ ๋ ์ฌ๊ธฐ์์ ๋ ธ์ด์ฆ๋ฅผ ์ต์ํํ๊ณ ๋ ์ง์ค์ ์ธ ํ ๋ก /์กฐ์ฌ๋ฅผ ํ์ฉํ๋ ๊ฒ์ ๋๋ค. ์ฃผ์ ์ด์ ํธ๋์ปค(์ด๊ฒ)์ "ํด๊ฒฐ์ ๋ฒ๊ทธ" ์ด์์ ๊ฒ์ ๋ฒ๋ธ๋งํฉ๋๋ค.
์ ํ ์ธก๋ฉด์์ ์๋ก์ด ํด๊ฒฐ ๋ ผ๋ฆฌ์ ๋ํ ์ถฉ๋ถํ ํ์ ์ด ์๊ธฐ๋ฉด ์ ํ์ ์ฒ๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ์ดํด๋ณผ ์ ์์ต๋๋ค. ์ด๊ฒ์ ํ๋๊ทธ ๋ค์ ๋ฐฐ์นํ๋ฉด ๋ฆด๋ฆฌ์ค์์ ์ง์ ์ ํํ๊ฑฐ๋ ์ ํ์ธ์๋ฅผ "์์ ํ"ํ๊ณ (๋ค์ค ๋ฆด๋ฆฌ์ค?) "์ ํ ๊ธฐ๊ฐ"์ ์ํํ๋ ๋ ๊ฐ์ง ์ต์ ์ด ์์ต๋๋ค. ๊ด๋ จ๋ ์ ํํ ์ ์ถฉ์์ ๋ ์ ์ดํดํ๊ฒ ๋๋ฉด ๋์ค์ ์ ํ ๊ณํ์ ์ํํ ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
git/GitHub ์ธก๋ฉด์์ ์ด๊ฒ์ ์๋ง๋ pip ๋ด์์ ์ต์ด์ "์คํ์ " ๊ธฐ๋ฅ ๊ตฌํ์ผ ๊ฒ์
๋๋ค. FWIW, ์ ๋ ํฌํฌ์ ๋ํ ์คํ ๋ฑ์ ์ํํ๊ณ ์ ๊ธฐ์ ์ผ๋ก ์งํ ์ํฉ์ pip์ ๊ธฐ๋ณธ ์ ์ฅ์ ์์ฒด์ ๋ณํฉํ ๊ณํ์
๋๋ค(๋จ๋
์ฝ๋, pip._internal.resolution). ๋ฉ์ธ ๋ฆฌํฌ์งํ ๋ฆฌ์์ ์๋๋ฝ๊ฒ ๋ง๋ค๊ณ ์ถ์ง๋ ์์ง๋ง master
๋ฅผ ์ด ์์
๊ณผ ๋๊ธฐํ๋ ์ํ๋ก ์ ์งํ๊ณ ์ถ์ต๋๋ค.
ํ๋กํ ํ์ ์ ๋น๋ํ ๋ ๋น๋ ๋ก์ง์ ๋ค๋ฃจ๋ ๊ฒ์ด ์ผ๋ง๋ ๊ณ ํต์ค๋ฌ์ ๋์ง ์ด ์์ ์ ์ํด #5051์ ์ฐจ๋จ๊ธฐ๋ก ๋์์ต๋๋ค.
์ด๋ป๊ฒ ๊ณํํ๋์ง ๋ชจ๋ฅด๊ฒ ์ง๋ง ํ ๊ฐ์ง ์๊ฒฌ์ ์ ์ฝ๋์ ํ์ฌ ์ฝ๋ ๊ฐ์ ๊ฐ๋ฅํ ํ ๋ง์ ์ฝ๋๋ฅผ ๊ณต์ ํ๊ณ ์์ ํ๋ ๋์ ํ์ฌ ์ฝ๋๋ฅผ ๋ฆฌํฉํ ๋งํ๋๋ก ๊ถ์ฅํ๋ค๋ ๊ฒ์ ๋๋ค. ์ ์ฝ๋ ๊ฒฝ๋ก์ ํ์ฌ ์ฝ๋ ๊ฒฝ๋ก ๊ฐ์ ๋ ๋ง์ ๊ณต์ ๋ฅผ ํ์ฉํฉ๋๋ค.
ํ ๊ฐ์ง ์ด์ ๋ ๋ ๋ง์ ์ฝ๋๋ฅผ ๊ณต์ ํ๋ ๊ฒฝ์ฐ ์ ๋์์ ๊ป๋ค๊ฐ ์ผฐ์ ๋ ์์๋ ๊ฐ๋ฅ์ฑ์ด ์ ๊ธฐ ๋๋ฌธ์ ๋๋ค. ๋์ฒํด์ผ ํ ํ๋์ ๋ง์ ์ ์ฌ์ ์ธ ์ฐจ์ด.
์ฌ๊ธฐ์๋ ์ฌ์ฉ์์๊ฒ ์ฌ์ฉํด ๋ณด๊ณ ํผ๋๋ฐฑ์ ์ ๊ณตํ๋๋ก ์์ฒญํ๋ CTA๊ฐ ํฌํจ๋ฉ๋๋ค.
์๋ก์ด ๊ธฐ๋ฅ์ ๋ํ ์ฌ์ ํผ๋๋ฐฑ์ ๋ฐ์ ์ค์ ์ ์๋นํ ์ข์ง ์์ต๋๋ค. ์ฐ๋ฆฌ๋ ๋ฒ ํ ๋ฆด๋ฆฌ์ค๋ฅผ ์๋ํ์ฌ ์ฌ๋๋ค์ด ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ ๋ ์ฌ์ฉํ ์ ์๋ "์ตํธ์์" ํ๋๊ทธ๊ฐ ์๋ ์๋ก์ด ๊ธฐ๋ฅ์ ์ถ์ํ๊ณ ๋ณ๊ฒฝ ์ฌํญ์ ๊นจ๋ ๋๋์ ์ธ ํ๋ณด ํ๋์ ์๋ํ์ง๋ง ๊ทธ ์ค ์๋ฌด ๊ฒ๋ ํจ๊ณผ๊ฐ ์์๋ ๊ฒ ๊ฐ์ต๋๋ค.
๋ด ๊ฐ์ธ์ ์ธ ๋๋์ "์ฌ์ฉ ๊ฐ๋ฅํ๊ฒ ํ๊ณ ํผ๋๋ฐฑ์ ์์ฒญํ๋ ๊ฒ"์ด โโ์ฐ๋ฆฌ๊ฐ ์ด์ ์ ์๋ํ ๊ฒ์ ๋ํ ํฅ๋ฏธ๋ก์ด ๋ณํ์ด์ง๋ง ๊ถ๊ทน์ ์ผ๋ก ํฐ ์ฐจ์ด๊ฐ ์์ ๊ฒ์ด๋ผ๋ ๊ฒ์ ๋๋ค. ๋๋ฌด ๋ง์ ์ฌ๋๋ค์ด ์๋ํ๋ ๋น๋ ํ์ดํ๋ผ์ธ์์ ๊ธฐ๋ณธ ์ต์ ์ด ์๋ ์ต์ pip๋ฅผ ์ฌ์ฉํ๊ณ ์ pip ๋ฒ์ ์ผ๋ก ์ด๋ํ๊ธฐ ์ ์ ํ ์คํธํ์ง ์์ต๋๋ค(PEP 517์์ ์ด๋ฅผ ํ์ธํ์ต๋๋ค).
์ด ๊ธฐ๋ฅ์ ๋ํ ๋๊ท๋ชจ "์ค์ " ํ ์คํธ ์์ ์ ์ํํ๊ฑฐ๋ (๋ ๋์ ๋ฐฉ๋ฒ์ผ๋ก) ํ ์คํธ ์ธํ๋ผ๋ฅผ ๊ฐ๋ฐํ๊ธฐ ์ํ ๋ฆฌ์์ค๋ฅผ ์ป๊ธฐ ์ํด PSF ๋ณด์กฐ๊ธ์ ๋ฐ์ ์ ์๋์ง ๊ถ๊ธํฉ๋๋ค. ์ด๋ฌํ ํ๋ก์ ํธ์๋ ์๋ก์ด pip ๋ฒ์ ์ด ๋ฌธ์ ๋ฅผ ์ผ์ผํค์ง ์๋๋ก ํ ์คํธ ๊ฒฝ๋ก๋ฅผ ์ค์ ํ ์ ์๋๋ก ์ํฌํ๋ก ๋ฐ ๊ตฌ์ฑ์ ์๋ ค์ฃผ๋ ํ๋ก์ ํธ์ ๋ํ ํธ์ถ์ด ํฌํจ๋ ์ ์์ต๋๋ค. ์๋๋ฉด ๋ ๋์ ์ฌ์ฉ์ ํ ์คํธ ํ๋ก๊ทธ๋จ์ ์ค์ ํ๋ ๋ฐ ๋์์ด ๋๋ ์๋ก์ด ๊ธฐ๋ฅ์ ๋ํ ๋ฒ ํ ํ ์คํฐ๋ฅผ ์ป๋ ๊ฒ๊ณผ ๊ฐ์ ์ปค๋ฎค๋์ผ์ด์ ์ธก๋ฉด์์ ๋๊ตฐ๊ฐ๋ฅผ ๊ฒฝํํ๋๋ก ๋ณด์กฐ๊ธ์ ์ฌ์ฉํ์๊ฒ ์ต๋๊น?
git/GitHub ์ธก๋ฉด์์ ์ด๊ฒ์ ์๋ง๋ pip ๋ด์์ ์ต์ด์ "์คํ์ " ๊ธฐ๋ฅ ๊ตฌํ์ผ ๊ฒ์ ๋๋ค.
๋ฌด์จ ๋ง์ธ์ง 100% ํ์ ํ ์ ์์ต๋๋ค. ์ฐ๋ฆฌ๋ "์ด์ ๋ฐฉ์"์ด ์ฌ์ ํ ์กด์ฌํ๋ ๋์ ์ถ๊ฐ๋ ๊ณผ๊ฑฐ์ ํ์คํ ์๋ก์ด ๊ธฐ๋ฅ์ ๊ฐ์ง๊ณ ์์์ต๋๋ค. ์ฐ๋ฆฌ๋ "๊ธฐ๋ณธ์ ์ผ๋ก ๊บผ์ ธ ์๊ณ ์ฌ์ฉํด ๋ณผ ์ ์๋๋ก ์ค์ "ํ๋ ๊ฒฝํฅ์ด ์์ง๋ ์์ง๋ง ๊ทธ ์ด์ ๋ ๋๋ถ๋ถ ํผ๋๋ฐฑ์ ์ป์ ์ ์๋ ์ข์ ๋ฐฉ๋ฒ์ ์ฐพ์ง ๋ชปํ๊ธฐ ๋๋ฌธ์ ๋๋ค(์ ์ฐธ์กฐ).
์ด ํฌ์คํธ ํ๋๋ฅผ ์ฐ๋ ๋ฐ 60๋ถ ์ ๋(re-re-re-re-re-)๋ฅผ ์ผ์ผ๋ฏ๋ก ์ด์ ๋ด์์ ์ฅ์๋ฅผ ์ดํด๋ณด๊ฒ ์ต๋๋ค! ๋น ๋ฅธ ์๋ต์ด ์์ผ๋ฉด ๊ด๊ด ๋ชจ๋์ ์๊ธฐ ๋๋ฌธ์ ๋๋ค.
์ ์ฝ๋์ ํ์ฌ ์ฝ๋ ๊ฐ์ ๊ฐ๋ฅํ ํ ๋ง์ ์ฝ๋๋ฅผ ๊ณต์ ํ๊ณ ์ ์ฝ๋ ๊ฒฝ๋ก์ ํ์ฌ ์ฝ๋ ๊ฒฝ๋ก ๊ฐ์ ๋ ๋ง์ ๊ณต์ ๋ฅผ ํ์ฉํ๋๋ก ์์ ํ๋ฉด์ ํ์ฌ ์ฝ๋๋ฅผ ๋ฆฌํฉํฐ๋งํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
๋ถ๋ช ํ! ์ด๊ฒ์ด ๋ด๊ฐ #5051์ ์์ ๋๋ ์ด์ ์ 80%์ ๋๋ค. ์ ๋ ๋น๋ ๋ก์ง์ ์ถ์ ๋ ๋ง์ ๊ธฐ์ ์ ๋ถ์ฑ๋ฅผ ๊ฐ์ ์ฌ์ฌ์ฉ(์ ๋ถ?)ํ๊ธฐ๊ฐ ๋ ์ฝ๋๋ก ํ๋ ค๊ณ ํฉ๋๋ค. ์ฝ๋์ ๋ฌด๋ฆฌ๋ :fire: ํด์ผ ํ๊ณ ๋๋จธ์ง๋ ํ์คํ ํฉ๋ฆฌ์ ์ธ ๋งํผ ์ฌ์ฌ์ฉํด์ผ ํ๋ค๋ ๋ฐ ๋์ํฉ๋๋ค.
์ฐ๋ฆฌ๋ "๊ธฐ๋ณธ์ ์ผ๋ก ๊บผ์ ธ ์๊ณ ์ฌ์ฉํด ๋ณผ ์ ์๋๋ก ์ค์ "ํ๋ ๊ฒฝํฅ์ด ์์ง ์์ต๋๋ค.
๋ค, ์ ๋ง์
๋๋ค. ๋๋ ๋ํ ์ฌ๊ธฐ์ ๊ฐ๋ฐ ํ๋ฆ์ ๋ํด ์์ํ๊ณ ์์ต๋๋ค. IMO ๋น ์ธํ๋ผ(์ดํ PR์์ ๊ตฌ์ฒดํ๋ raise NotImplementedError()
์ ๋ถ๊ณผํ ์ฌ๋ฌ ๋ฉ์๋๊ฐ ์๋ ํด๋์ค)๋ฅผ ๋ณํฉํด๋ ๊ด์ฐฎ์ ๊ฒ์
๋๋ค. "experimental/alpha"๋ก ๋ช
์์ ์ผ๋ก ํ์๋ ํ๋๊ทธ ๋ค์๋ง ์ฌ์ฉ๋๋ ํ master
๋ถ๊ธฐ์ ๋ชจ๋ ๊ฒฝ์ฐ(ํํ ๋ฒ ์ดํฌ๋ ๊ตฌํ)๋ฅผ ํฌํจํฉ๋๋ค.
๋ค์: ํผ๋๋ฐฑ
์ ๋ ์ด๋ฆฌ๊ณ ๋ฉ์ฒญํ๋ฉฐ ๋๊ด์ ์ ๋๋ค. ์ ๋ ์ด ๋กค์์์ ์ตํธ์ธ์ผ๋ก ์ค์ ํ์ฌ ๋ฅ๋์ ์ธ ํผ๋๋ฐฑ์ ๋ฐ๊ณ ์ด์ ๋ฐ๋ผ ์กฐ์น๋ฅผ ์ทจํ๊ณ ์ถ์ต๋๋ค. "์ฌ์ ์ "์ด๋ผ๋ ๋ง์ ์ํ/๋ฒ ํ ๊ธฐ๋ฅ์ ์ํํด๋ณด๊ณ ์ด๋ค ๊ธฐ๋ฅ์ธ์ง ์๋ ค์ฃผ๊ธฐ ์ํด ์๊ฐ์ ํ ์ ํ๋ ์ฌ๋๋ค์ ์๋ฏธํฉ๋๋ค. ๋๋ ์ฐ๋ฆฌ๊ฐ ์ถฉ๋ถํ ์์์ ๋ด๊ณ ์ ๋ต์ ์ผ๋ก ์ฌ๋๋ค์ ๋ชฉํ๋ก ์ผ๊ฑฐ๋ ์ ๊ทผํ๋ค๋ฉด ์ธ๋ถ ์ฌํญ/๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋ฐ ๋์์ด ๋๋ ์๋ก์ด ๊ธฐ๋ฅ์ ์ํํด ๋ณผ ์๊ฐ๊ณผ ์๋์ง๊ฐ ์๋ ์ฌ๋๋ค๋ก๋ถํฐ ์ข์ "์ฌ์ ์ " ํผ๋๋ฐฑ์ ์ป์ ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
์ต๊ทผ์ "์ฃผ์" ๋ณ๊ฒฝ ์ฌํญ์ ์ดํด๋ณด๋ฉด ์ฌ์ฉ์๊ฐ ์ํฌํ๋ก๊ฐ ์ค๋จ๋์์ ๋ ๋ฌธ์ ๋ฅผ ์ธ์ํ๊ณ ์ด์ ๋ํด ์๋ ค์ฃผ๊ธฐ ์ํด ์ฐ๋ฝํ๋ ๋ฐ์์ ์ธ ํผ๋๋ฐฑ์ด ๋๋ถ๋ถ์ด์๋ ๊ฒ ๊ฐ์ต๋๋ค. ๊ทธ๋ค ์ค ๋ง์ ์ฌ๋๋ค์ด ๋ง์ ๋ง์ฐฐ์ ์ผ์ผํค๋ ์๋ก์ด ๊ธฐ๋ฅ์ ์ธ๋ถ ์ฌํญ์ ์ ๋ฆฌํ๋ ๋ฐ ๋์์ ์ค ์๊ฐ์ด ์์์ ์ ์์ต๋๋ค. ์ด๊ฒ์ ๋ํ ์ฐ๋ฆฌ์ "์ดํ ์์ฐ"[1]์ ๋ง์ ๋น์ฉ์ ๋ค์ด๋๋ฐ, Python Packaging์ ์ด์จ๋ ์ผ๋ง ๋จ์ง ์์๊ธฐ ๋๋ฌธ์ ๋ ์ง์ถํ๊ณ ์ถ์ง ์์ต๋๋ค[2].
FWIW, ๋๋ ๊ฝค ๋์ ๋๋ ์์น(์: ๋ด ๊ฐ์ธ ๋ธ๋ก๊ทธ๊ฐ ์๋)์ ๋ธ๋ก๊ทธ ๊ฒ์๋ฌผ์ ์์ฑํ๊ณ , ํ์บ์คํธ, ์ ์์ ์คํ ๊ฐ๋ฅํ ์ด๋ฉ์ผ ๋ฑ์ ํ๋ ๊ฒ๊ณผ ๊ฐ์ด PyPI ์ถ์์์ ๋ช ๊ฐ์ง ์์ด๋์ด๋ฅผ ๋น๋ฆด ๊ณํ์ ๋๋ค. ๋ํ ๋ ๋ง์ ์ ํ ๊ธฐ์ ์ ์ฐพ๊ณ ์์ต๋๋ค. /ํต๋ก๋ฅผ ํตํด ํต์ ํฉ๋๋ค. ๋ด๊ฐ PyCon์์ ๋ฐฐ์ด (๋ง์!) ๊ฒ ์ค ํ๋๋ ์ฐ๋ฆฌ๊ฐ ์ฌ์ฉํ์ง ์๋ ์ฑ๋์ด ์๋ค๋ ๊ฒ์ ๋๋ค. ์ฑ๋์ ์ ๋ณด๋ฅผ ํผ๋จ๋ฆฌ๋ ๋ฐ ๋์์ด ๋์ง๋ง ํผ๋จ๋ฆด ๊ฒ์ด ์๋์ง ํ์ธํ๋ ค๊ณ ์ฐพ์ง๋ ์์ต๋๋ค.
๋ถ๋ช ํ ๋งํด์, ์ ๋ ์ฐ๋ฆฌ๊ฐ PEP 517์ ๋ํด ์ทจํ ๋กค์์ ์ ๊ทผ ๋ฐฉ์์ ๋ํด ๋นํํ๋ ๊ฒ์ด ์๋๋๋ค. ํนํ ์ฐ๋ฆฌ ๋ชจ๋๊ฐ ์์ ๋ด์ฌ์๋ผ๋ ์ฌ์ค์ ๊ฐ์ํ ๋ ์ ์งํ๋๊ณ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ๋๋ ์ฐ๋ฆฌ๊ฐ ๋ฐฐ์ธ ์ ์๋ ๊ฒ๊ณผ ์ฐ๋ฆฌ๊ฐ ๊ฒช์๋ ๋ฌธ์ ๋ฅผ ํผํ๊ธฐ ์ํด ์คํ ๊ฐ๋ฅํ ํญ๋ชฉ์ ๋ณด๋ ค๊ณ ๋ ธ๋ ฅํ๊ณ ์์ต๋๋ค. ์ด ํญ๋ชฉ์ ๋๋ถ๋ถ์ ์ ์ง ๊ด๋ฆฌ์์ ๋ ๋ง์ ์์ ์ ํฌํจํ๋ฉฐ ๋ด๊ฐ ์ด ๋ชจ๋ ์๊ฐ์ ์ด ๋ฌธ์ ์ ๋ํด ์๊ฐํ๋ ์ฃผ๋ ์ด์ ๋ ์ด๊ฒ์ ๋ณ๊ฒฝ ๊ด๋ฆฌ๋ฅผ ์ํํ๋ ๋ฐฉ๋ฒ์ ๋ํ ์ฌ๋ฏธ์๋ ํ์ต ์ฐ์ต์ผ๋ก ๋ณด๊ธฐ ๋๋ฌธ์ ๋๋ค.
์ฌ: ๋ณด์กฐ๊ธ
๋ค, ํ์คํ ๊ต๋ถ๊ธ/๊ฒฝํ์ด ๋ ๋ง์ ์ฌ๋์ ์ฌ์ฉํ์ฌ ์ปค๋ฎค๋์ผ์ด์ , ๋กค์์ ๋ฐ ํ ์คํธ ์ธํ๋ผ๋ฅผ ํ์ ํ๋ ๋ฐ ๋์์ด ๋ ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ๊ทธ๋ฌ๋ ๋ด๊ฐ ๋ณด์ฅํ ์ ์๋ ๋ณด๋ค ์์ ์ ์ธ ์ฃผ๋น ์๊ฐ์ด ์๊ธฐ ๋๋ฌธ์ ๋ณด์กฐ๊ธ ์์ฑ ์์ ์ ์ํํ๊ณ ๋ด๊ฐ ์ง๊ธ ํ ์ ์๋ ๊ฒ๋ณด๋ค ๋ ๊ตฌ์ฒด์ ์ธ ๊ณํ์ ์์๋ผ ์ฌ๋์ด ํ์ํฉ๋๋ค.
FWIW, PSF๋ PyPA/ํจํค์ง ๊ด๋ จ ์ปค๋ฎค๋์ผ์ด์ ์ Changeset Consulting๊ณผ ํ์ ํ๋ ๋ฐ ๋์์ด ๋๋ ์ง์์ ์ธ ๊ณ์ฝ์ ๋งบ๊ณ ์์ผ๋ฏ๋ก ์ด๋ฅผ ํ์ฉํ ์ ์์๊น์?
๋ํ์ ๋ ๋ง์ ์ฌ๋๋ค์ ์ถ๊ฐํ๊ธฐ ์ํ ๊ณํ ๋จ๊ณ์ ์ด๊ธฐ ๋จ๊ณ์ด๊ธฐ ๋๋ฌธ์ ์๋์ ์ผ๋ก ์ฌ๋๋ค์ @-์ธ๊ธํ์ง ์์ต๋๋ค.
๊ฐ์ฃผ:
๋๋ ์ด๋ฆฌ๊ณ ๋ฉ์ฒญํ๊ณ ๋๊ด์ ์ด์ผ
:-) ๊ทธ๋ฆฌ๊ณ ๋๋ ๋๋๋ก ๋๋ฌด ๋๊ณ ์ง์น๊ณ ๋์์ ์ ๋๋ค. ๋น์ ์ ์ฒ ํ๊ณผ ํจ๊ป ๊ฐ์, ํจ์ฌ ๋ ์ข๊ฒ ๋ค๋ฆฐ๋ค :-)
๋ถ๋ช ํ! ์ด๊ฒ์ด ๋ด๊ฐ #5051์ ์์ ๋๋ ์ด์ ์ 80%์ ๋๋ค. ์ ๋ ๋น๋ ๋ก์ง์ ์ถ์ ๋ ๋ง์ ๊ธฐ์ ์ ๋ถ์ฑ๋ฅผ ๊ฐ์ ์ฌ์ฌ์ฉ(์ ๋ถ?)ํ๊ธฐ๊ฐ ๋ ์ฝ๋๋ก ํ๋ ค๊ณ ํฉ๋๋ค.
์์ฒญ๋!
[sumanah] pradyunsg: ๋ฆฌ์กธ๋ฒ์์ ๋ ๋ง์ ์์ ์ ๋ ๋นจ๋ฆฌ ์๋ฃํ ์ ์๋๋ก pip ๋ฐ ํจํค์ง ์ปค๋ฎค๋ํฐ์์ ํ ์ ์๋ ์ผ์ด ์์ต๋๊น?
....
[pradyunsg] ์ฌ์ค, ์ง๊ธ https://github.com/pypa/pip/issues/6536 ์ ๋ํ ์ ๋ ฅ์ด ์์ ์ ์ ๊ทผํ๋ ๋ฐฉ๋ฒ/์ฌ๋๋ค๋ก๋ถํฐ ํผ๋๋ฐฑ์ ๋ฐ๋ ๋ฐฉ๋ฒ ๋ฑ์ ํ์ ํ๋ ๋ฐ ๋์์ด ๋ ๊ฒ์ ๋๋ค.
....
[sumanah] pradyunsg: re: New Resolver: Rollout, Feedback Loops and Development Flow #6536 -- ์ํ๋ ์ ๋ ฅ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. ๊ธฐ๋ฅ ํ๋๊ทธ ์ ๊ทผ ๋ฐฉ์์ด ์ข์ ์์ด๋์ด์ธ๊ฐ์? pip GitHub ๋ฌธ์ ๊ฐ ์๋ ๋ค๋ฅธ ๋ฉ์ปค๋์ฆ์ ํตํด ํผ๋๋ฐฑ์ ๋ฐ๋ ๊ฒ์ด ์ข์ ์๊ฐ์ ๋๊น? ์ค์ ์๋ ํ ์คํธ ๋ฐ ๊ฐ๋ ฅํ ํ ์คํธ ์ธํ๋ผ ๊ตฌ์ถ ๋ฐ/๋๋ ์ฌ์ ์๋ฐฉ์ ํต์ ์ ์ป๊ธฐ ์ํด ๋ณด์กฐ๊ธ ๋๋ ์ด์ ์ ์ฌํ ๊ฒ์ ๋ฐ๋ ๊ฒ์ด ์ข์ ์๊ฐ์ ๋๊น?
...
[pradyunsg] ๋ค -- ์ ๊ฐ ์ ์ํ๋ ์์ด๋์ด๊ฐ ์ข์์ง. ๋ํ ๋กค์์ + ํผ๋๋ฐฑ์ ๋ณด๋ค ์ํํ๊ฒ ํ๋ ๋ฐ ๋์์ด ๋ ์ ์๋ ์ถ๊ฐ ์์ด๋์ด/์ ๊ทผ ๋ฐฉ๋ฒ/์๊ฐ์ ๊ต์ฅํ ๊ฒ์ ๋๋ค.
๊ทธ๋์:
๊ธฐ๋ฅ ํ๋๊ทธ ์ ๊ทผ ๋ฐฉ์์ด ์ข์ ์์ด๋์ด์ ๋๊น? ์.
pip GitHub ๋ฌธ์ ๊ฐ ์๋ ๋ค๋ฅธ ๋ฉ์ปค๋์ฆ์ ํตํด ํผ๋๋ฐฑ์ ๋ฐ๋ ๊ฒ์ด ์ข์ ์๊ฐ์ ๋๊น? ์. ๋ ์ ๋ฌธ์ ์ธ ์ฌ์ฉ์๋ก๋ถํฐ ๋ ๊ตฌ์กฐํ๋ ๋ฒ๊ทธ ๋ณด๊ณ ์๋ฅผ ์๋ฝํ๋ ์๋ํ๋ ๋ฐฉ๋ฒ์ ์ฐพ์์ผ ํฉ๋๋ค.
๋ณด๋ค ๊ฐ๋ ฅํ ํ ์คํธ ์ธํ๋ผ๊ฐ ๋์์ด ๋ ๊น์? ์, ๋ง์ด ์์ต๋๋ค. ํ์์๊ฐ ์ฐ๋ฆฌ ๋ฅผ ๋์ธ ์ ์๋ ๊ณณ์ ๋๋ค.
PyPA ์กฐ์ /ํต์ ์ ๋๊ธฐ ์ํด PSF์ ๊ธฐ์กด ๊ณ์ฝ์ ๋ฐ๋ผ Changeset(์ )์ด ์ฌ์ ์์ฌ ์ํต์ ํตํด Pip๋ฅผ ์ฌ์ฉํ์ฌ ๋ณด๋ค ์ฒด๊ณ์ ์ธ ์ค์ ์๋ ํ ์คํธ๋ฅผ ์ป์ ์ ์์ต๋๊น? ์ด ๋กค์์์ ์์ํ ๋๊น์ง ๊ณ์ฝ์ ๋จ์ ์๊ฐ์ด ์๋ค๊ณ ๊ฐ์ ํ๋ฉด ๊ทธ๋ ์ต๋๋ค.
์ฌ์ฉ์ ๊ฒฝํ, ์ปค๋ฎค๋์ผ์ด์ /ํ๋ณด ๋ฐ ํ ์คํธ์ ๋ํด ๋ ๋ง์ ๋์์ ๋ฐ๊ธฐ ์ํด ๋ณด์กฐ๊ธ ๋๋ ์ด์ ์ ์ฌํ ๊ฒ์ ๋ฐ๋ ๊ฒ์ด ์ข์ ์๊ฐ์ ๋๊น? ์. PSF ๋ณด์กฐ๊ธ ์ NLNet ๋ณด์กฐ๊ธ ( 30,000์ ๋ก ๋ฏธ๋ง ์์ฒญ), ์ ์ฌ์ ์ผ๋ก ๊ณผํ ๋ณด์กฐ๊ธ์ ์ํ Chan Zuckerberg ํ์ ์คํ ์์ค ์ํํธ์จ์ด ๋ฐ Mozilla์ MOSS ์ ๋ง์ฐฌ๊ฐ์ง๋ก ์ ์ฌ์ ์ผ๋ก ๊ด์ฌ ์ด ์์ ๊ฒ์ ๋๋ค. Packaging WG ๋ ๋ฑ๋ก ์ ์ฒญ์๊ฐ ๋ ์ ์์ต๋๋ค. @pradyunsg ๋๋ @pfmoore ๊ฐ "์, ํฅ๋ฏธ๋กญ๊ฒ ๋ค๋ฆฌ๋ค์"๋ผ๊ณ ๊ณ ๊ฐ๋ฅผ ๋๋์ด๊ณ ์ถ๋ค๋ฉด WG์ ํจ๊ป ์ด๋ฌํ ๊ฐ๋ฅ์ฑ์ ์กฐ์ฌํ ์ ์์ต๋๋ค.
@pradyunsg ๋๋ @pfmoore ๊ฐ "์, ํฅ๋ฏธ๋กญ๊ฒ ๋ค๋ฆฌ๋ค์"๋ผ๊ณ ๊ณ ๊ฐ๋ฅผ ๋๋์ด๊ณ ์ถ๋ค๋ฉด,
ํ์คํ ํฅ๋ฏธ๋กญ๊ฒ ๋ค๋ฆฝ๋๋ค :-)
@pradyunsg ๋๋ @pfmoore ๋ "์, ํฅ๋ฏธ๋กญ๊ฒ ๋ค๋ฆฌ๋ค์"๋ผ๊ณ ๊ณ ๊ฐ๋ฅผ ๋๋์ด๊ณ ์ถ์ดํฉ๋๋ค.
_ ๋๋๋๋ _ ์, ํฅ๋ฏธ๋กญ๊ฒ ๋ค๋ฆฝ๋๋ค.
๋ณด๋ค ๊ฐ๋ ฅํ ํ ์คํธ ์ธํ๋ผ๊ฐ ๋์์ด ๋ ๊น์? ์, ๋ง์ด ์์ต๋๋ค. ํ์์๊ฐ ์ฐ๋ฆฌ ๋ฅผ ๋์ธ ์ ์๋ ๊ณณ์ ๋๋ค.
@brainwane https://github.com/pypa/integration-test๋ ๊ด๋ จ์ด ์์ต๋๋ค. ์ด ์ค์ ์ ํ๋ ๊ฒ์ด ์๊ธ ์กฐ๋ฌ์ ์ํ ๋ ๋ค๋ฅธ ์ ์ฌ์ ์์ญ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค . https://wiki.python.org/psf/Fundable%20Packaging%20Improvements์ ์ถ๊ฐํด์ผ ํฉ๋๋ค.
ํ์ธ! ์ ๋ ํจํค์ง ์ํน ๊ทธ๋ฃน์ ํตํด CZI ๋ณด์กฐ๊ธ์ ์ ์ฒญํ๋ ๊ฒ์ ๋ํด PSF ๋ฐ Chan Zuckerberg Initiative ์ฌ๋๋ค๊ณผ ์ด์ผ๊ธฐํ๊ธฐ ์์ํ์ต๋๋ค. ์๋ก์ด pip ๋ฆฌ์กธ๋ฒ๊ฐ ์ค์ํ ์ด์ ์ ๋ํ ๋ช ๊ฐ์ง ์ธ๋ถ ์ ๋ณด๋ฅผ Fundable Packaging Improvements ํ์ด์ง ์ ์ถ๊ฐํ๊ณ integration-test
ํ๋ก์ ํธ๋ฅผ ํด๋น ๋ชฉ๋ก์ ์ถ๊ฐํ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ ๋ ์ฐ๋ฆฌ์ ๋ณต์กํ ์ฌ-์จ-์ปค๋งจ๋-๋ผ์ธ ํจํค์ง ๋ฐฐํฌ/์ค์น ๋๊ตฌ ์ฒด์ธ์ ์กฐ์ฌํ๊ณ , ๋ฌด์จ ์ผ์ด ์ผ์ด๋๊ณ ์๊ณ ์ด๋ค ์ผ์ด ์ผ์ด๋์ผ ํ๋์ง์ ๋ํ ๋ฉํ ๋ชจ๋ธ์ ์ดํดํ๊ธฐ ์ํด ์ฌ์ฉ์์ ๋ํํ ์ ์๋ ์ฌ์ฉ์ ๊ฒฝํ ์ ๋ฌธ๊ฐ์ ์ด๋ฆ์ ๋ชจ์ผ๊ธฐ ์์ํ์ต๋๋ค. , ์ ์ง ๊ด๋ฆฌ์์๊ฒ ์กฐ์ธํฉ๋๋ค.
MOSS, CZI ๋๋ NLNET์์ ๋ณด์กฐ๊ธ์ ํตํด ๋์ ๋ฐ๋๋ค๋ฉด ๋์ ๋ฐ์ ์ ์์ ๊ฒ์ ๋๋ค. ๋น ๋ฅด๋ฉด 10์์ด ๋ ๊ฒ์ ๋๋ค. PSF์์ ์ง์ ๋ณด์กฐ๊ธ์ ๋ฐ๋ ๊ฒ์ด ๋ ๋น ๋ฅผ ์ ์์ง๋ง "ํ์ฌ ์ฐ๋ฆฌ์ ์ด์ ์ Python ์ํฌ์ต, ์ปจํผ๋ฐ์ค(ํนํ ์ฌ์ ์ง์) ๋ฐ Python ๋ค์์ฑ/ํฌ์ฉ์ฑ ๋ ธ๋ ฅ์ ๋๋ค."
ํ ๊ฐ์ง ๊ณ ๋ ค ์ฌํญ์ Brett์ ์ด์ ์์ํ์ ์ฌ๋๋ค์ด ํ๋ก์ ํธ ๊ด๋ฆฌ์ ํฌ์ํ๊ณ ์ด๋ฌํ ํ๋ก์ ํธ(์ ๋ณ ๋ถ๋ฅ, ํ๋ก์ ํธ ๊ด๋ฆฌ ๋ฑ)๋ฅผ ๊ด๋ฆฌํ๊ธฐ ์ํ ์ผ์ข ์ ์ ๋ฃ ์์ ํ๋ณด์ ๋ํด ์ด์ผ๊ธฐํ๊ณ ์์ผ๋ฉฐ PSF์ ์ด์ผ๊ธฐํ๊ณ ์๋ค๋ ๊ฒ์ ๋๋ค. ๊ณง์ฅ. ์ฅ๊ธฐ์ ์ธ ์ง์ ๊ฐ๋ฅ์ฑ์ ๋ํ ์ด์ผ๊ธฐ๋ฅผ ๋ค์๊ณ ๊ฑฐ๊ธฐ์ ์ฐธ์ฌํ๋ ๊ฒ์ด ์ข์ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ์ฐ๋ฝํ์ฌ ๊ทธ๋ค์ด ๋ฌด์์ ํ๊ณ ์๊ฑฐ๋ ์๊ฐํ๊ณ ์๋์ง ์์๋ด๋ ๊ฒ์ด ๊ฐ์น๊ฐ ์์ ์ ์์ต๋๋ค.
๊ธฐ๋ฅ ํ๋๊ทธ๊ฐ ์ข๊ณ ์ตํธ์ธ์ด ์ข์ต๋๋ค. ๊ณ ๋ คํ ์ ์๋ ํ ๊ฐ์ง๋ ์ฌ์ฉ์์๊ฒ ๋ฆฌ์กธ๋ฒ๋ฅผ ์ํํด ๋ณด๋ผ๊ณ ๋ฌด์์๋ก ํ๋กฌํํธํ ์ ์๋์ง ์ฌ๋ถ์ ๋๋ค(์: ๋งค์ฐ ๋งค์ฐ ๋๋ฌผ๊ฒ ํ ๋ฒ์ ์ค์นํ๋ ๊ฒฝ์ฐ์๋ง, ์ฆ ์๊ตฌ์ ์ผ๋ก ์ผ๋๋ก ๊ฐ์ํ์ง ์์). ๊ทธ๋ฐ ๋ค์ ๋ฆฌ์กธ๋ฒ๊ฐ ์ผ๋ง๋ ๋์์ด ๋์๋์ง ๋ํ๋ผ ์ ์์ต๋๋ค(์: ๋ฆฌ์กธ๋ฒ์๊ฒ ์ด๋ค ์ญํ ์ ํ๋์ง, ์ด๋ค ์ถฉ๋์ด ๋ฐ์ํ์ฌ ํด๊ฒฐํ์ต๋๊น?)
์๋ฅผ ๋ค์ด ์๋ฐ ์คํฌ๋ฆฝํธ๋ ๋ น์์ ์ค๋ ์ฌ๋๋ค์ ์ผ์ข ์ ์ ๊ธ ํ์ผ๋ ๊ธฐ๋ํ๋ฏ๋ก ๊ณ ๋ คํด์ผ ํ ์ฌํญ์ผ ์ ์์ต๋๋ค.
๋ฐ์ด๋ค์ด์ ์ฃ์กํฉ๋๋ค. ์์ผ๋ก ๋์๊ฐ๊ฒ ๋์ด ๊ธฐ์ฉ๋๋ค!
๋ด ๊ฐ์ธ์ ์ธ ๋๋์ "์ฌ์ฉ ๊ฐ๋ฅํ๊ฒ ํ๊ณ ํผ๋๋ฐฑ์ ์์ฒญํ๋ ๊ฒ"์ด โโ์ฐ๋ฆฌ๊ฐ ์ด์ ์ ์๋ํ ๊ฒ์ ๋ํ ํฅ๋ฏธ๋ก์ด ๋ณํ์ด์ง๋ง ๊ถ๊ทน์ ์ผ๋ก ํฐ ์ฐจ์ด๊ฐ ์์ ๊ฒ์ด๋ผ๋ ๊ฒ์ ๋๋ค. ๋๋ฌด ๋ง์ ์ฌ๋๋ค์ด ์๋ํ๋ ๋น๋ ํ์ดํ๋ผ์ธ์์ ๊ธฐ๋ณธ ์ต์ ์ด ์๋ ์ต์ pip๋ฅผ ์ฌ์ฉํ๊ณ ์ pip ๋ฒ์ ์ผ๋ก ์ด๋ํ๊ธฐ ์ ์ ํ ์คํธํ์ง ์์ต๋๋ค(PEP 517์์ ์ด๋ฅผ ํ์ธํ์ต๋๋ค).
๋ฐ๋ก ์ด๋ฐ ์ด์ ๋ก ์ธํด ์ผ๋ถ PEP 517 ๋ฌธ์ ์ ์๋ฌ๋ฆฐ ์ฌ๋ ์ค ํ ๋ช
์ผ๋ก์ ์ ๋ ์ค์ ๋ก ํ
์คํธ๋ฅผ ์ํ ์ตํธ์ธ ๋ฐฉ์์ ๋ณด๊ณ ์ถ์ต๋๋ค. ํ์ง๋ง --no-use-pep517
ํ๋๊ทธ ๋ฌธ์ ์ดํ์ ๋ด๊ฐ ํ ์ ์๋ ๋ชจ๋ python ํจํค์ง ๋ด์ค ์์ค๋ฅผ ๊ตฌ๋
ํ๊ธฐ ๋๋ฌธ์ ์ด๋ฐ ์ข
๋ฅ์ ๊ฒ๋ค์ ๋ํด์๋ง ์๊ณ ์์ต๋๋ค. ๋ด๊ฐ ๋งํ๋ ค๋ ๊ฒ์ ์ด๋ฐ ์ข
๋ฅ์ ๋ด์ค๋ฅผ ํผ๋จ๋ฆฌ๋ ๊ฒ์ด ์ด๋ ต๊ณ ํผ๋๋ฐฑ์ ๋ฐ๊ธฐ ์ด๋ ค์ด ์ด์ ์ผ ๊ฒ์
๋๋ค.
์ ๋ณด๊ฐ ๋ ์ ๋ณด๊ธ๋ ์ ์๋ค๋ฉด ๋ ๋ง์ ์ฌ๋๋ค์ด ์ด๊ฒ์ ๊ด์ฌ์ ๊ฐ์ง ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ๊ทธ๊ฒ์ด ๋น์ ์ด ์ฐพ๊ณ ์๋ ์์์ด ํ์ฉํ๋ ๊ฒ์ ๋๊น?
jriddy๊ฐ ๋งํ๋ ๊ฒ์ ๊ณ์ํ๊ธฐ ์ํด, ์ฌ๋๋ค์ด ๋ค์ํ ๊ธฐ๋ฅ ํ๋๊ทธ์ ๋ํด ์์์ผ ํ๊ณ , ๊ฐ๊ฐ์ ์ ํ๋๊ทธ์ ๋ํด CI ์ค์ ์ ๋ณ๊ฒฝํด์ผ ํ๋ ๊ฒฝ์ฐ ๋ค์ํ ๊ธฐ๋ฅ ํ๋๊ทธ๋ฅผ ํ ์คํธํ๋๋ก ํ๋ ๊ฒ์ด ์ ๋ง ์ด๋ ค์ธ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
๊ทธ๋ฌ๋ ํจ์ฌ ๋ ํ ์ ์๋ ๊ฒ์ฒ๋ผ ๋ณด์ด๋ ๊ฒ์ _ํ๋์_ ๊ธฐ๋ฅ ํ๋๊ทธ๋ง ์๋ฉด ํ ์คํธํด์ผ ํ๋ ๋ณ๊ฒฝ ์ฌํญ์ ๊ด์ ์์ "๋ค์์ ๋์ฌ ๋ด์ฉ"์ ํ ์คํธํ๋ ๊ฒ์ ๋๋ค. ๊ทธ๋ฐ ๋ค์ ์ฌ๋๊ณผ ํ์ฌ๋ CI๋ฅผ ์ค์ ํ์ฌ CI๋ ์คํํ ์ ์์ต๋๋ค(์ค๋ฅ๋ก ์ธํ ๋น๋ ์คํจ ์์ด). ๋๋ Rust์ ๋น์ทํ ๊ฒ์ ์๊ฐํ๊ณ ์๋๋ฐ, ์ด๋ฐ ์ข ๋ฅ์ ๋ณ๊ฒฝ์ด ๋๊ตฌ ์ฒด์ธ์ "๋ฒ ํ" ์ฑ๋์์ ๊ตฝ๊ณ , ๋ค๋ฅธ CI ์ฑ๋์ ์ค์ ํ์ฌ ๋ฒ ํ ๋๊ตฌ ์ฒด์ธ์์ ์์ ์ ์คํํ๊ณ ์ค๋ฅ๋ฅผ ๋๊ตฐ๊ฐ์๊ฒ ๋ณด๋ด๋ ๊ฒ์ด ์ฝ์ต๋๋ค.
ํต์ฌ์ ์๋ก์ด ๊ฐ๋ณ ๊ธฐ๋ฅ ํ๋๊ทธ์ ๋ํด ์ง์์ ์ผ๋ก ํ์ตํ๊ฑฐ๋ CI ์ค์ ์ ์์ ํ๊ฑฐ๋ ์๋์ผ๋ก ํ ์คํธํ๋ ๋์ ์ด ์ค์ ์ ๋ํด ํ์ตํ๊ณ _ํ ๋ฒ๋ง_ ์ํํด์ผ ํ๋ค๋ ๊ฒ์ ๋๋ค.
๊ทธ๋ฌ๋ ํจ์ฌ ๋ ํ ์ ์๋ ๊ฒ์ฒ๋ผ ๋ณด์ด๋ ๊ฒ์ ์์์ผ ํ ๊ธฐ๋ฅ ํ๋๊ทธ๊ฐ _ํ๋๋ฟ์ธ ๊ฒฝ์ฐ,
์ด๋ค ์๋ฏธ์์ ์ด๊ฒ์ ์ด๋ฏธ --pre
ํํ๋ก ์กด์ฌํ์ง ์์ต๋๊น? pip์ ๋ฒ ํ ๋ฆด๋ฆฌ์ค ์ฑ๋์ด pip install --upgrade --pre pip
๋ฅผ ์คํํ๋ ๋ฌธ์ ์ผ ์ ์์ต๋๊น?
๋ฐ์ด๋ค์ด์ ์ฃ์กํฉ๋๋ค. ์์ผ๋ก ๋์๊ฐ๊ฒ ๋์ด ๊ธฐ์ฉ๋๋ค!
@techalchemy ์ ๋ฐ, ๋ชจ๋ ์ฌ๋๋ค ์ค _๋น์ _์ ๋ถ๋ช ํ ์ด ํ ๋ก ์์ ํฌ๊ตฌํ ๊ฒ์ ๋ํด ๋ฏธ์ํดํ ํ์๊ฐ ์์ต๋๋ค.
๊ทธ๊ฒ์ด ๋น์ ์ด ์ฐพ๊ณ ์๋ ์์์ด ํ์ฉํ๋ ๊ฒ์ ๋๊น?
์ด๋ ์ ๋ ๊ทธ๋ ์ต๋๋ค.
reg: ๋ฒ ํ ๋ฆด๋ฆฌ์ค/pip์ฉ "์ฑ๋"
@jriddy ์ @chrish42๋ฅผ ๋ถ๋ฌ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. ๋๋ ์ผ๋ฐ์ ์ผ๋ก ๊ทธ๊ฒ์ด ํ์คํ ์ ์ฉํ๊ณ ์ค์ํ ๋ํ๋ผ๊ณ ์๊ฐํ์ง๋ง ์ด ๋ฌธ์ ์ ๋ํด์๋ ์ฝ๊ฐ OT๋ผ๊ณ ์๊ฐํฉ๋๋ค. ์ด์จ๋ ์ฌ๊ธฐ์ ํ ๋ฒ ์๋ตํ๊ฒ ์ต๋๋ค. ์ด ๋ฌธ์ ์ ๋ํด ๋ ๋ ผ์ํ๊ณ ์ถ๋ค๋ฉด ์ ๋ฌธ์ ๋ฅผ ์ด์ด ๋ณด๊ฒ ์ต๋๋ค.
์ฐ๋ฆฌ๋ ๊ณผ๊ฑฐ์ ์ด๊ฒ์ ์๋ํ์ง๋ง ๊ฐ์ฅ ์ต๊ทผ์๋ pip 10์ผ๋ก ์๋ํ์ง๋ง ์ ๋์ง ์์์ต๋๋ค. ๋๋ ๊ทธ๊ฒ์ด ์์ผ๋ก ์ผ๋ง๋ ์ ์๋ํ ์ง ์ฝ๊ฐ ํ์์ ์ด์ง๋ง, ์ฐ๋ฆฌ ํ๋ก์ธ์ค์ ์ผ๋ถ ๋ณ๊ฒฝ์ผ๋ก ์ธํด ์ด ์์
์ด ์ํํ๊ฒ ์งํ๋ ์ ์๋ค๊ณ ์์ํ ์๋ ์์ต๋๋ค. "๋ฒ ํ ์ ์ฉ" ๊ธฐ๋ฅ ์ธํธ๋ฅผ ๋ง๋ค ์ ์์๊น์? -X all
๋ฅผ #5727์ ๊ตฌ๋ฌธ์ผ๋ก ์์ํ์ต๋๋ค. ์ด ๋กค์์ ๊ณํ์ ์ผ๋ถ๋ก ์ ํํ ์ ์์๊น์? ์ดํฌ. ์ฐ๋ฆฌ๋ ์ด๊ฒ์ ์์๋ด๊ธฐ ์ํด ์๊ฐ๊ณผ ์๋์ง๋ฅผ ํฌ์ํด์ผ ํ ๊ฒ์
๋๋ค. :)
https://github.com/pypa/packaging-problems/issues/25#issuecomment -520167480์์ ์ธ๊ธํ๋ฏ์ด ์๋ฒ๊ฐ pip ๊ฒฝํ์ ๋ณ๊ฒฝํ๋ ๋ฐฉ๋ฒ์ ๋ํ ํตํฉ๋ ์ค๋ช ์ ๊ฐ๋ ๊ฒ์ด ์ค์ํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ๋ง์ ์ฌ๋๋ค์ด ๋ ์๊ฒฉํ ์์คํ ์ผ๋ก์ ์ ํ์ ์ข์ ํ ๊ฒ์ ๋๋ค(์ ์ฒด์ ์ผ๋ก ๋ ์์ ์ ์ด์ด์ผ ํ์ง๋ง ํ์ฌ ์ฐจ๋จ๋์ง ์๋ ๊ณณ์์ ์ฐจ๋จ๋ ๊ฒ์ ๋๋ค.
์ํฉ์ด ์ด๋ป๊ฒ ๋ฐ๋์๊ณ ์ ์ข์ ๋ณํ์ธ์ง์ ๋ํ ์ค์ฌ ์ค๋ช ์ด ์์ผ๋ฉด ํ๋ ์ฌ๋๋ค์๊ฒ ํจ์ฌ ๋ ๊ฐ๋จํ๊ฒ ๋์ํ ์ ์์ต๋๋ค. ๋งํฌ๋ฅผ ๊ฒ์ํ๊ณ ์ถ๊ฐ ์ง๋ฌธ์ด ์๋์ง ํ์ธํ์ธ์.
ํ๋ฆฌ๋ฆด๋ฆฌ์ฆ๋ ์ข์ ์๊ฐ์ ๋๋ค. conda์๋ ์ํํ ์ฑ๋์ธ conda-canary๊ฐ ์์ต๋๋ค. ์ฐ๋ฆฌ๋ ์ฌ๋๋ค์ด conda ๋ณ๊ฒฝ์ผ๋ก ์ธํด ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋์ง ํ์ธํ๋ ๋ฐ ๋์์ด ๋๋ ๋ฐฉ์์ผ๋ก canary์ ๋ํด ์คํํ๋๋ก CI ์์ ์ ์ค์ ํ๋๋ก ๊ถ์ฅํฉ๋๋ค. ์ด์์ ์ผ๋ก๋ ํด๋น ๋ฒ์ ์ ์ถ์ํ๊ธฐ ์ ์ ์๋ ค์ค๋๋ค. ๊ทธ ์ฑ๋์ ๊ฝค ๋น์ฐธํ ์คํจ์์ต๋๋ค. ์ฌ๋๋ค์ด ์ ๋ง๋ก ๊ทธ๊ฒ์ ์ฌ์ฉํ๋ ๊ฒ์ฒ๋ผ ๋ณด์ด๋ ์ ์ผํ ์๊ฐ์ ๊ทธ๋ค์ด ๊ณ ๊ตฐ๋ถํฌํ๋ ์ผ๋ถ ๋ฒ๊ทธ๋ฅผ ์์ ํ๊ธฐ ์ํด ์ต์ ๋ฆด๋ฆฌ์ค๋ฅผ ์ป๊ณ ์ถ์ ๋์ ๋๋ค. ์ฐ๋ฆฌ๋ ์๋ํ ์ผ๋ฆฌ ์ด๋ตํฐ๋ก๋ถํฐ ๋ง์ ๋ณด๊ณ ๋ฅผ ๋ฐ์ง ๋ชปํ์ต๋๋ค. ๋๋ ์ฌ์ ํ ํ๋ฆฌ๋ฆด๋ฆฌ์ฆ๊ฐ ์ข์ ์๊ฐ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ๋ฆด๋ฆฌ์ค๊ฐ ์ ๋๋ก ์งํ๋์ง ์๊ณ ์ฌ๋๋ค์ด 700๊ฐ์ ๊ด๋ฆฌ ๋ ธ๋๋ฅผ ๊นจ๋จ๋ฆฐ ๊ฒ์ ๋ํด ๋น์ ์๊ฒ ํ๋ฅผ ๋ผ ๋ "๊ธ์์, ์ฐ๋ฆฌ๊ฐ ๊ทธ๊ฒ์ ์ถ์ํ๊ธฐ ์ ์ ์ผ์ฃผ์ผ ๋์ ์ฌ์ฉํ ์ ์์์ต๋๋ค. ์ ๊ทธ๋ ์ง ์์ต๋๊น?"๋ผ๊ณ ๋งํ ์ ์๊ธฐ ๋๋ฌธ์ ๋๋ค. 700๊ฐ ๋ ธ๋์ ๋ฐฐํฌํ๊ธฐ ์ ์ ์ด๋ฌํ ํญ๋ชฉ์ ํ ์คํธํ๊ณ ์์ต๋๊น?" ๋น์ ์ ์ฌ๋๋ค์๊ฒ ์ผ์ ๋ ์ํ ์ ์๋ ๊ธฐํ๋ฅผ ์ฃผ๊ณ ์์ต๋๋ค. ๊ทธ ๊ธฐํ๋ฅผ ๋๊ธฐ๋ ๊ฒ์ ๊ทธ๋ค์๊ฒ ๋ ํฐ ๊ณ ํต์ ์๋ฏธํ๋ค๋ ๊ฒ์ ๊นจ๋ซ๋๋ก ๋์์ฃผ์ญ์์ค. ์ด๋ ๊ฐ์น ์๋ ํฌ์์ด๋ฉฐ CI์ ์ผ๋ถ๋ก ์ํํ๋ ๊ฒฝ์ฐ ์ค์ ์ธ์๋ ์๊ฐ์ด ์ ํ ๋ค์ง ์์ต๋๋ค.
ํ๋๊ทธ์ ๋ํด: ๊ตฌ์ฑ ์ต์ (ํ๋๊ทธ์ ์ถ๊ฐ๋ก)์ด ์๋ ๊ฒ์ด ๋ ๋ซ๋ค๊ณ ์๊ฐํฉ๋๋ค. ๋๋ ํญ์ ๊น๋ฐ์ ๋๊ธฐ๊ณ ์ถ์ง ์์ต๋๋ค. pip์ ์ด ๊ธฐ๋ฅ์ด ์๋์ง ํ์คํ์ง ์์ต๋๋ค. ๋ ์๊ตฌ์ ์ธ ์ค์์น๋ฅผ ์ํ๋ ์ฌ๋๋ค์๊ฒ ํด๋น env var๋ฅผ ์ฌ์ฉํ๋ผ๊ณ ๋ง์ํด ์ฃผ์๊ฒ ์ต๋๊น?
๊น๋ฐ์ ๊ดํ์ฌ:
pip์ CLI ์ต์ ์ ์ ์ ํ ์ด๋ฆ์ผ๋ก ๊ตฌ์ฑ ํ์ผ ์ต์ ๋ฐ ํ๊ฒฝ ๋ณ์์ ์๋์ผ๋ก ๋งคํ๋ฉ๋๋ค.
@msarahan ์๊ฐ ์ ๋ด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. ๊ฐ์ฌํฉ๋๋ค! :)
๊นจ์ง ์ข
์์ฑ์ ๋ฌด์ํ๋ "๋ด๊ฐ ์ํ๋ ๋๋ก ํ๋๋ก ํ์ธ์" ์ต์
๊ณผ ๊ด๋ จํ์ฌ ๊ธฐ๋ณธ์ ์ผ๋ก ํ์ธ ํ๋ก๊ทธ๋จ์ด ์ผ์ง ํ(์: ์์ --avoid-conflicts
๋ฅผ ์ตํธ์ธ์ผ๋ก ์ฌ์ฉํ๋ฉด ๊ฒฐ๊ตญ --no-avoid-conflicts
๋ก ์ตํธ์์์ผ๋ก ์ด๋ํ์ง๋ง ์ฒ์๋ถํฐ ๋ ์ต์
์ ๋ชจ๋ ์๋ฝ)
๋ํ --ignore-installed
๊ฐ ์๋ฒ์ ์ํธ ์์ฉํ๋ ๋ฐฉ์์ ๊ณ ๋ คํ๊ณ ์ถ์ ๊ฒ์
๋๋ค. ์๋ฒ๊ฐ ์ ๋ฌ๋๋ฉด ์ด๋ฏธ ์ค์น๋ ํจํค์ง์ ๋ํ ๋ชจ๋ ์๊ตฌ ์ฌํญ์ ๋ฌด์ํด์ผ ํฉ๋๋ค.
๊ทธ ์ธ์๋ ๋ฆฌ์กธ๋ฒ ํตํฉ์ ๋ ์ฝ๊ฒ ๋ง๋ค๊ธฐ ์ํด ๋ ์์ ๋ฆฌํฉํ ๋ง ํจ์น๋ก ์ฒ๋ฆฌํ๋ ๊ฒ์ด ์ข์ ๋ฐฉ๋ฒ์ ๋๋ค.
@ncoghlan ํด์๊ธฐ์์ "์ ํ ํด์ "๋ ๋ฌด์์ ์๋ฏธํฉ๋๊น? ์์กด์ฑ ํด๊ฒฐ(๋ฐ๋ผ์ ๋ฆฌ์กธ๋ฒ)์ ์์ ํ ํผํ๋ ๊ฒ์ --no-deps
์
๋๋ค. "์ด ํจํค์ง์ ๋ํ ๋ฒ์ ์ถฉ๋ ๋ฌด์" ๋๋ ๊ทธ์ ๊ด๋ จ๋ ๋ด์ฉ์ด ํ์ํ๋ค๋ ๊ฒ์ ์ดํดํฉ๋๋ค.
๊ฐ์ธ์ ์ผ๋ก ์ ๋ "์ต์ด ํ์ธ" ํด๊ฒฐ ๋ ผ๋ฆฌ๋ฅผ ์ ํด๊ฒฐ ํ๋ก๊ทธ๋จ์ผ๋ก ์ ํํ๋ ๊ธฐ๊ฐ๋ณด๋ค ์ค๋ ์ ์งํ๋ ๊ฒ์ด ์๋ฏธ๊ฐ ์๋ค๊ณ ๋ด ๋๋ค.
๊ทธ๋ฌ๋ ์ด ๋ ๊ฐ์ง ์ต์ ์ด ๋ค๋ฃจ์ง ์๋ ์ฌ์ฉ ์ฌ๋ก๊ฐ ์๋ค๋ฉด ์ด์ ๋ํด ์๊ณ ์ถ์ต๋๋ค. :)
๋ณด๋ค ๊ด๋ฒ์ํ๊ฒ๋ ์๊ฒฉํ ๋ฆฌ์กธ๋ฒ์ ๋์์ ๋ฌธ์ ๊ฐ ์๋ ์ํฌํ๋ก๊ฐ ์๋ ๊ฒฝ์ฐ ์ง์ ์ฌ๋ถ/๋ฐฉ๋ฒ์ ํ์ ํ ์ ์๋๋ก ๊ฐ๋ฅํ ํ ๋นจ๋ฆฌ ์ด๋ฌํ ์ํฌํ๋ก๊ฐ ์ด๋ป๊ฒ ๋ณด์ด๋์ง ๊ถ๊ธํฉ๋๋ค.
๊ฐ์ธ์ ์ผ๋ก ์ ๋ "์ต์ด ํ์ธ" ํด๊ฒฐ ๋ ผ๋ฆฌ๋ฅผ ์ ํด๊ฒฐ ํ๋ก๊ทธ๋จ์ผ๋ก ์ ํํ๋ ๊ธฐ๊ฐ๋ณด๋ค ์ค๋ ์ ์งํ๋ ๊ฒ์ด ์๋ฏธ๊ฐ ์๋ค๊ณ ๋ด ๋๋ค.
IDK, ์ ๋ ์ด "๊ธฐ๋ฅ"์ ์ฌ์ฉํ์ฌ ๋ค์๊ณผ ๊ฐ์ ๋น๋๋ก ๊ฝค ๋ฏธ์น ์์ ์ ์ํํฉ๋๋ค.
# install just the packages I've built specifically
pip install --no-index --no-deps --find-links=/path/to/my/local/build/cache -r local-reqs.txt
# ...snip to later in a dockerfile, etc...
# install the deps from public PyPI
pip install -r local-reqs.txt
์ด ๊ฒฝ์ฐ ๋ก์ปฌ ์กฐํ์ค์์ ๋ฏธ๋ฆฌ ๊ฒฐ์ ๋ ํจํค์ง๋ฅผ ์ค์นํ ํ ์ข ์์ฑ์ ํด๊ฒฐํ๋๋ก ์์ฒญํฉ๋๋ค. ๋ด ์ ํํ ๋ฒ์ ์ ํด๋น local-reqs ํ์ผ๋ก ์ฝ์ด์ ๋ฆฌ์กธ๋ฒ๋ฅผ ๋ง์กฑ์ํฌ ์ ์๋ค๊ณ ์๊ฐํ์ง๋ง ์ค์ ๋ก pip์ ํ์ฌ ๋์์ ์ด๋ฌํ ์ข ๋ฅ์ ์์ ๋น๋ ์ฃผ์ ๋จ๊ณ๋ฅผ ํ์ฉํ๋ ๋ฐ ๋งค์ฐ ์ ์ฉํ๋ค๋ ๊ฒ์ ์์์ต๋๋ค. ํ์ง๋ง ์คํ์ด์ค๋ฐ ๋๋ฐฉ ์ํฌํ๋ก ์ ๊ฒฝ์ฐ์ผ ์ ์์ง๋ง ์ธ์ ํ๊ฒ ์ต๋๋ค.
๊ทธ๋ฌ๋ ์๋ง๋ "์์งํ ํด๊ฒฐ" ๋์์ด ์ฌ์ ํ ์ ์ฉํ ์ ์์ต๋๋ค.
@pradyunsg๋ ๋ง์์ ๋์ํฉ๋๋ค. ๊ธฐ์กด ์ฝ๋ ์ ์๋ก์ด ๋ฆฌ์กธ๋ฒ๋ฅผ ๋ฌด๊ธฐํ ์ ์งํ๋ ๊ฒ์ ๋ถ๊ฐ๋ฅํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ํ์คํ pip ์ ์ง ๊ด๋ฆฌ์๋ก์ ๋๋ ๊ทธ๋ฐ ์ผ์ ๊ด์ฌ์ด ์์ต๋๋ค.
์ต์ข ์ฌ์ฉ์ POV์์ ์ ํด์๊ธฐ๊ฐ ์ฌ๋ฐ๋ฅธ ์์ ์ ์ํํ์ง ์์ ์ ์๋ ์ด์ํ ์๋๋ฆฌ์ค๊ฐ ์์ ์ ์์์ ์ธ์ ํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ธด๊ธ "์ด์ ๋์์ ๋๋๋ ค์ฃผ์ธ์" ํ๋๊ทธ๋ฅผ ๊ฐ๋ ๊ฒ์ ์ค์ํ ์ ํ ๋ฉ์ปค๋์ฆ์ ๋๋ค("์ด์ ๋ฒ์ ์ pip๋ก ์ผ์์ ์ผ๋ก ๋กค๋ฐฑ" ์ฌ๋ถ๋ ๋ ผ์์ ์ฌ์ง๊ฐ ์์ง๋ง CI๋ฅผ ์ผ๋ฐ์ ์ผ๋ก ์ฌ์ฉํ๋ ๊ฒ๊ณผ ๊ฐ์ ๊ฒฝ์ฐ์๋) ์๋์ผ๋ก ํด๋น ์ต์ ์ ์นํธํ๋ ์ต์ pip make๋ฅผ ์ฌ์ฉํฉ๋๋ค. ๊ทธ๋ฌ๋ ์ฅ๊ธฐ์ ์ผ๋ก ํ์ฌ์ ํ๋์ ์ ์งํด์ผ ํ๋ ์ด์ ๋ ๋ฌด์์ ๋๊น? ๋ค์๊ณผ ๊ฐ์ ์ฃผ์ ์ํฉ์ ์์ํ ์ ์์ต๋๋ค.
--no-deps
๋ฅผ ์ฌ์ฉํ์ฌ ๋ฆฌ์กธ๋ฒ๋ฅผ ๋๋ ๊ฒ๋ณด๋ค ๋ ๊ทน๋จ์ ์ธ ๋ฐฉ๋ฒ์ ํตํด์๋ ์๋๋๋ค.)--no-deps
๊ณ ์ ํ๊ณ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ๊ถ๊ทน์ ์ผ๋ก ์ฐ๋ฆฌ๋ "ํ์ง ๋ง์ญ์์ค"๋ผ๊ณ ๋งํ๊ณ ์ฌ์ฉ์๊ฐ ํด๋น ๋ฉ์์ง๋ฅผ ๋ฌด์ํ๋ฉด ์ธ์ ๊ฐ ๋ค์ "๊ฒฝ๊ณ ํ์ต๋๋ค"๋ผ๋ ์ด์ ํด๊ฒฐ ํ๋ก๊ทธ๋จ์ ์ ๊ฑฐํฉ๋๋ค.๋ด๊ฐ ๋์น ๋ค๋ฅธ ์ฌ๋๋ค์ด ์์ต๋๊น? ํนํ ์ด์ ๋ฆฌ์กธ๋ฒ๋ฅผ ๋ ์ด์ ์ฌ์ฉํ์ง ์๊ณ ์ ๊ฑฐํ๋ ๊ฒ์ด ๋ถ๊ฐ๋ฅํ ๊ณณ์ ์ด๋์ ๋๊น?
๊ทธ๊ฑด ๊ทธ๋ ๊ณ , "์ฌ๊ธฐ์ ๋ด๊ฐ ์๊ฐํ ๊ทน๋จ์ ์ธ ๊ฒฝ์ฐ๊ฐ ์์ต๋๋ค"์๋๋ฆฌ์ค๋ฅผ ๊ฒ์ํ์ฌ ๊ธธ์ ์์ง ์๋ ๊ฒ์ด ๊ฐ์ฅ ์ข์ ๊ณณ์ ์ด๋์ ๋๊น? ํ ์คํธ ์ผ์ด์ค ์์ฑ์ ์กฐ๊ธฐ์ ์์ํ ์๋ง ์๋ค๋ฉด ์ด์ํ ์ํฉ์ ๊ฐ๋ฅํ ํ ๋ง์ด ์์งํ๋ ๊ฒ์ด ์ ์ฉํ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค :-)
์ถ์ : ์๋ก์ด ํด์๊ธฐ๋ฅผ ์ํ ์ค๋น ์์
์ ์ผ๋ถ๋ก "์ผ๋ฐ์ ์ธ" ์ ์ฝ ์กฐ๊ฑด ๋ฌธ์ ๊ฐ ๋ฌด์์ธ์ง ์กฐ์ฌํด์ผ ํฉ๋๋ค(PyPI์ ์๋ ๋ด์ฉ ๊ธฐ๋ฐ). ๋ด ์์ ์ ๊ฒฝ์ฐ "pip install". ๋ณต์กํ ๊ฒฝ์ฐ์ ๋๋ฌด ๋น ์ ธ์ ๋๋ค์์ ๋จ์ํ ๊ฒฝ์ฐ๋ฅผ ๋์น๋ ๊ฒ์ ๋ถ๋๋ฌ์ด ์ผ์
๋๋ค.
๋ฆฌ์กธ๋ฒ๊ฐ ๋๋ฌด ๋๋ฆฝ๋๋ค(conda ์ฐธ์กฐ). 20๋ถ ์ด์์ ๋ฆฌ์กธ๋ฒ ๋๋ ํ์ฌ ๋์ ์ค์์ ์ ํํด์ผ ํ๋ ๊ฒฝ์ฐ ์ข ์ข ํ์ฌ ๋์์ ์ํฉ๋๋ค(๋๋ ์ต์ํ ์๋ํ์ญ์์ค. ๋ง์ ๊ฒฝ์ฐ์ ์ข์ ๊ฒฐ๊ณผ๋ฅผ ์ป์ ์ ์์).
๋ฉํ๋ฐ์ดํฐ๊ฐ ์๋ชป๋์์ต๋๋ค. ์ค๋๋ ์๋ ๊ทธ๋ค์ง ๋ฌธ์ ๊ฐ ๋์ง ์์ง๋ง ํด๊ฒฐํ ์ ์์ด์ผ ํ์ง๋ง ํด๊ฒฐ๋์ง ์๋ ๊ฒฝ์ฐ๋ฅผ ์ฝ๊ฒ ์์ํ ์ ์์ต๋๋ค. PyPI ๋ฉํ๋ฐ์ดํฐ๋ conda/conda-forge ๋ฉํ๋ฐ์ดํฐ๋ณด๋ค ์ํ๊ฐ ์ข์ง ์์ผ๋ฉฐ ์ด๋ฏธ conda์ ๋ฌธ์ ๊ฐ ์์ต๋๋ค. ๊ทธ๊ฒ์ด ํ๋ ธ๊ณ ์ฌ์ฉ์๋ก์ ์๋ฃจ์ ์ ์ป์ ์ ์๋ค๋ฉด, ๋๋ ์ฝ๊ฐ์ ์ตํธ ์์์ ์ํ ๊ฒ์ ๋๋ค.
@rgommers 6์ ๊ฒฝ์ฐ "์ด ํจํค์ง์ ๋ฒ์ ์ถฉ๋ ๋ฌด์" ์คํ์ผ ์ต์ ์ด ์๋ํ ์ ์์ต๋๋ค.
๊ฐ์ฌํฉ๋๋ค, @rgommers - ์ข์ ์ง์ ์ ๋๋ค.
๋ฆฌ์กธ๋ฒ๊ฐ ๋๋ฌด ๋๋ฆฝ๋๋ค. ๋ฆฌ์กธ๋ฒ ๋ฒ๊ทธ๋ก ๊ฐ์ฃผํ๊ฒ ์ต๋๋ค. ๋จ์ํ ๊ฒฝ์ฐ์ ์ถฉ๋ถํ ์ฑ๋ฅ์ ๊ฒฐ๊ณผ๋ฅผ ์ ๊ณตํ ์ ์๋ค๋ฉด ๊ทธ๊ฒ์ ๋ด ์๊ฐ์ ๋ชฉ์ ์ ์ ํฉํ์ง ์์ต๋๋ค. ๋ฐ๋ฉด์ ํ ๋ฆฌ์กธ๋ฒ๋ก ์๊ฐ์ด ๋ ์ค๋ ๊ฑธ๋ฆฌ๋ ์์ฒญ๋๊ฒ ๋ณต์กํ ์ ์ฝ ๋คํธ์ํฌ๊ฐ ์๋ ๊ฒฝ์ฐ(20๋ถ์ด ๊ณผ์ฅ๋๊ธฐ๋ฅผ ๋ฐ๋๋๋ค. ์ด๋ค ์ํฉ์์๋ ํ์ฉ๋์ง ์์ต๋๋ค!), ์ฐ๋ฆฌ๋ "์ฐ๋ฆฌ๊ฐ ์ง์ํ๊ธฐ์๋ ๋๋ฌด ๋ณต์กํ ๊ฒ์ผ๋ก ๊ฐ์ฃผํฉ๋๋ค." ๋ค์ ๋งํด "๋น ๋ฅด๊ณ ๋๋ฌ์ด" ๋ถ์ ํํ์ง๋ง ๋น ๋ฅธ ํด๊ฒฐ์๋ฅผ ์ ๊ณตํ๋๋ก conda์ ์์ฒญํ ์ฌ๋์ด ์์ต๋๊น? ๊ทธ๋ค์ด ๊ทธ๋ ๊ฒํ์ง ์๋๋ค๋ฉด (๊ทธ๋ฆฌ๊ณ ๋๋ ๊ทธ๋ค์ดํ์ง ์์ ๊ฒ์ด๋ผ๊ณ ํ์ ํฉ๋๋ค) ์ pip๋ฅผ ๊ธฐ๋ํ๋ ๊ฒ์ด ํฉ๋ฆฌ์ ์ ๋๊น?
์๋ชป๋ ๋ฉํ๋ฐ์ดํฐ๋ ๋ถ๋ช ํ "์ง์ํ์ง ์์ ๊ฒ"์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค(์ฌ๊ธฐ์ "์ฌ์ฉ ์ค๋จ ๊ธฐ๊ฐ ์ดํ"์ ๋ํด ์ด์ผ๊ธฐํ๊ณ ์์์ ๊ธฐ์ตํ์ธ์!). ์ฌ์ฉ์์๊ฒ ๋ฉํ๋ฐ์ดํฐ๋ฅผ ์์ ํ ์๊ฐ์ ์ฃผ๊ณ "ํจํค์ง X์์ ๋ฒ์ ์ถฉ๋ ๋ฌด์" ์ด์ค์ผ์ดํ ์ ์ต์ ์ ์ ๊ณตํ๋ ๊ฒ์ผ๋ก ์ถฉ๋ถํฉ๋๋ค. ์ผ๋ถ ์ฌ๋๋ค์ด ๋ฉํ๋ฐ์ดํฐ๋ฅผ ์์ ํ์ง ์๋๋ค๊ณ ํด์ ๊ธฐ์กด ๊ธฐ๊ณ๋ฅผ ๋ชจ๋ ์ ์งํ ๊ฒ์ผ๋ก ๊ธฐ๋ํด์๋ ์ ๋ฉ๋๋ค.
๊ทธ๋ฌ๋ ๊ทธ๋ ์ต๋๋ค. ์ ํํ ํด์๊ธฐ๊ฐ "๊ฐ๋น์ง ์ธ, ๊ฐ๋น์ง ์์" ๊ท์น์ ๋ฐ๋ฅด๊ธฐ ๋๋ฌธ์ ์ข์ ๋ฉํ๋ฐ์ดํฐ๊ฐ ํ์ํ๋ค๋ ์ฌ์ค์ ์๋ฆฌ๊ณ ์ฌ๋๋ค์ด ํด๋น ๋ฉ์์ง์ ์ด๋ป๊ฒ ์๋ตํ๋์ง ๋ชจ๋ํฐ๋งํ๋ ๊ฒ์ ๋กค์์ ํ๋ก์ธ์ค์ ๋ง์ ๋ถ๋ถ์ ๋๋ค.
๋ก์ปฌ ์กฐํ์ค์์ ๋ฏธ๋ฆฌ ๊ฒฐ์ ๋ ํจํค์ง๋ฅผ ์ค์นํ ํ ์ข ์์ฑ์ ํด๊ฒฐํ๋๋ก ์์ฒญํ๊ณ ์์ต๋๋ค.
@jriddy "ํธํ๋๋ ๊ฒฝ์ฐ ๊ธฐ์กด ์ค์น ์ฌ์ฉ"์ ํด๊ฒฐ ์ ๋ต์ด ์ด์ ๋ํด ์๋ํฉ๋๋ค.
"๋ด๊ฐ ์๊ฐํ ๊ทน๋จ์ ์ธ ๊ฒฝ์ฐ๊ฐ ์์ต๋๋ค" ์๋๋ฆฌ์ค๋ฅผ ๊ฒ์ํ์ฌ ๊ธธ์ ์์ง ์๋๋ก ํ๋ ๊ฐ์ฅ ์ข์ ์์น๋ ์ด๋์ธ๊ฐ์?
6์ ๊ฒฝ์ฐ "์ด ํจํค์ง์ ๋ฒ์ ์ถฉ๋ ๋ฌด์" ์คํ์ผ ์ต์ ์ด ์๋ํ ์ ์์ต๋๋ค.
์, ์ฌ๋ฐ๋ฅธ ์ต์ ์ฒ๋ผ ๋ค๋ฆฝ๋๋ค.
(์ ๋ 20๋ถ์ด ๊ณผ์ฅ๋๊ธฐ๋ฅผ ๋ฐ๋๋๋ค. ์ด๋ค ์ํฉ์์๋ ํ์ฉ๋์ง ์๋๋ค๊ณ ์๊ฐํฉ๋๋ค!) ๊ทธ๋ฌ๋ฉด ์ฐ๋ฆฌ๋ "์ง์ํ๊ธฐ์ ๋๋ฌด ๋ณต์กํ๋ค๊ณ ์๊ฐํ๋ ๊ฒ" ์์ญ์ ๋ค์ด๊ฐ๊ณ ์์ต๋๋ค. ๋ค์ ๋งํด "๋น ๋ฅด๊ณ ๋๋ฌ์ด" ๋ถ์ ํํ์ง๋ง ๋น ๋ฅธ ํด๊ฒฐ์๋ฅผ ์ ๊ณตํ๋๋ก conda์ ์์ฒญํ ์ฌ๋์ด ์์ต๋๊น? ๊ทธ๋ค์ด ๊ทธ๋ ๊ฒํ์ง ์๋๋ค๋ฉด (๊ทธ๋ฆฌ๊ณ ๋๋ ๊ทธ๋ค์ดํ์ง ์์ ๊ฒ์ด๋ผ๊ณ ํ์ ํฉ๋๋ค) ์ pip๋ฅผ ๊ธฐ๋ํ๋ ๊ฒ์ด ํฉ๋ฆฌ์ ์ ๋๊น?
conda
์ฑ๋ฅ์ ๋ํด ๋ถํํ๋ ๋ง์ ์ฌ๋๋ค์ด ์๊ณ ๊ทธ๋ค์ ๋ฃ๊ณ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ๊ทธ๊ฒ์ ๋ง์ ์์
์
๋๋ค. ๊ทธ๋ค์ ์ต๊ทผ ๋ธ๋ก๊ทธ ๊ฒ์๋ฌผ์ ์ฐธ์กฐํ์ญ์์ค. ๋น ๋ฅด๊ณ ๋๋ฌ์ด ์ฝ๋ค ์ต์
์ด ์์์ง ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. ๊ทธ๋ฌ๋ conda-metachannel
์ ๊ฐ์ ๊ด๋ จ ์๋ฃจ์
(ํดํน)์ด ์์ด ์ข
์์ฑ ๊ทธ๋ํ๋ฅผ ์ ๋ฆฌ(์๋์ผ๋ก ํจํค์ง ํฌํจ/์ ์ธ)ํ์ฌ ์๋ฃจ์
์ ๋ ๋นจ๋ฆฌ ์ป์ ์ ์์ต๋๋ค. ๊ทธ๋์ ๊ฐ์ ๋งฅ๋ฝ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
๊ทธ๋ฌ๋ ๋ค์ ์ค ํ๋๊ฐ ์๋ ํ _ํ์คํ_ ํ์ํฉ๋๋ค.
์๋ชป๋ ๋ฉํ๋ฐ์ดํฐ๋ ๋ถ๋ช ํ "์ง์ํ์ง ์์ ๊ฒ"์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
๊ทธ๋ด ์ ์์ง. "์ฌ๋ฐ๋ฅธ ๋ฉํ๋ฐ์ดํฐ๋ฅผ ์ ์ฉํ์ง ์๋๋ค"๋ ์ ์ฒด์ ์ธ ์ ์ฅ์ ์ฌ๊ธฐ์์ ๋์์ด ๋์ง ์์ต๋๋ค. ์ต๊ทผ์ ๋ณ๊ฒฝ๋์ง ์๋ ํ? (๊ทธ๋ฆฌ๊ณ ๋๋ ๊ทธ๊ฒ์ด pip ๊ฒ์ด ์๋๋ผ PyPI๋ผ๋ ๊ฒ์ ์๊ณ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ๊ทธ๊ฒ์ ๊ด๋ จ์ด ์์ต๋๋ค).
๋๋ ๋น์ ์ด ์ ๋ง๋ก ๋น์ ์ด ์๊ฐํ๋ ์ต์ ์ ๊ฐ์ง๊ณ ์๋์ง ํ์ ํ์ง ๋ชปํฉ๋๋ค.
๋น ๋ฅด๊ณ ๋ํฐํ ๋ฆฌ์กธ๋ฒ๊ฐ ์ ํํ ๋ฆฌ์กธ๋ฒ์ ๋ค๋ฅธ ์ ์ ๋ฌด์์ ๋๊น? ๋ ๋น ๋ฅด๊ธฐ ์ํด ๋ฌด์์ ๋จ์ด ๋จ๋ฆฝ๋๊น? ์ ์ฝ ์กฐ๊ฑด์ ์ ์ฝ ์กฐ๊ฑด์ ๋๋ค. ๋ฑ๊ธ์ด ์ ์ฉ๋์ง ์์ต๋๋ค. ๋น์ ์ ๊ทธ๋ค์ ๋ง์กฑํ๊ฑฐ๋ ๊ทธ๋ ์ง ์์ต๋๋ค. ์๋ง๋ ์ด๋ฆ์ผ๋ก ์์ํ๊ณ ๋ฒ์ ๋ณ๋ก๋ง ๋ง์กฑ์ํฌ ์ ์์ต๋๋ค.
์ฌ๋๋ค์ด Conda๊ฐ ๋๋ ค์ ํ๋ฅผ ๋ด๋ ๊ฒ์ ๋ณธ์ง์ ์ผ๋ก ํญ์ ๋์ ๋ฉํ๋ฐ์ดํฐ ๋๋ฌธ์ ๋๋ค. ๊ทผ๋ณธ ์์ธ์ ๊ด๊ณ์์ด ์ง๊ฐ๋ ์๋ ์ ํ์ ๋ํด ๋น๋์ ๋ฐ์ ๊ฒ์ด๋ผ๋ ์ ์ ๋ช ์ฌํ์ญ์์ค. ์๋ชป๋ ๋ฉํ๋ฐ์ดํฐ๋ ๋๋๋ก ์๋ชป๋ ์ ์ฝ ์กฐ๊ฑด์ด์ง๋ง ํจ์ฌ ๋ ์ค๋๋๊ณ ๋ฐ๋์งํ์ง ์์ ์ต์ ์ ๊ณ ๋ คํ ์ ์๋ ์ ์ฝ ์กฐ๊ฑด์ด ์๋ ๊ฒฝ์ฐ๊ฐ ๋ ๋ง์ต๋๋ค. Conda๋ ์ต๊ทผ ํ ๊ฐ์ง ์์ ์ผ์ ์ํํ์ฌ ํฌ๊ฒ ๊ฐ์ ๋์์ต๋๋ค. ์ฆ, ๋ถ์ ์ ํ(๋๋ถ๋ถ ๋๋ฌด ๊ฐ๋ฐฉ๋) ์ ์ฝ ์กฐ๊ฑด์ด ์๋ ์ด์ ์ํํธ์จ์ด ์ปฌ๋ ์ ์ ์ ๊ฑฐํ๋ ๊ฒ์ ๋๋ค. ์ด๋ฌํ ๊ฐ๋ฐฉํ ์ ์ฝ ์กฐ๊ฑด์ผ๋ก ์ธํด conda๋ ๋ง์ ๋ค์ด๊ทธ๋ ์ด๋๊ฐ ํ์ํ ์ ๋ง ๋์ ์๋ฃจ์ ์ ํ์ํ๊ฒ ๋์์ต๋๋ค. ์ฌ๊ธฐ์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋ฐ ๋ฌธ์ ๊ทธ๋๋ก ๋ช ์๊ฐ์ด ๊ฑธ๋ ธ์ต๋๋ค. ๋ค์ด๊ทธ๋ ์ด๋๋ ์บ์ค์ผ์ด๋ ๋ฐฉ์์ผ๋ก ์ธํด ๋งค์ฐ ๋น์ฉ์ด ๋ง์ด ๋๋ ์์ ์ด๋ฉฐ, ๊ฐ ๋จ๊ณ๋ ์ ์ฝ์ด ๋ํ๊ณ ๋น์ฉ์ด ๋ง์ด ๋ญ๋๋ค.
"์ฐ๋ ๊ธฐ ์ธ, ๊ฐ๋น์ง ์์" ์ฌ๊ณ ๋ฐฉ์์ ๋ฌธ์ ๋ ํด๊ฒฐ์ฌ์ ์ ์ง ๊ด๋ฆฌ์ธ์ผ๋ก์ ๊ฐ๋ฐฉ์ ๋ค๊ณ ์๋ค๋ ๊ฒ์ ๋๋ค. ์ฐ๋ ๊ธฐ๊ฐ ๋ฌด์์ธ์ง์ ๋ํ ์์ฃผ ์ข์ ๊ฒฝํ์ ๋ฐฉ๋ฒ์ด ์๋ค๋ฉด ๋น์ ์ ๋ฌด๋ ฅํฉ๋๋ค. ๋น์ ์ ์๋ฒ๊ฐ ๋๋ฆฐ ์ด์ ๋ฅผ ์กฐ์ฌํ๊ณ ๋ฌธ์ ํจํค์ง๋ฅผ ๋ถ๋ฆฌํ ๋ค์ ๋ฌธ์ ์ ์์ธ์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋๋ก ์์ฒญํด์ผ ํ๋ ์ฌ๋์ด ๋ฉ๋๋ค. ์ข์ ์์น๊ฐ ์๋๋๋ค. ์ ๋ฅผ ๋ฏฟ์ผ์ธ์. ์ฐ๋ฆฌ๋ conda๊ฐ conda-forge, bioconda ๋๋ ๊ธฐํ ํ์ฌ ์ฑ๋์ ํผํฉํ์ฌ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ๋๋ ์๋ํ์ง ์๋ ์ด์ ๋ฅผ ์ฌ๋๋ค์๊ฒ ์ค๋ช ํ๋ ๋ฐ ๋ง์ ์๊ฐ์ ํ ์ ํฉ๋๋ค. ๊ฒฐ๊ตญ ์ฐ๋ฆฌ๋ ํ์ ์์ ์ ์ํํ๊ณ ํด๋น ํ์ฌ ์ฑ๋์ ์์ ํด์ผ ํ ์ฌํญ์ ์๋ ค์ผ ํฉ๋๋ค. ์ง์ฆ๋๋ค.
conda์ ๋น๊ตํ ๋๋ conda๊ฐ ๋ฌธ์ ์ ๋ํด ๋งค์ฐ ๋ค๋ฅธ ์ ๊ทผ ๋ฐฉ์์ ์ทจํ๊ณ ์๋ค๋ ์ ์ ๊ณ ๋ คํด์ผ ํฉ๋๋ค. Conda์๋ ํ๋์ ๊ฑฐ๋ํ ๋ฉํ๋ฐ์ดํฐ ์์ค๊ฐ ์์ผ๋ฉฐ ๋ชจ๋ ๊ฒ์ ํ ๋ฒ์ ํด๊ฒฐํ์ง๋ง pip๋ ํ ๋ฒ์ ๊ฐ ํญ๋ชฉ์ ์ฌ๊ท์ ์ผ๋ก ํด๊ฒฐํ๊ณ ์ต์ ํํฉ๋๋ค(ํ์ํ ๊ฒฝ์ฐ ์ญ์ถ์ ). ๊ทธ๊ฒ์ ๋น์ ์๊ฒ ๋ค๋ฅธ ์ต์ ํ ๊ฒฝ๋ก๋ฅผ ์ ๊ณตํ ์ ์์ต๋๋ค.
@wolfv ๋ ์ต๊ทผ์ conda์ libsolv๋ฅผ ์ฌ์ฉํ์ฌ ํ์ํ์ต๋๋ค. ๊ทธ๋ ๊ถ๊ทน์ ์ผ๋ก conda์ ๋์ผํ ๋ต๋ณ์ ์ ๊ณตํ ์ ์๋ค๋ ์ฌ์ค์ ์ข์ ํ์ต๋๋ค. ์ด๋ฌํ ์ ๊ทผ ๋ฐฉ์์ ์ฐจ์ด๋ก ๊ท๊ฒฐ๋์์ต๋๋ค. Libsolv๋ ์ญ์ถ์ ์๋ฒ์ ๋๋ค. ์๋๋ฅผ ๋์ด๊ธฐ ์ํด pip์ ๋ํ ์ ํ์ ์ปดํ์ผ๋ ์ถ๊ฐ ๊ธฐ๋ฅ์ผ๋ก ์ฌ์ฉํ ์ ์์ง๋ง pip์ ์ปดํ์ผ๋ ์ฝ๋๋ฅผ ์ง์ ํฌํจํ์ง ์๋ ๊ฒ์ ๋ฏผ๊ฐํ๋ค๋ ๊ฒ์ ์๊ณ ์์ต๋๋ค.
( @pradyunsg ๋ ์์ ์ ๋ธ๋ก๊ทธ์ 8์ ์ ๋ฐ์ดํธ๋ฅผ ๊ฒ์ํ์ต๋๋ค .)
์ฌ๋๋ค์ด ์ง๊ธ ์ ๊ธฐํ๋ ์ง๋ฌธ๊ณผ ์๊ตฌ ์ฌํญ ์ค ์ผ๋ถ๋ ํ ์คํธ ์ผ์ด์ค์ ๊ฐ์ด ์ง๊ธ ์์ง์ ์์ํด์ผ ํ๋ ๊ฒ์ ๋๋ค.
๊ทธ๋ฌ๋ ๋ํ: ์ด ๋กค์์์ ๋ํด ํ์ค์ ์ด๋ผ๊ณ ์๊ฐํ๋ ์ผ์ ์ ๋ฌด์์ ๋๊น? ์ด๊ฒ์ Pradyun์ ๊ฑด๊ฐ๊ณผ ์์ ์๊ฐ, ๋ค๋ฅธ pip ์ ์ง ๊ด๋ฆฌ์์ ์ฝ๋ ๊ฒํ ๊ฐ์ฉ์ฑ, ๊ทธ๋ฆฌ๊ณ ์ฐ๋ฆฌ๊ฐ ์ ์ฒญํ๋ ๋ณด์กฐ๊ธ์ ๋ฐ๋์ง ์ฌ๋ถ์ ๋ฐ๋ผ ๋ง์ด ๋ฌ๋ผ์ง๋๋ค. ํ์ง๋ง ์์๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
resolvelib/zazo
์ ์ ์๋ ์ถ์ํ ๋์
: ๋ช ๊ฐ์์ด ๊ฑธ๋ฆฌ๋ฏ๋ก ๋ณด์์ ์ผ๋ก ์ถ์ ํ๋ฉด 2020๋
5์์
๋๊น?์ด๊ฒ ์ณ์ ๊ฑฐ๋? ๋ด๊ฐ ๋ฌด์์ ๋์น๊ณ ์์ต๋๊น?
์ ๋ณด ์์ง ์์ ์ค ์ผ๋ถ๊ฐ ํ๋ก์ ํธ ๊ด๋ฆฌ์ ๋ฐ/๋๋ UX ์ฐ๊ตฌ์์ด ํด์ผ ํ๋ ์ผ์ด๊ธฐ ๋๋ฌธ์ ์ง๋ฌธํฉ๋๋ค. ์ ์๊ฐ์๋ https://github.com/pypa/packaging-problems/issues/264 ๋ฐ ๋ค๋ฅธ ๋ฌธ์ ๋ ์ฌ๋๋ค์ด ์ฌ๊ธฐ์์ ์ ๊ธฐํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋ฐ ๋์์ด ๋ ์ ์์ต๋๋ค.
์๋ชป๋ ๋ฉํ๋ฐ์ดํฐ๋ ๋๋๋ก ์๋ชป๋ ์ ์ฝ ์กฐ๊ฑด์ด์ง๋ง ํจ์ฌ ๋ ์ค๋๋๊ณ ๋ฐ๋์งํ์ง ์์ ์ต์ ์ ๊ณ ๋ คํ ์ ์๋ ์ ์ฝ ์กฐ๊ฑด์ด ์๋ ๊ฒฝ์ฐ๊ฐ ๋ ๋ง์ต๋๋ค.
setup.py
/ pyproject.toml
์ ๋ํ ์์ธ๊ฐ ์๋๋ผ ์ ์ฝ์ด ์๋ ์ข
์์ฑ ๋๋ >= some_old_version
์ ์ฌ์ฉํ๋ ๊ฒ์ด ๊ท์น์ด๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ด ๋ฌธ์ ๊ฐ ๋ ๊ฒ์
๋๋ค. ๋ค๋ฅธ ์ ํ์ ํด์ผ ํ๋ "์๋ชป๋ ์ ์ฝ ์กฐ๊ฑด"์ด๊ฑฐ๋ ์๋ฒ์ธ์ง ์ฌ๋ถ๋ ๋ณ๋ก ์ ๊ฒฝ ์ฐ์ง ์์ต๋๋ค. ์ด๊ฒ์ด PyPI์ ๋ฉํ๋ฐ์ดํฐ ์ํ์
๋๋ค.
์ด๋ฌํ ๊ฐ๋ฐฉํ ์ ์ฝ ์กฐ๊ฑด์ผ๋ก ์ธํด conda๋ ๋ง์ ๋ค์ด๊ทธ๋ ์ด๋๊ฐ ํ์ํ ์ ๋ง ๋์ ์๋ฃจ์ ์ ํ์ํ๊ฒ ๋์์ต๋๋ค.
๋น์ ์ ์ฌ๊ธฐ ์ ๋ฌธ๊ฐ์ด์ง๋ง ์ด์ ๋ํ ์ค์ฉ์ ์ธ ํด๊ฒฐ์ฑ ์ ์์ต๋๊น? ๋๋ถ๋ถ์ ๊ฒฝ์ฐ ๋ค์ด๊ทธ๋ ์ด๋๊ฐ ํ์ํ์ง ์์ผ๋ฏ๋ก ๋จผ์ ๋ค์ด๊ทธ๋ ์ด๋๋ฅผ ์๋ํ์ญ์์ค. ๊ทธ๋ฐ ๋ค์ ๊ฐ ํจํค์ง์ ๋ํด 1๊ฐ์ ๋ฒ์ ๋ง ๋ค์ด๊ทธ๋ ์ด๋ํฉ๋๋ค. ์ถ๊ฐ๋ก ๋ค์ด๊ทธ๋ ์ด๋ํด์ผ ํ๋ ๊ฒฝ์ฐ ๊ฑฐ์ ํญ์ ์๋ชป๋ ์๋ฃจ์ ์ ๋๋ค(๋์ ๋ฉํ๋ฐ์ดํฐ ๋๋ ๋ค๋ฅธ ์์ธ์ผ๋ก ์ธํ ๊ฒ์ผ ์ ์์).
์ฌ์ค pip
๊ฐ ๋ค์ด๊ทธ๋ ์ด๋๋ฅผ _ํ ์ ์๋์ง_ ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. ์ฒ์์๋ ๋๋ฌด ๊ณต๊ฒฉ์ ์ธ "๋ชจ๋ ๊ฒ์ ์
๊ทธ๋ ์ด๋" ์ ๋ต์ ์ฌ์ฉํ์ง๋ง ์ด์ ๋ "ํ์์ ๋ฐ๋ผ ์
๊ทธ๋ ์ด๋"๊ฐ ๊ฝค ์ ์๋ํฉ๋๋ค. ๋๋ ๊ทธ๊ฒ์ด ์๋ฌด๊ฒ๋ ๋ค์ด๊ทธ๋ ์ด๋ํ๋ ๊ฒ์ ๋ณธ ์ ์ด ์์ผ๋ฉฐ ์ค์ ๋ก๋ ์ ๊ธฐ์ ์ผ๋ก ์ฌ์ฉํ๊ธฐ์ ๊ฝค ์ ์๋ํฉ๋๋ค.
conda๊ฐ ๊ฒฝํฉํด์ผ ํ์ง๋ง pip๋ ๊ทธ๋ ์ง ์์ ๋ค์ด๊ทธ๋ ์ด๋์ ์: python 3์ ์ฌ์ฉํ๋ anaconda ๋๋ miniconda ์ฌ์ฉ์๋ python 3.7๋ถํฐ ์์ํฉ๋๋ค. ์ฌ์ฉ์๋ ๋๋๋ก python 3.6์์๋ง ์ฌ์ฉํ ์ ์๋ ๊ฒ์ ์ค์นํด์ผ ํฉ๋๋ค. ์๋ฒ๋ python ๋ฐ ๊ธฐํ ๋ชจ๋ non-noarch ํจํค์ง๋ฅผ ๋ค์ด๊ทธ๋ ์ด๋ํด์ผ ํฉ๋๋ค. ์ด๊ฒ์ ์๋ง๋ ํ์ด์ฌ ๋ฒ์ ๋ณ๊ฒฝ์ ๋ํ ํน๋ณํ ๋์์ ๊ฐ์ง์ผ๋ก์จ ์ต์ ํ๋ ์ ์๋ ํน๋ณํ ๊ฒฝ์ฐ์ด์ง๋ง, ํ ํจํค์ง์ ๋ณ๊ฒฝ์ด ๋ค๋ฅธ ํจํค์ง๋ก์ ๋ค์ด๊ทธ๋ ์ด๋๋ฅผ ์๊ตฌํ ์ ์๋ ์์ ์ ๋ณด์ฌ์ค๋๋ค. "์ง๊ธ๊น์ง ์๋ํ์ต๋๋ค"๋ ์ค์ ๋ก ํญ์ ์๋ํ๋ ๊ฒ์ด ์๋๋ผ ์ด๋ฆฌ์์ ํ์ด์ ๋๋ค.
๋ฒ์ ์ ํ์ ๊ดํด์๋ ํด๊ฒฐ ์์ฒด์์ ์ ์ฉํ ์ ์์ต๋๋ค. ๋น์ ์ ๋น์ ์ ์ ์ฝ์ด ์๊ณ ๋ชจ๋ ์ข ๋ฅ์ "ํ๋์ ๋ฒ์ ์ผ๋ก ์ด๊ธฐ"๋ ๋ชจ๋ ํจํค์ง๋ง๋ค ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ ์ถฉ๋ถํ ์ผ๋ฐ์ ์ด๊ธฐ๋ฅผ ๋ฐ๋ ์ ์์ต๋๋ค. ํ์ง๋ง ์๋ฒ ์ด์ ์ ๋ฒ์ ๋ณ๋ก ๋ฉํ๋ฐ์ดํฐ๋ฅผ ์๋ผ๋ผ ์ ์์ต๋๋ค. ์ด๊ฒ์ด conda์ "current_repodata.json"์ ๋๋ค. ์ต์ ๋ฒ์ ๋ง. ์๋ํ๋ฉด ์ผ์ด ์ ๋ง ๋นจ๋ผ์ง์ง๋ง, ๊ทธ๊ฒ์ด ์ ์ผํ repodata๋ผ๋ฉด ์ฌ๋๋ค์ ์ ๋ง ํ๋ฅผ ๋ผ ๊ฒ์ ๋๋ค. ์ํฉ์ ์ฌํํ ์ ์์ผ๋ฉฐ, ์ธ์ ๊ฐ๋ ์๋ํ๋ ์ฌ์์ด ๋ค์์๋ ์๋ํ์ง ์์ ์ ์๋ค๋ ์ฌ์ค์ ์ข์ ํ ๊ฒ์ ๋๋ค. ์ฐ๋ฆฌ๋ ์ ์ฒด repodata์ ๋ํ ๋์ฒด๋ฅผ ์ ๊ณตํ๊ณ ์ฃผ์ด์ง ์์ ์ ์ต์ ๋ฒ์ ๋ง ์ฌ์ฉํ ์ ์๋ ์๊ฐ ๊ธฐ๋ฐ ํ์ ์งํฉ์ ๋์ ํ ๊ณํ์ ๋๋ค. ์ฌ์ฉ ๊ฐ๋ฅํ ์ธ๋ฑ์ค ๋ฐ์ดํฐ๋ฅผ ์ ์ง์ ์ผ๋ก ์ฌ๋ ๊ฒ์ด ์ญ์ถ์ ์๋ฒ์์ ๋ ์ ์ฉํ ๊ฐ๋ ์ผ ์ ์์ต๋๋ค.
pip
๋ค์ด๊ทธ๋ ์ด๋๋ _ํ ์ ์์ต๋๋ค.
-- pip์ ๊ฒฝ์ฐ ๋ค์ด๊ทธ๋ ์ด๋๋ ์ ๊ทธ๋ ์ด๋์ ๊ฐ์ ์ค์น ์ ๊ฑฐ ๋จ๊ณ์ผ ๋ฟ์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ถฉ์กฑํ๋๋ก ์์ฒญ๋ฐ์ ์ ์ฝ ์กฐ๊ฑด์ด ํ์๋๋ฉด ๋ค์ด๊ทธ๋ ์ด๋๋ฉ๋๋ค.
๋ค์์ pip๊ฐ ๊ฐ์ฅ ๋จผ์ ๋ณด๋ ํ setuptools๋ฅผ ๋ค์ด๊ทธ๋ ์ด๋ํฉ๋๋ค.
pip install "setuptools < 20.0"
"๋ด๊ฐ ์๊ฐํ ๊ทน๋จ์ ์ธ ๊ฒฝ์ฐ๊ฐ ์์ต๋๋ค" ์๋๋ฆฌ์ค๋ฅผ ๊ฒ์ํ์ฌ ๊ธธ์ ์์ง ์๋๋ก ํ๋ ๊ฐ์ฅ ์ข์ ์์น๋ ์ด๋์ธ๊ฐ์?
๊ฐ์ฌํฉ๋๋ค. ๋ช ์ฌํ๊ฒ ์ต๋๋ค. ๋ค์ ์๊ฐํด๋ ๋ด "๋ณ๋ฆฌํ์ ์ฌ๋ก"๋ ์ค์ ๋ก ๊ทธ๋ ๊ฒ ๋ณ๋ฆฌํ์ ์ด์ง ์์ต๋๋ค. ํจํค์ง์ ๋ํ ์ข ์์ฑ ๋ฉํ๋ฐ์ดํฐ๋ฅผ ์๊ธฐ ์ํด์๋ ํจํค์ง๋ฅผ ๋ค์ด๋ก๋ํ๊ณ ์์ถ์ ํ์ด์ผ ํ๊ณ ์ด๋ค ๊ฒฝ์ฐ์๋ ๋ง์ ํจํค์ง๋ฅผ ๋ค์ด๋ก๋ํ์ฌ ๊ฑฐ๋ถํ ์ ์๋ค๋ ์ฌ์ค์ ๊ทน๋จ์ ์ธ ๊ฒฝ์ฐ์ ๋๋ค. ์ด๋ ์ฐ๋ฆฌ๊ฐ ํด๊ฒฐํด์ผ ํ๋ "๋จ์ ์์ธ" ํ๋กํ ์ฝ์ ์ค์ํ ์ ํ ์ฌํญ์ผ ์ ์์ง๋ง ์ง์ ์ ์ธ ํด๊ฒฐ ๋ฌธ์ ๋ ์๋๋๋ค.
conda๊ฐ ๊ฒฝํฉํด์ผ ํ์ง๋ง pip๋ ๊ทธ๋ ์ง ์์ ๋ค์ด๊ทธ๋ ์ด๋์ ์: python 3์ ์ฌ์ฉํ๋ anaconda ๋๋ miniconda ์ฌ์ฉ์๋ python 3.7๋ถํฐ ์์ํฉ๋๋ค. ์ฌ์ฉ์๋ ๋๋๋ก python 3.6์์๋ง ์ฌ์ฉํ ์ ์๋ ๊ฒ์ ์ค์นํด์ผ ํฉ๋๋ค. ์๋ฒ๋ python ๋ฐ ๊ธฐํ ๋ชจ๋ non-noarch ํจํค์ง๋ฅผ ๋ค์ด๊ทธ๋ ์ด๋ํด์ผ ํฉ๋๋ค. ์ด๊ฒ์ ์๋ง๋ ํ์ด์ฌ ๋ฒ์ ๋ณ๊ฒฝ์ ๋ํ ํน๋ณํ ๋์์ ๊ฐ์ง์ผ๋ก์จ ์ต์ ํ๋ ์ ์๋ ํน๋ณํ ๊ฒฝ์ฐ์ด์ง๋ง, ํ ํจํค์ง์ ๋ณ๊ฒฝ์ด ๋ค๋ฅธ ํจํค์ง๋ก์ ๋ค์ด๊ทธ๋ ์ด๋๋ฅผ ์๊ตฌํ ์ ์๋ ์์ ์ ๋ณด์ฌ์ค๋๋ค. "์ง๊ธ๊น์ง ์๋ํ์ต๋๋ค"๋ ์ค์ ๋ก ํญ์ ์๋ํ๋ ๊ฒ์ด ์๋๋ผ ์ด๋ฆฌ์์ ํ์ด์ ๋๋ค.
๋ํ ์ผ๋ฐ์ ์ผ๋ก _๋ค์ด๊ทธ๋ ์ด๋ํ๊ณ ์ถ์ง ์์_ ๊ฒฝ์ฐ์ ๋๋ค. ์ฌ์ฉ์๋ก์ ๋๋ ํจํค์ง๋ฅผ ์ฌ์ฉํ ์ ์๋ค๋ ์์ธ๊ฐ ๋ฐ์ํ๊ณ ๋ด๊ฐ ์ํ๋ ๊ฒฝ์ฐ ๋ช ์์ ์ผ๋ก 3.6์ ์ค์นํ๋๋ก ํ๊ณ ์ถ์ต๋๋ค.
๋ ๋ค๋ฅธ ์๋ ์ฑ๋ ๊ฐ์ ๋ถ์ผ์น์
๋๋ค. ์ต๊ทผ ์: ์ฐ๋ฆฌ๋ Python 3.7.3์ ์์๊ณ base
๋ 3.7.4
$๋ฅผ ๋ฐ์์ต๋๋ค. ๋๋ ์ด๋ฌํ ๋ฒ์ ์ฐจ์ด์ ๋ํด ์ ๊ฒฝ ์ฐ์ง ์์ผ๋ฉฐ ๋๋ถ๋ถ์ ์ฌ์ฉ์๋ ์ ๊ฒฝ ์ฐ์ง ์์ ๊ฒ์
๋๋ค. ๊ธฐ๋ณธ "์๋ฌด๊ฒ๋ ํ์ง ์์"์ด " .4 > .3
, ์
๊ทธ๋ ์ด๋ํ๊ณ ํ์ํ ๊ฒฝ์ฐ ๋ค๋ฅธ ํจํค์ง์ ์ฑ๋์ base
๋ก ๋ณ๊ฒฝํฉ์๋ค(๋ค์ด๊ทธ๋ ์ด๋ํ๋๋ผ๋)"๋ณด๋ค ํจ์ฌ ๋ซ์ต๋๋ค.
์ฐ๋ฆฌ๋ ์ ์ฒด repodata์ ๋ํ ๋์ฒด๋ฅผ ์ ๊ณตํ๊ณ ์ฃผ์ด์ง ์๊ฐ์ ์ต์ ๋ฒ์ ๋ง ์ฌ์ฉํ ์ ์๋ ์๊ฐ ๊ธฐ๋ฐ ํ์ ์งํฉ์ ๋์ ํ ๊ณํ์ ๋๋ค.
๊ทธ๊ฒ์ ๋งค์ฐ ์ ์ฉํ ๊ฐ์ ์ฒ๋ผ ๋ค๋ฆฝ๋๋ค.
"์ฐ๋ ๊ธฐ ์ธ, ๊ฐ๋น์ง ์์" ์ฌ๊ณ ๋ฐฉ์์ ๋ฌธ์ ๋ ํด๊ฒฐ์ฌ์ ์ ์ง ๊ด๋ฆฌ์ธ์ผ๋ก์ ๊ฐ๋ฐฉ์ ๋ค๊ณ ์๋ค๋ ๊ฒ์ ๋๋ค. ์ฐ๋ ๊ธฐ๊ฐ ๋ฌด์์ธ์ง์ ๋ํ ์์ฃผ ์ข์ ๊ฒฝํ์ ๋ฐฉ๋ฒ์ด ์๋ค๋ฉด ๋น์ ์ ๋ฌด๋ ฅํฉ๋๋ค.
๋ค ์ฌ์ค์ด์์. ๋๋ ๋ชจ๋ IDE, ๋ฐฐํฌํ ๋๋ "๋ง์ ๊ฒ๋ค์ ๋ํ ๊ณตํต ์ธํฐํ์ด์ค"๊ฐ ์ด ๋ฌธ์ ๋ฅผ ๊ฐ์ง๊ณ ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
๋ค์์
setuptools
๋ค์ด๊ทธ๋ ์ด๋ํฉ๋๋ค.
์ฌ์ฉ์๊ฐ ์์ฒญํ ๋ค์ด๊ทธ๋ ์ด๋์
๋๋ค. ๊ฐ์ ์ ์ธ ๊ฒ์ ๋ด๊ฐ ์๋ฏธํ ๊ฒ์
๋๋ค(์: setuptools<20.0
in pyproject.toml`). ๊ทธ๋ ๊ฒ ํ๋ฉด ์ ๋ ๊ฒ ๊ฐ์ง๋ง ์ค์ ๋ก๋ ๋๋ญ
๋๋ค.
"์ฐ๋ ๊ธฐ ์ธ, ๊ฐ๋น์ง ์์" ์ฌ๊ณ ๋ฐฉ์์ ๋ฌธ์ ๋ ํด๊ฒฐ์ฌ์ ์ ์ง ๊ด๋ฆฌ์ธ์ผ๋ก์ ๊ฐ๋ฐฉ์ ๋ค๊ณ ์๋ค๋ ๊ฒ์ ๋๋ค.
100% ๋์ํฉ๋๋ค. ์์ฃผ ์กฐ์ฌ์ค๋ฝ๊ฒ ๋ค๋ฃจ์ด์ผ ํ๋ ์ผ์ ๋๋ค. ๊ทธ๋ฌ๋ ๋ฐ๋๋ก, ์ค๋๋ ์ฐ๋ ๊ธฐ์ ๋ํด ์ ์์ ์ธ ํ๋์ ์๋ํ๋ ๊ฒ์ ์คํ ๊ฐ๋ฅํ์ง ์์ต๋๋ค. ์ฐ๋ฆฌ๋ ์ด๋๊ฐ์ ์ ์ ๊ทธ์ด์ผ ํฉ๋๋ค.
์ฐธ๊ณ ๋ก ์ด ๋ ผ์๋ ๊ธฐ์กด ๋ฆฌ์กธ๋ฒ๋ฅผ ๋ฌด๊ธฐํ ์ ์งํด์ผ ํ๋์ง ์ฌ๋ถ์ ๋ํ ์ง๋ฌธ์ผ๋ก ์์๋์์ต๋๋ค. ์ด๋ฌํ ์ ์ค ์ด๋ ๊ฒ์ด ํด๋น ์ง๋ฌธ์ ์ค์ ๋ก ์ํฅ์ ๋ฏธ์น๋์ง ํ์คํ์ง ์์ต๋๋ค. ๊ธฐ์กด ํด๊ฒฐ์๊ฐ ์ณ์ง ์์ต๋๋ค. ์ฌ๋๋ค์ด ์ ์๊ณ ์๋ ๊ณ ์ฅ๋ ํ๋์ด๋ผ๊ณ ๋งํ ์ ์์ต๋๋ค. ๊ทธ๋์ ๋๋ ์์์ ๋งํ ๊ฒ์ ์ง์งํฉ๋๋ค. ์ด๊ธฐ ์ ํ ๊ธฐ๊ฐ์ด ์ง๋ ํ์๋ ์ด์ ๋ฆฌ์กธ๋ฒ๋ฅผ ์ ์งํ ์ด์ ๊ฐ ์์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ค์ ๋ก ๋ง์ ์ฌ์ฉ ์ฌ๋ก์ ๊ฒฝ์ฐ ์ด์ ๋ฐ ์ ํด์๊ธฐ๊ฐ ์ด์จ๋ ๋์ผํ ๊ฒฐ๊ณผ๋ฅผ ์ ๊ณตํ ๊ฒ์ ๋๋ค.
"์ค๋ฅธ์ชฝ"์ ์ฌ์ฉ์๊ฐ ๋ณ๊ฒฝ ์ฌํญ์ผ๋ก ์ธํด ๋ฌธ์ ๊ฐ ์๊ฒผ์ ๋ ์ค์ํ์ง ์์ต๋๋ค. ํ๋์ ๋ณํ๋ ์ผ๋ถ ์ฌ์ฉ์๋ฅผ ์ ๋์ ์ผ๋ก ํ๋๊ฒ ํ ๊ฒ์ ๋๋ค. ๊ทธ๋ค์๊ฒ ๊ทธ๋ค์ ์์ ํ๋ฆ์ด ์๋ชป๋์๊ณ ๋ณํ๊ฐ ํ์ํ๋ค๊ณ ๋งํ๋ ๊ฒ์ ๋์๊ฒ ๊ทธ๋ค์ง ํจ๊ณผ์ ์ธ ์ ๋ต์ด ์๋์์ต๋๋ค. ๋๋ ๋น์ ์ด ๊ทธ๊ฒ์ ๊ท๋ก ์ฐ์ฃผํด์ผํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ํ์คํ ์์ ๋ฆฌ์กธ๋ฒ๋ฅผ ์์ํ ์ ์งํ๊ณ ์ถ์ง๋ ์๊ฒ ์ง๋ง ์ฌ๋๋ค์๊ฒ ์ ์ง ๊ฒฝ๋ก๋ฅผ ์ ๊ณตํด์ผ ํ ๊ฒ์ ๋๋ค. ์๋ฅผ ๋ค์ด ๋ค๋ฅธ ์ฌ๋์ด ์ฑํํ๊ณ ์ ์ง ๊ด๋ฆฌํ๋ ํ๋ฌ๊ทธ์ธ์ ๋ง๋๋ ๊ฒ๊ณผ ๊ฐ์ด ์ฌ๋๋ค์ pip์ ๋ณ๋๋ก ์ค์นํ ์ ์์ต๋๋ค.
์ค๋๋ ์ฐ๋ ๊ธฐ์ ๋ํด ์ ์์ ์ธ ํ๋์ ํ๋ ค๊ณ ๋ ธ๋ ฅํ๋ ๊ฒ์ ์คํ ๊ฐ๋ฅํ์ง ์์ต๋๋ค. ์ฐ๋ฆฌ๋ ์ด๋๊ฐ์ ์ ์ ๊ทธ์ด์ผ ํฉ๋๋ค.
์, ํ์ง๋ง "์ค๋๋ ์ฐ๋ ๊ธฐ"๋ ๋ฌด์์ ๋๊น? ๋ฌด์์ด ๊ทธ๊ฒ์ ๊ตฌ๋ณํฉ๋๊น? ๋์ ์ ํฌ์ ์ข์ ์ ํฌ๋ ์ด๋ป์ต๋๊น(์ ๊ฒ์ด ํญ์ ๋ ์ข์ ๊ฒ์ ์๋๋ผ๋ ์ ์ ์ผ๋์ ๋์ญ์์ค)? ๋ด ์กฐ์ธ์ ์๋ฒ๋ฅผ ๋งค์ฐ ๋๋ฒ๊น ํ ์ ์๋๋ก ๋ง๋๋ ๋ฐ ๋ง์ ์๊ฐ์ ํ ์ ํ๋ ๊ฒ์ ๋๋ค. ์ ๋ฌธ๊ฐ๊ฐ ์๋ ์ฌ์ฉ์๊ฐ ์๋ชป๋ ๋ฉํ๋ฐ์ดํฐ๊ฐ ๋ฌธ์ ์ธ ๊ฒฝ์ฐ์ ํด๋น ์๋ชป๋ ๋ฉํ๋ฐ์ดํฐ๊ฐ ๋ฌด์์ธ์ง ์ฝ๊ฒ ์๋ณํ ์ ์๋๋ก ์ํฉ์ด ์ด๋๋ก ๊ฐ๋์ง ์ฝ๊ฒ ์ถ์ ํ ์ ์์ต๋๋ค. ์ด๊ฒ์ ํ์ฌ ๋๋ถ๋ถ์ ์ฌ์ฉ์์๊ฒ ์๋ ๊ธฐ์ ์ด๋ฉฐ ์์งํ ๋ด๊ฐ ๋ณธ ๋๋ถ๋ถ์ ์ฌ์ฉ์๋ ์ด ๊ธฐ์ ์ ๊ฐ๊ณ ์ถ์ดํ์ง ์์ต๋๋ค. ๋๋ ๋น์ (๋๋ ๊ทธ ๋ฌธ์ ์ ๋ํด์๋ conda)์ด ๋์ ๊ฒ๊ณผ ์ข์ ๊ฒ์ ๋ํด ์์ ํ ์ ํํ ์๋ ํด๋ฆฌ์คํฑ์ ๊ฐ์ง ์ ์์ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
๋ํ ์ผ๋ฐ์ ์ผ๋ก ๋ค์ด๊ทธ๋ ์ด๋๋ฅผ ์ํ์ง ์๋ ๊ฒฝ์ฐ์ ๋๋ค. ์ฌ์ฉ์๋ก์ ๋๋ ํจํค์ง๋ฅผ ์ฌ์ฉํ ์ ์๋ค๋ ์์ธ๊ฐ ๋ฐ์ํ๊ณ ๋ด๊ฐ ์ํ๋ ๊ฒฝ์ฐ ๋ช ์์ ์ผ๋ก 3.6์ ์ค์นํ๋๋ก ํ๊ณ ์ถ์ต๋๋ค.
@rgommers , conda 4.7์ด ์ฌ๊ธฐ๋ก ์ด๋ํ์ต๋๋ค. ๋ง์ด๋ ๋ฒ์ ์ ๋ณ๊ฒฝํ๋ ค๋ฉด ๋ช
์์ ์ธ Python ์ฌ์์ด ํ์ํฉ๋๋ค. ์ฌ๋๋ค์ ๊ทธ๊ฒ์ ์ซ์ดํ์ต๋๋ค. ๋ณด์ปฌ์ด ๋ช ๋ช
์ธ์ง๋ ๋ชจ๋ฅด๊ฒ ์ง๋ง ๋ง์ ์ฌ๋๋ค์ด ์์ ์๋ conda install
๋ฅผ ํ ์ ์์๋ค๋ ์ฌ์ค์ ์ ๋ง, ์ ๋ง ์ซ์ดํ์ง๋ง ์ง๊ธ์ ๊ทธ๋ ๊ฒ ํ ์ ์์ต๋๋ค. ๊ทธ๋ค์ ๊ทธ ์ด์ ์ ๋ํด ๋ณ๋ก ์ ๊ฒฝ์ ์ฐ์ง ์๊ณ , ๋๋ต์ ๋๋ถ๋ถ ๋ฌ๋์ง๋ง, ๊ทธ ๋์ ์ฐ๋ฆฌ๋ ์ฌ์ ํ ์ฒ๋ฆฌํด์ผ ํ ์ ๋๊ฐ์ ๊ฐ์ง๊ณ ์์ต๋๋ค. ์ ๋ ๋ค๋ฅธ ์
"์ค๋ฅธ์ชฝ"์ ์ฌ์ฉ์๊ฐ ๋ณ๊ฒฝ ์ฌํญ์ผ๋ก ์ธํด ๋ฌธ์ ๊ฐ ์๊ฒผ์ ๋ ์ค์ํ์ง ์์ต๋๋ค.
๋ ๋ค๋ฅธ ์๋ ์ฑ๋ ๊ฐ์ ๋ถ์ผ์น์ ๋๋ค. ์ต๊ทผ ์: ์ฐ๋ฆฌ๋ Python 3.7.3์ ์์๊ณ base๋ 3.7.4๋ฅผ ์ป์์ต๋๋ค. ๋๋ ์ด๋ฌํ ๋ฒ์ ์ฐจ์ด์ ๋ํด ์ ๊ฒฝ ์ฐ์ง ์์ผ๋ฉฐ ๋๋ถ๋ถ์ ์ฌ์ฉ์๋ ์ ๊ฒฝ ์ฐ์ง ์์ ๊ฒ์ ๋๋ค. ๊ธฐ๋ณธ "์๋ฌด๊ฒ๋ ํ์ง ์์"์ "์ด๋ด .4 > .3, ์ ๊ทธ๋ ์ด๋ํ๊ณ ํ์ํ ๊ฒฝ์ฐ ๋ค๋ฅธ ํจํค์ง์ ์ฑ๋์ ๊ธฐ๋ณธ์ผ๋ก ๋ณ๊ฒฝํฉ์๋ค(๋ค์ด๊ทธ๋ ์ด๋ํ๋๋ผ๋)"๋ณด๋ค ํจ์ฌ ๋ซ์ต๋๋ค.
์ด๊ฒ์ ํจ์ฌ ๋ ๋ณต์กํ ์ ์ ๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ๋ค๋ฅธ ์ต์ ํ ๊ธฐ์ค์ ์ ์ํ๊ณ ์์ต๋๋ค. https://www.anaconda.com/understanding-and-improving-condas-performance/ ์ ๋ธ๋ก๊ทธ ๊ฒ์๋ฌผ์์ ํ์ฌ 11๋จ๊ณ๋ฅผ ๋ณด์ จ์ ๊ฒ์ ๋๋ค.
์ด๊ฒ๋ค์ ๋งค์ฐ ๊น๋ค๋กญ๊ณ ๋ชจ๋ ์ํฉ์ ๋ง์กฑ์ํค๋ ์ ์ญ ์ต์ ์ ์์ต๋๋ค. ๋ฐ์ด๋๋ฆฌ ํธํ์ฑ๊ณผ ํด๋น ํธํ์ฑ์ ์ฌ์ผ๋ก์์ ์ฑ๋์ ๊ฐ์ํ ๋ ์ฑ๋์ ๊ฐ๋ ฅํ ์ฐ์ ์์๋ ๋งค์ฐ ์ค์ํฉ๋๋ค. ํ์ด์ฌ ๋น๋๋ ์ค์ํ์ง ์์ต๋๋ค. ๋น์ ๋ง์ด ์ณ์ต๋๋ค. ํ์ง๋ง ํ์ฌ๋ก์๋ ๋ฐ์ด๋๋ฆฌ ํธํ์ฑ ์ ์ฝ ์กฐ๊ฑด๊ณผ ๋จ์ํ๊ณ ๋จ์ํ ๋ฒ์ ์ ์ฝ ์กฐ๊ฑด์ ํํํ ๋ฐฉ๋ฒ์ด ์์ต๋๋ค. ๊ทธ๋ฅ ๋ด๋ฒ๋ ค ๋๋ ์๊ฐ์ ๋ํด ์๊ฐํ๋ ค๋ฉด ์ด ์ ๋ณด๊ฐ ํ์ํฉ๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด ๋น ๋ฅด๊ฒ ๋ฐ์ด๋๋ฆฌ ๋นํธํ์ฑ ์ง์ฅ์ ๋น ์ง๊ฒ ๋ ๊ฒ์ ๋๋ค.
์๋ ํ์ธ์, ์ด ๋ฌธ์ ์์ ์ ๋ฅผ ์ธ๊ธํด ์ฃผ์ @msarahan ์๊ฒ ๊ฐ์ฌ๋๋ฆฝ๋๋ค. ์ข ๋ ์ผ์ฐ ์ฐ๋ฝํ๊ณ ์ถ์์ง๋ง ์๊ฐ์ด ์์์ต๋๋ค.
์ค์ ๋ก libsolv
๋ฅผ conda ์ฌ์์ ๋ํ ์๋ฒ๋ก ์ฌ์ฉํ์ฌ ๊ฝค ๋ง์ ์คํ์ ํ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ๊ฒ์ ์๋ ํฉ๋๋ค. ์ด์ ๋จ์ ์ฐจ์ด์ ์ conda๊ฐ ๋น๋ ๋ฒํธ์ ๋ํด ๋ณ๋ก ์ ๊ฒฝ ์ฐ์ง ์์ง๋ง ์ฝ๋ฉ๋ ๋ฐฉ์(์ญ์ถ์ ์๋ฒ ์ฌ์ฉ)์ด libsolv์ ์๋ค๋ ๊ฒ์
๋๋ค. ์ ์ฒด repodata๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ์๋ libsolv๋ ์ ๋ง ๋น ๋ฆ
๋๋ค. libsolv์ ์๋๋ ์ง์ฆ๋์ง ์์ ์ ๋๋ก ๋น ๋ฆ
๋๋ค. :)
libsolv์ ๋ํ ๋์ ํฐ ๊ณตํ์ ํ๋ซํผ ๊ฐ ํธํ์ด ๊ฐ๋ฅํ์ฌ ์ด์ Windows, OS X ๋ฐ Linux์์ ์ปดํ์ผํ ์ ์๋๋ก ํ ๊ฒ์ ๋๋ค.
๋๋ ๊ทธ๊ฒ์ด ์ปดํ์ผ๋ ์ฝ๋์ ๋ฉ์ด๋ฆฌ(์ ์ด๋ ๋น ๋ฆ)์ด๊ณ @mlschroe ๊ฐ ๋์์ด ๋ ์ ์์์๋ ๋ถ๊ตฌํ๊ณ ์ ํด์๊ธฐ์ ๋ํด libsolv
๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ์ ์ ์ผ๋ก ์นํธํฉ๋๋ค. ์ฝ๋ค ๋งค์น์คํ.
๋ฐ๋ฉด์ ๋ฆฌ์กธ๋ฒ ๊ฐ๋ฐ์ด ์ด๋ ๋จ๊ณ์ ์๋์ง, ์ง๊ธ์ ์ด๋ฏธ ๋๋ฌด ๋ฆ์๋์ง, ์ปดํ์ผ๋ ์ฝ๋๊ฐ ํ์ฉ ๊ฐ๋ฅํ์ง ์ฌ๋ถ๊ฐ ํ์คํ์ง ์์ต๋๋ค.
https://www.anaconda.com/understanding-and-improving-condas-performance/ ์ ๋ธ๋ก๊ทธ ๊ฒ์๋ฌผ์์ ํ์ฌ 11๋จ๊ณ๋ฅผ ๋ณด์ จ์ ๊ฒ์ ๋๋ค.
์ค์ ๋ก ๋๋ ๊ทธ๋ฌ๋ค. ์ข์ ๋ธ๋ก๊ทธ ๊ธ์ด์์ต๋๋ค.
๊ธฐ๋ณธ์ ์ผ๋ก ๋ค๋ฅธ ์ต์ ํ ๊ธฐ์ค์ ์ ์ํ๊ณ ์์ต๋๋ค.
์ค๋ง. ๋๋ ๋น์ ์ _"์ด์ง ํธํ์ฑ ์ ์ฝ ๋ ํ๋ฒํ๊ณ ๋จ์ํ ๋ฒ์ ์ ์ฝ"_์ด ์๋ง๋ ๋ด๊ฐ ๋์น๊ณ ์๋ ๊ฒ์ ๊ฐ๋ฆฌํฌ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ๋ด๊ฐ ์์ํ๋ ๋ฐ๋ ์ด๋ค ํจํค์ง๋ ๋ฉํ๋ฐ์ดํฐ์ python >= 3.7.4
๋๋ == 3.7.4
๊ฐ ์์ด์ผ ํ๋ค๋ ๊ฒ์
๋๋ค. ํญ์ == 3.7
์
๋๋ค(scipy์ ๋ํด ํ์ธํ์ง๋ง meta.yaml
๋ python
๋ฐ conda_forge.yml
๋ max_py_ver: '37'
๋ฅผ ์๋ฏธํฉ๋๋ค. ๋ฐ๋ผ์ 3.7.4
๋ฅผ ๋์
ํ๋ฉด ์๋ฌด ๊ฒ๋ ํ์ง ์์์ผ ํฉ๋๋ค 3.7.3
๋ฅผ ์ ํํ๊ณ ๋ค๋ฅธ ๊ฒ์ ๋ณ๊ฒฝํ์ง ์๋ ๋ฆฌ์กธ๋ฒ๋ 3.7.4
๋ฅผ ๊ฐ์ ์คํํ๊ณ ์
/๋ค์ด ๋ฑ๊ธ์ ์ฒด์ธ.
pip
์ถ์ ๊ณํ์์ ์ด ๋ถ๋ถ์ด ์ฃผ์ ์์ ๋ฒ์ด๋ฌ์ ๊ฒ ๊ฐ์ผ๋ ์ด ๋ถ๋ถ์ ๋ค๋ฅธ ๊ณณ์ผ๋ก ๊ฐ์ ธ๊ฐ๊ฒ ๋์ด ๊ธฐ์ฉ๋๋ค.
๋ด ์กฐ์ธ์ ์๋ฒ๋ฅผ ๋งค์ฐ ๋๋ฒ๊น ํ ์ ์๋๋ก ๋ง๋๋ ๋ฐ ๋ง์ ์๊ฐ์ ํ ์ ํ๋ ๊ฒ์ ๋๋ค.
+1
๋ํ: ๊ฐ๋ฅํ ํ ์๋ฆฌํ ์ ์๋๋ก ํ์ญ์์ค. ์ง๊ธ์ pip
์ ์ข์ ์ ์
๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ฉด cd site-packages && rm -rf troublesome_package
(์๋ง๋ --no-deps
๋ฅผ ์ฌ์ฉํ ์ฌ์ค์น๊ฐ ๋ค๋ฐ๋ฅผ ์ ์์)๋ฅผ ์ํํ ์ ์๊ณ ๋ชจ๋ ๊ฒ์ด ๋ค์ ์๋ํฉ๋๋ค. conda
, apt
๋ฐ ์น๊ตฌ์ ๊ฐ์ ์ฌ๋๋ค์ ๊ทธ๋ฐ ์์ผ๋ก ์๋ฆฌํ๊ธฐ๊ฐ ํจ์ฌ ์ด๋ ต์ต๋๋ค.
๊ธฐ๋ณธ์ ์ผ๋ก ๋ค๋ฅธ ์ต์ ํ ๊ธฐ์ค์ ์ ์ํ๊ณ ์์ต๋๋ค.
๋๋ ๋น์ ์ด ์๊ฐ์ ์ฑ๋์ ๊ฐ๋ ์ ์ถฉ๋ถํ ๊ณ ๋ คํ๊ณ ์๋ค๊ณ ์๊ฐํ์ง ์์ต๋๋ค. ํ๊ณผ ์ผ๋ง๋ ๊ด๋ จ์ด ์๋์ง ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. ํ์คํ conda๋ณด๋ค ํจ์ฌ ์ ์ง๋ง ์์ ํ ๊ด๋ จ์ด ์๋์ง ํ์คํ์ง ์์ต๋๋ค. ์ฌ๋๋ค์ ์ฌ์ ํ โโํ ๋ฒ์ ๋ ์ด์์ ์ธ๋ฑ์ค์์ ํจํค์ง๋ฅผ ์์งํ ์ ์์ต๋๋ค. ๊ทธ๋ ์ฃ ?
ํจํค์ง์๋ python >=3.7.4 ๋๋ ==3.7.4๊ฐ ์์ต๋๋ค. ์ฝ๋ค ํจํค์ง์ ํ์ค์ ์ํ๊ณผ ํํ์ ๊ฐ๋ ๊ฒ์ ๋๋ค. ์ด๋ ์ผ๋ฐ์ ์ผ๋ก ํธํ ๊ฐ๋ฅํ ๋ฒ์๋ฅผ ๊ณ ๋ คํ ๋ฒ์ ์ ์์น์ ๋ํด ๋ ์ํผ ์์ฑ์๊ฐ ์ ๊ณตํ ์ ๋ณด๋ฅผ ์ฌ์ฉํ์ฌ conda-build์ ์ํด ์๋์ผ๋ก ๊ฒฐ์ ๋ฉ๋๋ค. ํจํค์ง์๋ >=3.7.2,<3.8.0a0๊ณผ ๊ฐ์ ์ ์ฝ ์กฐ๊ฑด์ด ์์ผ๋ฉฐ ์ํํ โโ๋ฒ์ ์ด .0 ๋ฆด๋ฆฌ์ค ๋ฏธ๋ง์ด๊ณ ๋ฐ๋ผ์ ์ฌ๋๋ค์ด ๊ทธ๋ ์ง ์์ ๊ฒฝ์ฐ <3.8.0 ์ฌ์๊ณผ ์ผ์นํ๋ค๋ ์ฌ์ค์ ์ค๋ช ํ๊ธฐ ์ํด 0a0 ์ด์ํจ์ด ์์ต๋๋ค. ์ ๋ง ๊ธฐ๋ํฉ๋๋ค.
ํจํค์ง์๋ ์ฐ๊ด๋ ์ฑ๋๋ ์์ต๋๋ค. ์ด ์ฑ๋์ ํจ๊ณผ์ ์ผ๋ก ๋ฒ์ ์ต์ ํ์ ์ผ๋ถ์
๋๋ค. https://github.com/conda/conda/blob/4.6.7/conda/resolve.py#L1074 - ์ฑ๋์ ์ํผ ๋ฒ์ ๊ณผ ๊ฐ์ต๋๋ค. ํจํค์ง์ ์ฃผ์ ๋ฒ์ . ํด๊ฒฐ์ด python์ ๋ณ๊ฒฝํ์ง ์์์ผ ํ๋ ๊ฒฝ์ฐ python ์ฌ์์ python ==3.7์ผ ์ ์์ต๋๋ค. ์ฆ, ๋ฒ์์ด๋ฉฐ ์ฑ๋์ด ํด๋น ๋ฒ์์ ์ํฅ์ ๋ฏธ์นฉ๋๋ค. ํนํ, python ==3.7 ์ฌ์์ ๊ฐ๊ณ defaults
์ฑ๋์์ ์ค์น๋ฅผ ์์ํ ๋ค์ conda-forge
์ฑ๋์ ์ถ๊ฐํ๋ฉด ๋ง์ ์ดํ์ด ๋ฐ์ํฉ๋๋ค. "๋ฒ์ "(์ฑ๋ ํฌํจ)์ด ๋ ๋๊ณ Python ์ฌ์์ ํด๋น ๋ณ๊ฒฝ ์ฌํญ์ ํ์ฉํฉ๋๋ค.
Conda 4.7์ ํจ์ฌ ๋ ๊ณต๊ฒฉ์ ์ธ ์ฌ์์ "๊ณ ์ "์ ๋์ ํ์ผ๋ฉฐ ํ๋์ด ๋น์ ์ด ์ถ๊ตฌํ๋ ๊ฒ์ด๋ผ๊ณ ํ์ ํฉ๋๋ค. ํ์ง๋ง ๊ฝค ๋ณต์กํฉ๋๋ค. ๋ช ์์ ์ฌ์๊ณผ ์ถฉ๋ํ์ง ์๋ ํญ๋ชฉ๋ง ๊ณ ์ ํ๋ ๊ฒ์ผ๋ก ์์ฝ๋ฉ๋๋ค. "์ถฉ๋"์ ๊ฒฐ์ ํ๋ ๋ฐฉ๋ฒ์ ์ด๋ ค์ด ๋ถ๋ถ์ ๋๋ค. ์ฐ๋ฆฌ๋ ์๋ฒ๊ฐ ํด๋น ํจํค์ง์ ๋ํ ์ข ์์ฑ ๊ทธ๋ํ์ ์ผ๋ถ์ธ ์ต์ ํจํค์ง๋ฅผ ์ฌ์ฉ์์๊ฒ ์ ๊ณตํ๋ ๊ฒ์ ๋ฐฉํดํ๋ ๊ฒ๋ค์ ๋๊ฒฐํ์ง ์๋ ๊ฒ์ด ๋ ๋ซ๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ด ๋๊ฒฐ์ conda๊ฐ ํ ์ ์๋ ๋ฐฉ์์ผ๋ก pip์ ๋ํด ์ฌ์๋ณ๋ก ์ํํ ์ ์๊ธฐ ๋๋ฌธ์ ์ธ๊ธํ ๊ฐ์น๊ฐ ์์ต๋๋ค. ์ญ์ถ์ ์๋ฒ์ ๋ํ ํ๋ฅญํ ์ต์ ํ๊ฐ ๋ ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
๋ํ: ๊ฐ๋ฅํ ํ ์๋ฆฌํ ์ ์๋๋ก ํ์ญ์์ค. ๊ทธ๊ฒ์ ์ง๊ธ pip์ ์ข์ ์ ์ ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ์๋ง์ธ ๊ฒฝ์ฐ cd site-packages && rm -rf Troublesome_package(--no-deps๋ก ์ฌ์ค์น๊ฐ ๋ค๋ฐ๋ฅผ ์ ์์)๋ฅผ ์ํํ ์ ์๊ณ ๋ชจ๋ ๊ฒ์ด ๋ค์ ์๋ํฉ๋๋ค. conda, apt ๋ฐ ์น๊ตฌ์ ๊ฐ์ ๊ฒ์ ๊ทธ๋ฐ ์์ผ๋ก ์๋ฆฌํ๊ธฐ๊ฐ ํจ์ฌ ์ด๋ ต์ต๋๋ค.
์, ์ด๊ฒ์ ๋งค์ฐ ์ค์ํฉ๋๋ค. ๋๋ pip๊ฐ ๊ทธ๊ฒ์ ๊นจ๋จ๋ฆฌ๊ธฐ๊ฐ ๋ ํ๋ค๋๋ก ํ๋ช ํ๊ฒ ํ๋งคํ๋ ์ผ์ ์ํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ๊ทธ๊ฒ์ ๋งค์ฐ ํ๋ช ํ๊ณ conda๋ ๊ทธ๋ก๋ถํฐ ๋ฐฐ์ฐ๊ณ ์์ต๋๋ค. ์ปดํ์ผ๋ ์ฝ๋๋ฅผ ์ฌ์ฉํ๊ฒ ๋๋ฉด ์ ์ ์ผ๋ก ์ฐ๊ฒฐ๋์ด ์๋์ง ํ์ธํ๊ฑฐ๋ ๋์ ๋ก๋ฉ์ด ๋ฌธ์ ๋ฅผ ์ผ์ผํฌ ์ ์๋์ง ํ์ธํ์ญ์์ค.
(libsolv tangent: RH์์ ์ผํ ๋ https://pypi.org/project/solv/๋ฅผ ์ก๊ณ Fedora์ "pip install solv" ๋ณด์ ํ์ ์ ๋ซ์์ต๋๋ค. libsolv ๋น๋ ํ๋ก์ธ์ค๋ ํ์ฌ sdist ๋๋ wheel ์์นด์ด๋ธ, PyPI์ ๊ฒ์๋ ๊ณ ์ฌํ๊ณ ์ง๊ธ๊ณผ ๊ฐ์ ๋ฌดํดํ ์๋ฆฌ ํ์์๋ณด๋ค๋ libsolv์ ๋ฒ๋ค ์ฌ๋ณธ์ผ๋ก ์ค์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฐ์ธ๋ฉ์ ๋ง๋๋ ๋ฐ ๊ด์ฌ์ด ์๋ ์ฌ๋๊ณผ ์ฑํ ํ๊ฒ ๋์ด ๊ธฐ์ฉ๋๋ค)
๋ด "์ตํธ์์" ์ฝ๋ฉํธ์ ๊ด๋ จํ์ฌ "์ด์ ์ค์น ๋ ผ๋ฆฌ๋ก ๋์๊ฐ๊ธฐ"๋ฅผ ์๋ฏธํ๋ ๊ฒ์ด ์๋๋ผ "์ ์ฒด ์ค์น ์์ฒญ์ ์คํจํ๋ ๊ฒ๋ณด๋ค ์ ์ฝ ์กฐ๊ฑด ์๋ฐ์ ์ผ์ผํฌ ์ ์๋ ํจํค์ง ์ค์น๋ฅผ ๊ฑด๋๋ธ ์ ์๋ ์ต์ ์ ๊ณต"์ ์๋ฏธํฉ๋๋ค.
Yum/DNF๋ --skip-broken
์ต์
(DNF์์ ํด๋น ํ๋๊ทธ๋ --setopt=strict=0
์ ๋ณ์นญ์)์ ํตํด ์ด๋ฅผ ์ ๊ณตํ๋ฉฐ pip
์ ๋ฆฌ์กธ๋ฒ๋ ๋น์ทํ ์ต์
์ ์ ๊ณตํด์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
@ncoghlan ์ ๋ง๋ค. ๊ทธ๊ฒ์ ์๋ฏธ๊ฐ ์์ต๋๋ค.
"์ด ํจํค์ง์ ๋ฒ์ ์ถฉ๋ ๋ฌด์" ์คํ์ผ ์ต์
์ฐ๋ฆฌ๊ฐ ๊ทธ๋ ๊ฒ ํ ๊ฒ์ด๋ผ๊ณ ์ด๋ฏธ ์ธ๊ธํ๊ธฐ ๋๋ฌธ์ ๊ทํ์ ์๊ฒฌ์ด ํผ๋์ค๋ฌ์์ก์ต๋๋ค.
๊ทธ๋ ์ฐ๋ฆฌ๋ ๊ฐ์ ํ์ด์ง์ ์์ต๋๋ค. :)
@ncoghlan ์ distutils-sig ์์ ๋ด๊ฐ ์ ์ํ ํ์๋ผ์ธ ์ ๋ต์ฅํ์ผ๋ฉฐ ํฉ๋ฆฌ์ ์ผ๋ก ๋ค๋ฆฐ๋ค๊ณ ๋งํ์ต๋๋ค.
@pradyunsg - ๋ค์ ์๊ฐ ์ ๋ฐ์ดํธ๋ฅผ ๊ธฐ๋ํฉ๋๋ค!
๋๋ ์ด๊ฒ์ ๋ค์ ํ ๋ฒ ์ดํด๋ณด๊ณ #7317์ ์ ์ถํ๋ค.
pip์ ์ธ๋ฑ์ค ์ํธ ์์ฉ, ์ข ์์ฑ ํด๊ฒฐ + ๋น๋ ๋ ผ๋ฆฌ ๋ถ๋ฆฌ ๋ฐ ์ผ๋ฐ์ ์ธ ์ ๋ฆฌ์ ๋ํ ๋ง์ ์์ ๋๋ถ์ ์ถ์ํ์ ๊ฑฐ์ ๋๋ฌํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
๋ฐฉ๊ธ #7317์ ๋ซ์์ต๋๋ค. ๋ด๊ฐ ๋งํ ์ ์๋ ํ, ์ข ์์ฑ ํด๊ฒฐ์ ์ด์ ๋ฉํ๋ฐ์ดํฐ ๋น๋ ๋ก์ง์์ (์ถฉ๋ถํ) ๋ถ๋ฆฌ๋์์ต๋๋ค. ๋น๋ ๋ก์ง ๋ฆฌํฉํฐ๋ง์ด ์ ์งํ๋์์ผ๋ฉฐ ๋ ์ด์ ์งํ์ ๋ฐฉํดํ๋ ์์๊ฐ ์๋๋๋ค.
์ด์ ์ ์ ํ ๊ฒฝ์ฐ [passa] ๋ฐ ์์ ๋ฆฌ์กธ๋ฒ ์์ ์ฐธ์กฐ๋ฅผ ์ฌ์ฉํ์ฌ pip์์ [resolvelib] ์ถ์ํ๋ฅผ ๊ตฌํํ๋ ์์ ์ ์์ํ ์ ์์ต๋๋ค. :)
@pradyunsg ์ ๋ Poetry ์ฝ๋๋ฒ ์ด์ค์์ base resolver(PubGrub ๊ธฐ๋ฐ)๋ฅผ ์ถ์ถํ ๊ณํ์ ๋๋ค(https://github.com/sdispater/poetry/tree/master/poetry/mixology ์ฐธ์กฐ). ๋๋ถ๋ถ ๋๋จธ์ง ์ฝ๋์ ๋ถ๋ฆฌ๋์ด ์์ง๋ง ์ถ์ํํด์ผ ํ๋ ๋ด๋ถ ๋ถ๋ถ์ ๋ํ ์ฐธ์กฐ๊ฐ ์ฌ์ ํ ์์ต๋๋ค.
๋์์ด ํ์ํ์๋ฉด ์ ์๊ฒ ์๋ ค์ฃผ์ญ์์ค. ์์ด๋์ด๋ ํ์ฌ์์ ์ฌ์ฉํ ์ ์๋ PubGrub ์๊ณ ๋ฆฌ์ฆ์ ๋ ๋ฆฝ ์คํํ ๊ตฌํ์ ๊ฐ๋ ๊ฒ์ด๋ฉฐ ํ์ฌ ์ด์ ๋ฆฌ์กธ๋ฒ์ ์ฝ๋๋ฅผ ๋ณด์ ํ๊ณ ์๋ https://pypi.org/project/mixology/ ์ ํฌํจ๋ ๊ฒ์ ๋๋ค.
@sdispater ํ์คํ! ๋ด๊ฐ ์ง์ ๋์ธ ์ ์์์ง๋ ๋ชจ๋ฅด๊ฒ ์ง๋ง(์๊ฐ ์ ์ฝ) ๋๋จธ์ง ์์์ PubGrub ํฌํธ๋ฅผ ๋ถ๋ฆฌํ ์ ์๋ค๋ฉด ์ ๋ง ์ข์ ๊ฒ์ ๋๋ค!
์ ๋ง ์ข์ ๊ฒ ์ค ํ๋๋ pip,์ ๋ฐ pipenv๊ฐ ๋์ผํ ์ถ์ํ๋ฅผ ์ฌ์ฉํ๋๋ก ์ผ๊ด๋ ์ถ์ํ ๊ณ์ธต์ ๊ฐ๋ ๊ฒ์ ๋๋ค. ์ง๊ธ ์ฐ๋ฆฌ๋ zazo(๊ด์ฐ), mixology(์) ๋ฐ resolvelib(pipenv's)๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค. ๋ชจ๋ ์ผ์ข ์ ์ถ์ํ ๊ณ์ธต์ ์ ์ํ๊ณ ์ฝ๊ฐ ๋ค๋ฅด์ง๋ง (์๊ธฐ๊ฒ๋!) ๋น์ทํฉ๋๋ค. ์ด ์ฌ์ค์ ์๊ณ ๊ณ์๋ค๋ฉด ์ ํฌ์๊ฒ ์๋ ค์ฃผ์ธ์!
์ฐธ๊ณ ๋ก, ์ฐ๋ฆฌ( @wolfv ๋ฐ @QuantStack ํ ์ผ๋ฐ์ ์ผ๋ก)๋ pip ์ข ์์ฑ ํด์๊ธฐ์ ๋ํ RfP์ ์๋ตํ์ต๋๋ค.
์ ์๋ ์ ๊ทผ ๋ฐฉ์์ libsolv
C ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฑํํ๊ณ pip์ ๋ฒ์ ์ ํ ํ์์ ๋ํ ์ง์์ libsolv์ ๊ธฐ์ฌํ๋ ๊ฒ์
๋๋ค. ์ฐ๋ฆฌ๋ ์๋ก์ด ํ์ด์ฌ ๋ฐ์ธ๋ฉ์ ํตํด C ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋
ธ์ถํ ๊ฒ์
๋๋ค.
Libsolv๋ RPM ์ํ๊ณ์ ๊ธฐ๋ฐ์ด ๋๋ ๊ฐ๋ ฅํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ด๋ฏ๋ก ์ด๋ฏธ ์ฐ์ ๊ท๋ชจ๋ก ์ฌ์ฉ๋ฉ๋๋ค.
rpm
, deb
์ ๊ฐ์ ์ฌ๋ฌ ํจํค์ง ๋ฐ ์ ์ฅ์ ํ์์ ์ง์ํฉ๋๋ค.haiku
, conda
, arch
. ์ค์ํ ๊ฒ์ ๋ค์ํ ํ์๊ณผ ํํ ๋ฐฉ์์ ์๋ ์ ๊ทผ ๋ฐฉ์์ libsolv C ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฑํํ๋ ๊ฒ์ ๋๋ค.
libsolv๊ฐ ์ง์ํ์ง ์๋ ํ๋ซํผ์ ๋ํ ๋์ฒด๊ฐ ํ์ํฉ๋๋ค(์: pip์ AIX ์ง์์ด ํ๋ฐํ๊ฒ ์์ ์ค์ด๊ณ BSD์ ๋ํด ์ธ๊ธํ์ง ์์์ต๋๋ค). ๋ฐ๋ผ์ libsolv๋ฅผ ์ฌ์ฉ ๊ฐ๋ฅํ ์ฑ๋ฅ ์ต์ ์ผ๋ก ์ฌ์ฉํ๋ ๊ฒ์ด ๊ทธ๋ด๋ฏํ์ง๋ง ์ค์ ๋ก ๋ ์ฌ์ฉํ ์ ์๋ ์์น์ ์์ง ์์ต๋๋ค. (์์ํ Python ๋ฒ์ ์ libsolve๊ฐ ์์ต๋๊น, ์ฆ ๋์ผํ ๊ฒฐ๊ณผ๋ฅผ ์ ๊ณตํ์ง๋ง ์๋๊ฐ ๋ ๋๋ฆด๊น์?)
๋ํ get-pip.py๋ ์ด๋ป๊ฒ ์๋ํฉ๋๊น? ๊ฐ๋ฅํ ๋ชจ๋ ํ๋ซํผ์ ๋ํด libsolv์ฉ ๋ฐ์ด๋๋ฆฌ๋ฅผ ํฌํจํด์ผ ํฉ๋๊น? ๋ค์ ๋งํ์ง๋ง, ์ฐ๋ฆฌ๋ ์์ ํ์ด์ฌ ํด๋ฐฑ์ ์ฌ์ฉํ ๊ฒ์ด๋ผ๊ณ ๊ฐ์ ํฉ๋๋ค.
์ธ๋ถ C ์ฝ๋๋ฅผ ์ฌ์ฉํ ์ ์๋ค๋ ๊ฒ์ ์ด์ ์ค๋ซ๋์ pip์๊ฒ ๊ณจ์นซ๊ฑฐ๋ฆฌ์์ต๋๋ค. ๋๋ ๊ทธ๊ฒ์ ๋ํ ์ข์ ์๋ฃจ์ ์ ๋ณด๊ณ ์ถ์ง๋ง (a) (์ฐ๋ฆฌ๊ฐ ์์ ํ ๋ฒค๋๋ฅผ ์ทจ์ํ ์ ์๊ฒ ํด์ฃผ๋ "๋ฏธ๋ ํ" ๋ถํธ์คํธ๋ํผ ์๋ฃจ์ ์ ์ฝ์ด) ํ๋๊ฐ ์๋์ง ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. (b) ์๋ก์ด ๋ฆฌ์กธ๋ฒ๊ฐ ๊ทธ๊ฒ์ ์์กดํ๋ ๊ฒ์ ์ซ์ดํ ๋งํผ ์ถฉ๋ถํ ํฐ ์์ ์ ๋๋ค.
์๋ ํ์ธ์ @pfmoore
libsolv๊ฐ ์๋นํ ์ง๊ด์ ์ธ C ์ฝ๋์ด๊ธฐ ๋๋ฌธ์ ์ถ๊ฐ ํ๋ซํผ ์ง์์ ๋ฌ์ฑํ๋ ๊ฒ์ด ๊ทธ๋ ๊ฒ ์ด๋ ต์ง ์์์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ๋๋ libsolv์ ์์ํ Python ๋ฒ์ ์ด ์๋ค๊ณ ํ์ ํ์ง๋ง(๋ด๊ฐ ์ดํดํ๋ ๊ฒ์ ๋จ์ ์ด์ง๋ง Python์ ์์ํ Python ๋ฒ์ ์ด๋ Python ํ์ค lib๋ ์๊ธฐ ๋๋ฌธ์ ๋ด ์๊ฐ์๋ ์ฐจ๋จ์ ).
๋ถํธ์คํธ๋ฉ์ ๊ฒฝ์ฐ ํ์ฌ ํด๊ฒฐ ๋ฉ์ปค๋์ฆ์ ์ฌ์ฉํ๋ ์์ํ Python pip๊ฐ ์์ ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ๊ทธ๋ฐ ๋ค์ libsolv๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ์ํ ๋ฆฌ์กธ๋ฒ lib๋ฅผ ์ค์นํฉ๋๋ค. ์๋ฅผ ๋ค์ด libsolv + pip ํน์ Python ๋ฐ์ธ๋ฉ์ ์ ํํ ํจํค์ง๋ฅผ ๊ณ ์ ํ๊ณ ์ค๋ช ํ๋ ๋๋ก boosttrap-pip์์ ์ค์นํ ์ ์์ต๋๋ค. ๊ทธ๊ฒ์ ๋์๊ฒ ์์ ํ ํ ์ ์๋ ๊ฒ์ฒ๋ผ ๋ค๋ฆฌ์ง๋ง, ๊ด๋ จ๋ ๊ฒ์ด ๋ฌด์์ธ์ง ๋ ์ ์ ์ ์์ต๋๋ค ...
์ถ๊ฐ ํ๋ซํผ ์ง์์ด ๊ทธ๋ ๊ฒ ์ด๋ ต์ง ์์์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
๋ถ๋ช
ํ ๋งํด์, ์ ๋ ๋ ๋ง์ ํ์ ํ๋ซํผ์ ๊ธฐ๋๊ถ์ด ์์ต๋๋ค. pip๊ฐ ์ง์๋๋ ํ๋ซํผ(ํ์ฌ ๊ธฐ๋ณธ์ ์ผ๋ก "Python์ ์คํํ ์ ์๋ ๋ชจ๋ ๊ฒ")์ ์ํฅ์ ๋ฏธ์น๋์ง ๋งค์ฐ ๋ช
ํํด์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ). C ํ์ฅ์ ์ ๊ณตํ๋ ๋ฐฉ๋ฒ์ ๋ํ ๋ฐฐํฌ ์ง๋ฌธ๋ ์์ต๋๋ค(pip๋ ํ์ฌ "๋ฒ์ฉ" ํ ๋ก ์ ๊ณต๋๋ฉฐ ์ด๋ get-pip.py
์ ๊ฐ์ ์ผ๋ถ ์ฌ์ฉ ์ฌ๋ก์์ ์ค์ํฉ๋๋ค).
๋ถํธ์คํธ๋ํ์ ์ํด ํ์ฌ ๋ฉ์ปค๋์ฆ์ ์ฌ์ฉํ์ฌ ํด๊ฒฐํ๋ ์์ํ Python pip๋ฅผ ๊ฐ์ง ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
๋๋ ์์์ ์ฃผ์ฅํ๊ณ ์ฌ๊ธฐ์ ๋ฐ๋ณตํ ๊ฒ์ ๋๋ค. ๋๋ ์ ๋ง๋ก ๋ ๊ฐ์ ๋ฆฌ์กธ๋ฒ๋ฅผ pip์์ ๋ฌด๊ธฐํ์ผ๋ก ์ ์งํ๊ณ ์ถ์ง ์์ต๋๋ค.
ํ์ง๋ง ์ ์์ ๋ํด ๋๋ฌด ๋ถ์ ์ ์ธ ์๊ฐ์ ํ๊ณ ์ถ์ง๋ ์์ต๋๋ค. ํ์ฌ C ํ์ฅ์ ๋ํ ์ข ์์ฑ์ ์ธ์ํ์ง ๋ชปํ๋ ๊ฒฝ์ฐ๋ฅผ ๋๋นํ์ฌ ํ์ฌ C ํ์ฅ์ ๋ํ ์ข ์์ฑ์ ํ์ฉํ์ง ์๋ ๋ช ๊ฐ์ง ์ด์ ์ ํ๋๊ทธ๋ฅผ ์ง์ ํ๊ณ ์ถ์์ ๋ฟ์ ๋๋ค.
ํ ๋ก ์ ์๋ง๋ ๋ค๋ฅธ ๊ณณ์์ ๋ ์ ํฉํ ๊ฒ์ด๋ฉฐ ๋ ์์ธํ ๋ด์ฉ์ด ๊ณต๊ฐ๋๋ฉด ์์ ํ ์ค๋ณต๋ ์ ์์ง๋ง ์ง๊ธ์ ์ ๋ง ์ ์ง๋ฌธ์ ํ๊ณ ์ถ์ต๋๋ค.
๋ด ์ดํด์ ๋ฐ๋ฅด๋ฉด libsolv๋ ์ข
์์ฑ ํด๊ฒฐ์ ์ํด ์์ ํ SAT ์๋ฒ๋ฅผ ์ฌ์ฉํ๋ฉฐ ํด๊ฒฐ์ ์์ํ๊ธฐ ์ ์ ๋จผ์ ์ข
์์ฑ ์ ๋ณด๋ฅผ ๋ก๋ํด์ผ ํฉ๋๋ค. ๊ทธ๋ฌ๋ ํ์ฌ PyPI๋ ํจํค์ง๋น ์ข
์์ฑ ๋ฉํ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํฉ๋๋ค. setup.py
์ ๋ฐํ์ ์ข
์์ฑ์ ๋ฌด์ํ๋๋ผ๋ SAT ์๋ฒ์ ํ์ํ ์ ๋ณด๋ฅผ ํจ์จ์ ์ผ๋ก ๊ฐ์ ธ์ค๊ธฐ๊ฐ ์ด๋ ต์ต๋๋ค.
์ด ๋ฌธ์ ๋ฅผ ์ด๋ป๊ฒ ์ฒ๋ฆฌํ ๊ณํ์
๋๊น? ํจํค์ง๊ฐ ์
๋ก๋๋ ๋ .solv
ํ์ผ์ ์์ฑํ๊ธฐ ์ํด ์ธํ๋ผ๋ฅผ ๊ตฌํ(๋ฐ ํ์ฌ repo ๊ตฌํ์ ์ํ ์ถ๊ฐ ์ฌ์ ์ ์)ํ ๊ณํ์
๋๊น? ์๋๋ฉด ์๋ฒ๊ฐ ์งํ๋๋ฉด์ ์ ์ ํ ํด๊ฒฐ ๊ฐ๋ฅํ ๋ฐ์ดํฐ๋ฅผ ์์ฑํ๊ณ ์๋ก์ด ์ข
์์ฑ ๋ฐ์ดํฐ๊ฐ ๋ค์ด์ฌ ๋ ์ผ๋ถ ์ญ์ถ์ ์ ๊ตฌํํ๋ ์ ๋ต์ด ์์ต๋๊น?
๋๋ ์ด์ ๊ด๋ จํ์ฌ ๊ธฐ์กด ์์ ์ ๋ํด ์์ง ๋ชปํ๋ฉฐ ๋ด๊ฐ ์ฐพ์ ์ ์๋ ๋๋ถ๋ถ์ ๋ฆฌ์์ค๋ Python ํจํค์ง ํ๊ฒฝ์ ์ง์ ์ ์ธ SAT ์๋ฒ ์ด์์ ๊ฒ์ด ํ์ํ๋ค๊ณ ์ ์ํฉ๋๋ค. ๊ทธ๋์ ์ ๋ ์ฌ๊ธฐ์ ์๋ ๋ชจ๋ ๊ฐ๋ฅ์ฑ์ ๋งค์ฐ ๊ด์ฌ์ด ์์ต๋๋ค.
์ด๋ฌํ .solv ํ์ผ์ ์บ์ฑ์ฉ์ด๋ฉฐ libsolv๋ ํด๊ฒฐ์ ์ํด ํ์ํ์ง ์์ต๋๋ค. ๊ทธ๋ฌ๋ PyPI ์ข ์์ฑ์ ๋์ ํน์ฑ์ผ๋ก ์ธํด SAT ์๋ฒ๋ฅผ ์ฌ์ฉํ๊ธฐ ์ด๋ ต๋ค๋ ๋ฐ ๋์ํฉ๋๋ค.
(์์ธํ ๋ด์ฉ์ https://docs.google.com/document/d/1x_VrNtXCup75qA3glDd2fQOB2TakldwjKZ6pXaAjAfg/edit ์ฐธ์กฐ)
(์ฐธ๊ณ ๋ก SAT ์๋ฒ๋ ์ถฉ๋์ด ๋ฐ์ํ๋ฉด ์ ํ์ต๋ ํ๋ ์ญ์ถ์ ์๋ฒ์ด๋ฏ๋ก PyPI์ฉ SAT ์๋ฒ๋ฅผ ์ฌ์ฉํ ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ํ์ง๋ง ๋์ ์ผ๋ก ์ ์ ์ถ๊ฐํ ์ ์๋ ์๋ฒ์ฌ์ผ ํฉ๋๋ค. ํด๊ฒฐํ๋ฉด์.)
Sat ์๋ฒ๋ ์์ฆ ๋์ ์ถ๊ฐ, ๋ค์ ์์, ์ญ์ถ์ , ์์ ๋ค์ ์์ ๋ฑ์ ํฌํจํ์ฌ ๋ช ๊ฐ์ง ์ค์ํ ๊ธฐ๋ฅ์ ๊ฐ์ง๊ณ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ฌ๊ธฐ์ ๋ฌธ์ ๋ ๋ถ๋ถ์ ์ผ๋ก ๋น๋ํ ์ ์๋ค๋ ๋ณด์ฅ์ด ์๋ ํ๋ซํผ์ ์ง์ํด์ผ ํ ํ์์ฑ๊ณผ ๊ด๋ จ๋ ๊ธฐ์ ์ ์ธ ๋ฌธ์ ๊ฐ ๋ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. C ๊ธฐ๋ฐ ์๋ฒ.
์ ๋ ์ง๊ธ ๊ณตํญ์ ์๊ธฐ ๋๋ฌธ์ ์ง๊ธ ์ ๊ธฐ๋ ์์ ์ ๋ตํ ์ ์์ง๋ง... ์ฌ๊ธฐ์ ๊ธฐ์ ์ ์ธ ์ ํ/์์ถฉ ๊ด๊ณ์ ๋ํด ๋ ผ์ํด์๋ ์ ๋๋ค๊ณ ํ์ ํฉ๋๋ค. ๋กค์์๊ณผ ๋กค์์์ ์ปค๋ฎค๋์ผ์ด์ ๋ฐ ๊ด๋ฆฌ ๋ฐฉ๋ฒ. :)
@sdispater , @techalchemy , @uranusjr , @wolfv - ๊ธฐ์ ์ ์ ์ถฉ์ ์ ๋ํ ์ถ๊ฐ ๋ ผ์๋ฅผ ์ํด #7406์ ์ ์ถํ์ต๋๋ค. ๋ฆฌ์กธ๋ฒ ์ค๊ณ๋ฅผ ์ํ ๋ค์ํ ์ ํ์ ๋ํด ์ถ๊ฐ ๋ ผ์๊ฐ ๊ฐ๋ฅํ๋ฉด ๊ฐ์ฌํ๊ฒ ์ต๋๋ค.
์กฐ๊ธฐ์ ๊ธฐ๋์น๋ฅผ ์ค์ ํ๊ธฐ ์ํด ์์ผ๋ก 2์ฃผ ๋์ ์ฌํํ ์์ ์ด๋ฉฐ ~12์ 9์ผ์ ์์ ๋ชจ๋ ํ ๋ก ์ ๋ฐ๋ผ์ก์ ์ ์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.
์ํ ์ ๋ฐ์ดํธ: PSF๋ Mozilla Open Source Support ๋ฐ Chan Zuckerberg Initiative๋ก๋ถํฐ ํ ๋ฆฌ์กธ๋ฒ ๋ฐ ๊ด๋ จ ์ฌ์ฉ์ ๊ฒฝํ ๋ฌธ์ ์ ๋ํด ์์ ํ ๊ณ์ฝ์๋ฅผ ๊ณ ์ฉํ๊ธฐ ์ํด ์ผ๋ถ ์๊ธ์ ํ๋ณดํ ์ ์์์ต๋๋ค . ์ฐ๋ฆฌ์ ๋ก๋๋งต (์ ๋ฆฌํด์ผ ํจ)๊ณผ ๋ธ๋ก๊ทธ, ํฌ๋ผ, ๋ฉ์ผ๋ง ๋ฆฌ์คํธ ๊ฒ์๋ฌผ๊ณผ ์ต๊ทผ ํ์์ ๋ฉ๋ชจ๋ฅผ ๋ณผ ์ ์์ต๋๋ค. ์ด์ ๋ํด ๊ณง distutils-sig ๋ฐ Python์ Discourse ์ธ์คํด์ค์ ๋ํ Packaging ํฌ๋ผ์ ๊ฒ์ํ ์์ ์ ๋๋ค.
์ฐ๋ฆฌ๋ 7์์ pip 20.2 ๋ฆด๋ฆฌ์ค๋ฅผ ์ํด pip์ ๋ฆฌ์กธ๋ฒ ๊ธฐ๋ฅ์ ์ค๋นํ๋ ๊ฒ์ ๋ชฉํ๋ก ํฉ๋๋ค. (pip์ ๋ถ๊ธฐ๋ณ ๋ฆด๋ฆฌ์ค ์ผ์ด๋์ค์ ๋ฐ๋ผ ์์์น ๋ชปํ ์ด๋ ค์์ด ๋ค์ ๋ถ๊ธฐ์ 20.3๊น์ง ์ง์ฐ๋ ์ ์์ต๋๋ค.)
@uranusjr :
๋ด ์ดํด์ ๋ฐ๋ฅด๋ฉด libsolv๋ ์ข ์์ฑ ํด๊ฒฐ์ ์ํด ์์ ํ SAT ์๋ฒ๋ฅผ ์ฌ์ฉํ๋ฉฐ ํด๊ฒฐ์ ์์ํ๊ธฐ ์ ์ ๋จผ์ ์ข ์์ฑ ์ ๋ณด๋ฅผ ๋ก๋ํด์ผ ํฉ๋๋ค. ๊ทธ๋ฌ๋ ํ์ฌ PyPI๋ ํจํค์ง๋น ์ข ์์ฑ ๋ฉํ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํฉ๋๋ค. setup.py์ ๋ฐํ์ ์ข ์์ฑ์ ๋ฌด์ํ๋๋ผ๋ SAT ์๋ฒ์ ํ์ํ ์ ๋ณด๋ฅผ ํจ์จ์ ์ผ๋ก ๊ฐ์ ธ์ค๊ธฐ๊ฐ ์ด๋ ต์ต๋๋ค.
#7819์ ํ๋กํ ํ์
pip resolve
๋ช
๋ น์ ๋ ๊ฐ์ง ๊ธฐ์ ์ ์ฌ์ฉํ์ฌ ์ด ์ ๋ณด๋ฅผ ํจ์จ์ ์ผ๋ก ๊ฐ์ ธ์ต๋๋ค(์์ธํ ๋ด์ฉ์ ํด๋น ๋ฌธ์ ์ฐธ์กฐ).
(1)์ ์ฌ์ฉ๋ ๊ธฐ์ ์ ํ ์ฝํ
์ธ ์์ฒด์ ๋ช KB๋ง ๋ค์ด๋ก๋ํ๋ฉด์ ํ URL์ ๋งค์ฐ ๋น ๋ฅด๊ฒ ์์กดํ๋ ์๊ตฌ ์ฌํญ ๋ฌธ์์ด ๋ชฉ๋ก์ผ๋ก ๋ณํํ ์ ์์ต๋๋ค. ๊ทธ๋ฐ ๋ค์ #7819์ ํ๋กํ ํ์
์ self._resolve_one()
์์ ๋ฐํ๋ ๊ฐ ์ข
์ ์๊ตฌ ์ฌํญ์ ๋ํด req.populate_link()
์ด ํธ์ถ๋๊ณ ์๊ตฌ json ์บ์ ํ์ผ์ (==Requirement, url) -> [list of (==Requirement, url) non-transitive dependencies]
๋งคํ์ ์ ์ฅํฉ๋๋ค. (1) ์๋ก์ด ์ ๋ณด๋ฅผ ๋น ๋ฅด๊ฒ ์ป๊ณ , (2) ์ค๋๋ ์ ๋ณด๋ฅผ ๋น ๋ฅด๊ฒ ์ฟผ๋ฆฌํฉ๋๋ค.
๋๋ ์์ง libsolv์ ์ต์ํ์ง ์์ง๋ง ์๊ตฌ ์ฌํญ URL์์ ์ข
์์ฑ ๋ฐ ํด๋น URL๋ก์ ๋งคํ ํญ๋ชฉ์ด SAT ์๋ฒ์ ํ์ํ ์์์ ์
๋ ฅ๊ณผ ์ ํํ ์ผ์นํ ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. #7189์ ์ค๋ช
๋ ๋๋ก ์๊ตฌ json ์ข
์์ฑ ์บ์ ํ์ผ๋ก ์ธํด ์ฒซ ๋ฒ์งธ ์คํ ํ pip resolve
ํธ์ถ์ด ๋ช
๋ น์ค์์ 800-900ms๊ฐ ๊ฑธ๋ฆฌ๋ฉฐ ์์ ํ ๋ฌด์๋์ด ๋์์ต๋๋ค. (1)๊ณผ (2)์ ๊ธฐ์ ์ ์ฌ์ฉํ๋ฉด ์์ฒญ๋๊ฒ ์ค๋ ์๊ฐ์ ๊ธฐ๋ค๋ฆฌ์ง ์๊ณ pip๊ฐ ํธ์ถ๋ ๋๋ง๋ค SAT ์๋ฒ๊ฐ ์๋ฃ๋ ๋๊น์ง ์คํํ ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ด ์ซ์๋ฅผ ๋ ๊ตฌ์ฒด์ ์ผ๋ก ๋ง๋ค๊ธฐ ์ํด #7189์ ํ๋กํ ํ์
์์ libsolv๋ฅผ ํดํนํ๋ ๊ฒ์ ๊ทธ๋ฆฌ ์ด๋ ต์ง ์์ ๊ฒ์
๋๋ค.
@techalchemy :
Sat ์๋ฒ๋ ์์ฆ ๋์ ์ถ๊ฐ, ๋ค์ ์์, ์ญ์ถ์ , ์์ ๋ค์ ์์ ๋ฑ์ ํฌํจํ์ฌ ๋ช ๊ฐ์ง ์ค์ํ ๊ธฐ๋ฅ์ ๊ฐ์ง๊ณ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ฌ๊ธฐ์ ๋ฌธ์ ๋ ๋ถ๋ถ์ ์ผ๋ก ๋น๋ํ ์ ์๋ค๋ ๋ณด์ฅ์ด ์๋ ํ๋ซํผ์ ์ง์ํด์ผ ํ ํ์์ฑ๊ณผ ๊ด๋ จ๋ ๊ธฐ์ ์ ์ธ ๋ฌธ์ ๊ฐ ๋ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. C ๊ธฐ๋ฐ ์๋ฒ.
๋ฐ์ง ์๋ ์ปดํ์ผ๋ฌ์ ๋ง์ปค๋ฅผ setup.py
๊ธฐ๋ฐ ํ๋ก์ ํธ์ ๋ ์ฝ๊ฒ ๋
ธ์ถํ ์ ์๋ ์ฝ๋๊ฐ ์์์ง๋ง(#6273) ๋์ค์ ๋น๋๋ฅผ ๊ฐ๋ฅํ๊ฒ ํ๊ธฐ ์ํด ์ด๊ฒ์ ์ ๊ฑฐํ์ต๋๋ค(#7016 ์ฐธ์กฐ). setup.py
๋ฅผ ์ฌ์ฉํ์ง ์๊ณ ๋ฐ์ง์ C/C++ . ์ด๋ TensorFlow ์ฌ์ฉ์ ์ ์ ์ฐ์ฐ์ ๋ฅผ ์ํ ๊ณต์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๊ตฌ์ถํ๊ธฐ๋ง ํ๋ฉด ๋๋ Twitter ๋ด๋ถ์ ์ฌ์ฉ ์ฌ๋ก์ ์ ํฉํ์ต๋๋ค. ์ฐ๋ฆฌ๋ OSX ๋ฐ Linux์ฉ s3(https://github.com/pantsbuild/binaries/ ์ฐธ์กฐ)์์ ์ ์ ์ผ๋ก ์ฐ๊ฒฐ๋ GCC ๋ฐ binutils ์์นด์ด๋ธ์ฉ์ผ๋ก ์ฌ์ ๋น๋๋ ๋ฐ์ด๋๋ฆฌ๋ฅผ ํธ์คํ
ํ๋ฏ๋ก ๋ฐ์ง ์ฌ์ฉ์๋ Python ๋ฐ JDK ์ธ์๋ ์๋ฌด๊ฒ๋ ์ค์นํ ํ์๊ฐ ์์ต๋๋ค. ๋ฐ์ง๋ฅผ ์ ํ ์ฌ์ฉํ์ง ๋ง์ญ์์ค.
์ง์๋๋ ๋ชจ๋ ํ๋ซํผ์์ pip๊ฐ libsolv์ ์์ ์ ์ผ๋ก ์์กดํ ์ ์๋๋ก C ๋ฐ C++๋ฅผ ์ด์ ๊ฐ๋ฅํ๊ฒ ๋น๋ํ๊ธฐ ์ํ ๋ชจ๋ ์ ํ์ ๋๊ตฌ๋ฅผ ๋ธ๋ ์ธ์คํ ๋ฐ ๋ฐ/๋๋ ๊ฐ๋ฐํ๋ ๋ฐ ๋์์ด ๋๊ณ ์ถ์ต๋๋ค.
@cosmicexplorer
๋ฐ์ง์๋ ์ปดํ์ผ๋ฌ์ ๋ง์ปค๋ฅผ setup.py ๊ธฐ๋ฐ ํ๋ก์ ํธ(#6273)์ ๋ ์ฝ๊ฒ ๋ ธ์ถํ ์ ์๋ ์ฝ๋๊ฐ ์์์ง๋ง ๋์ค์ C/C++ ๋น๋๋ฅผ ๊ฐ๋ฅํ๊ฒ ํ๊ธฐ ์ํด ์ด๊ฒ์ ์ ๊ฑฐํ์ต๋๋ค(#7016 ์ฐธ์กฐ). TensorFlow ์ฌ์ฉ์ ์ ์ ์ฐ์ฐ์๋ฅผ ์ํ ๊ณต์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๊ตฌ์ถํ๊ธฐ๋ง ํ๋ฉด ๋๋ Twitter ๋ด๋ถ์ ์ฌ์ฉ ์ฌ๋ก์ ์ ํฉํ setup.py๋ฅผ ์ฌ์ฉํ์ง ์๊ณ ๋ฐ์ง์. ์ฐ๋ฆฌ๋ ์ ์ ์ผ๋ก ์ฐ๊ฒฐ๋ GCC ๋ฐ binutils ์์นด์ด๋ธ์ฉ์ผ๋ก ๋ฏธ๋ฆฌ ๋น๋๋ ๋ฐ์ด๋๋ฆฌ๋ฅผ OSX ๋ฐ Linux์ฉ s3์ ํธ์คํ ํ๋ฏ๋ก(pantbuild/binaries ์ฐธ์กฐ) ๋ฐ์ง ์ฌ์ฉ์๊ฐ ๋ฐ์ง๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด Python๊ณผ JDK ์ธ์ ์๋ฌด๊ฒ๋ ์ค์นํ ํ์๊ฐ ์์ต๋๋ค.
์ปดํ์ผ๋ฌ/๋ง์ปค ์์ ์ ๋งค์ฐ ํฅ๋ฏธ๋กญ์ต๋๋ค! ์ปดํ์ผ๋ฌ๋ฅผ setup.py(๋๋ ์ผ๋ฐ์ ์ผ๋ก PEP 517 ๋น๋ ๋ฐฑ์๋)์์ ๋ถ๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ๋ํ ๋ ผ์๋ ์์ต๋๋ค. ๋ฆฌ์กธ๋ฒ์ ์ค์ ๋ก ๊ด๋ จ์ด ์์ง๋ง(์ ์ด๋ ์ง์ ์ ์ผ๋ก๋ ์๋) ๊ด์ฌ์ด ์์ ์ ์์ต๋๋ค. https://discuss.python.org/t/how-do-we-get-out-of-the-business-of- driving-c-์ปดํ์ผ๋ฌ/2591
@cosmicexplorer
์ง์๋๋ ๋ชจ๋ ํ๋ซํผ์์ pip๊ฐ libsolv์ ์์ ์ ์ผ๋ก ์์กดํ ์ ์๋๋ก C ๋ฐ C++๋ฅผ ์ด์ ๊ฐ๋ฅํ๊ฒ ๋น๋ํ๊ธฐ ์ํ ๋ชจ๋ ์ ํ์ ๋๊ตฌ๋ฅผ ๋ธ๋ ์ธ์คํ ๋ฐ ๋ฐ/๋๋ ๊ฐ๋ฐํ๋ ๋ฐ ๋์์ด ๋๊ณ ์ถ์ต๋๋ค.
์ ์ @wolfv ๋ ๋ง๋ฐ ๋ฅผ ์ํ ๋ชจ๋ ์ฃผ์ ์ง์ ํ๋ซํผ์์ DNF ํจํค์ง ๊ด๋ฆฌ์ ์คํ์ ์ผ๋ถ๋ฅผ ๊ตฌ์ถํ๊ณ DNF์ ๋ํ ์ ๊ฐ์ธ์ ์ธ ์์
์ ์ํด ์ด๊ฒ์ ์ดํด๋ณด๊ณ ์์ต๋๋ค. ์ด ์์ ์์ libsolv๋ ์ด์ Windows, Linux, macOS, BSD, Haiku OS์ฉ์ผ๋ก ๋น๋ํ ์ ์์ผ๋ฉฐ UNIX์์ DNF ๋ฅผ ์ฌ์ฉํ๋ ์ผ๋ถ๋ก ๋ค์ํ UNIX ์์คํ
์ ๋ฐฐ์น๋๋ค๋ ๊ฒ์ ๋ง์ฐํ๊ฒ ์๊ณ ์์ต๋๋ค. @dralley ๊ฐ solv
๋ฐ์ด๋๋ฆฌ ํ ์ PyPI์์ manylinux2014
๋ฅผ ์ฌ์ฉํ์ฌ PyPI๊ฐ ์ง์ํ๋ ~์ฃผ์ ํ๋ซํผ์์ ์ฌ์ฉํ ์ ์๋๋ก ๋ง๋ค์๋ค๋ ๊ฒ๋ ์๊ณ ์์ต๋๋ค.
์ด์ ์๋ก์ด ๋ฆฌ์กธ๋ฒ์ ์ด๊ธฐ(์ํ) ๋ฒ์ ์ด ํฌํจ๋ ๋ฒ ํ ๋ฆด๋ฆฌ์ค์ธ pip 20.1b1์ด ์ถ์๋์์ต๋๋ค(๊ด๋ จ ๋ด์ฉ์ #8099 ๋ฐ ์ฌ๋๋ค์ด ํผ๋๋ฐฑ์ ์ ๊ณตํ ์ ์๋ ์ค๋ฌธ์กฐ์ฌ ์ฐธ์กฐ). ์ฌ๊ธฐ ๋ฐํ๊ฐ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ https://github.com/pypa/pip/issues/7951#issuecomment -617851381 ์๋ ์ง๊ธ๊น์ง ๋ฒ ํ๋ฅผ ๊ณต๊ฐํ ์ฅ์๊ฐ ๋์ด๋์ด ์์ต๋๋ค.
pip 20.1์ด ์ถ์๋์์ผ๋ฉฐ ๋ฆฌ์กธ๋ฒ์ ์ํ ๋ฒ์ ์ด ํฌํจ๋์ด ์์ต๋๋ค.
์ฐ๋ฆฌ๋ 5์์ ๋ ๋ค๋ฅธ pip ๋ฆด๋ฆฌ์ค๋ฅผ ๊ฒ์ํ๋ ๊ฒ์ ๋ํด ๋ ผ์ํ๊ณ ์์ต๋๋ค. ์ฌ๊ธฐ์๋ ํด๊ฒฐ ํ๋ก๊ทธ๋จ์ ์ถ๊ฐ ์ํ๊ฐ ํฌํจ๋์ด ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ฐ๋ฆฌ๋ ์ธ์ ์๋ก์ด ๋ฆฌ์กธ๋ฒ์ ๋ฒ ํ๋ฅผ ์ถ์ํ ๊ฒ์ธ์ง ํ์ ํ๊ณ "์ด๊ฒ์ ํ ์คํธํด ์ฃผ์ธ์" ํธ์๋ฅผ ํ ๊ฒ์ ๋๋ค.
์ฐ๋ฆฌ๋ #8371, ํน์ ์ค๋ฅ ๋ฉ์์ง๋ฅผ ๋ ์ ํ์ํ๋ ๋ฐฉ๋ฒ, ๊ธฐํ ๋ง์ ๊ฒ๋ค์ ์ฒ๋ฆฌํ๋ ๋์ ์ง์ฐ์ ๋ถ๋ช์ณค์ต๋๋ค. ์งํ ์ํฉ์ ๋ํ ์์ธํ ๋ด์ฉ์ https://github.com/pypa/pip/projects/6 ๋ฐ https://github.com/pypa/pip/projects/5 ๋ฅผ ์ฐธ์กฐํ์ธ์. #8206์ ๊ณง ์ถ์๋ ๋ฒ ํ์ธ pip 20.2b2์ ๋ํ ํ ๋ก ์ผ๋ก, 6์ ๋ง๊น์ง ๊ฒ์ํ ์ ์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.
PSF ๋ธ๋ก๊ทธ ์ ์ค๊ฐ ๋ณด๊ณ ์ ๋ฅผ ๊ฒ์ ํ์ต๋๋ค . ์์์ผ ํ ํ ๊ฐ์ง ํต์ฌ ์ฌํญ: ์ด๋ฒ ๋ฌ ๋ง ์ ์ ํ์ ํ๋๊ทธ " --use-feature=2020-resolver
"๋ฅผ ํตํด ์ฌ์ฉํ ์ ์๋ ์ ์ข
์์ฑ ํด๊ฒฐ๊ธฐ์ ๋ฒ ํ ๋ฒ์ (pip 20.1์๋ ์ํ ๋ฒ์ ์ด ์์)์ด ์๋ pip 20.2๋ฅผ ์ถ์ํ ์์ ์
๋๋ค. ์ฐ๋ฆฌ๋ pip 20.2๋ฅผ ๋ง์ด ๊ณต๊ฐํ๊ณ ๋ง์ ์ฌ์ฉ์์๊ฒ ์๋ก์ด ๋ฆฌ์กธ๋ฒ๋ฅผ ์ฌ์ฉํ๋๋ก ์์ฒญํ ๊ฒ์
๋๋ค.
#8511์ ๋ฐ๋ผ ์ฐ๋ฆฌ๋ ์ด์ pip 20.2 ๋ฅผ ์ถ์ํ์ต๋๋ค. ์ด ๋ฆด๋ฆฌ์ค์๋ ์ฐจ์ธ๋ ์ข
์์ฑ ํด์๊ธฐ์ ๋ฒ ํ๊ฐ ํฌํจ๋์ด ์์ต๋๋ค. ํธํ๋์ง ์๋ ์ง์นจ์ ๋ฐ์ ๋ ํจ์ฌ ๋ ์๊ฒฉํ๊ณ ์ผ๊ด์ฑ์ด ์์ผ๋ฉฐ ํน์ ์ข
๋ฅ์ ์ ์ฝ ์กฐ๊ฑด ํ์ผ์ ๋ํ ์ง์์ด ๊ฐ์ํ๋ฏ๋ก ์ผ๋ถ ํด๊ฒฐ ๋ฐฉ๋ฒ ๋ฐ ์ํฌํ๋ก๊ฐ ์ค๋จ๋ ์ ์์ต๋๋ค. --use-feature=2020-resolver
ํ๋๊ทธ๋ก ํ
์คํธํ์ญ์์ค . ํ
์คํธ ๋ฐ ๋ง์ด๊ทธ๋ ์ด์
๋ฐฉ๋ฒ๊ณผ ๋ฌธ์ ๋ณด๊ณ ๋ฐฉ๋ฒ์ ๋ํ ๊ฐ์ด๋๋ฅผ ์ฐธ์กฐํ์ธ์. ์ ์ข
์์ฑ ๋ถ์๊ธฐ๋ ์์ง ์ผ์์ ์ผ๋ก ์ฌ์ฉํ ์ค๋น ๊ฐ ๋์ง ์์๊ธฐ ๋๋ฌธ์ ๊ธฐ๋ณธ์ ์ผ๋ก ๊บผ์ ธ ์์ต๋๋ค.
์ฐ๋ฆฌ๋ 2020๋ 10์์ pip์ ๋ค์ ๋ถ๊ธฐ๋ณ ๋ฆด๋ฆฌ์ค์ธ 20.3์ ๋ง๋ค ๊ณํ์ ๋๋ค. ์ฐ๋ฆฌ๋ ๊ธฐ๋ณธ ์ข ์์ฑ ํด๊ฒฐ ๋์์ ๋ณ๊ฒฝํ๊ณ pip 20.3์์ ์ ํ์ธ์๋ฅผ ๊ธฐ๋ณธ๊ฐ์ผ๋ก ๋ง๋ค ์ค๋น๋ฅผ ํ๊ณ ์์ต๋๋ค.
Hacker News, Reddit, Twitter, Facebook, Dev.to, Telegram, ๊ด๋ จ ์คํ ์ค๋ฒํ๋ก ๋ต๋ณ, ์ข์ํ๋ Slacks ๋ฐ Discords ์ ์ด ๋ธ๋ก๊ทธ ๊ฒ์๋ฌผ ์ ๊ฐ๋ฆฌ์ผ ๋๋ฆฌ ์๋ฆฌ์ญ์์ค. ์ด๊ฒ์ด ์ํฅ์ ๋ฏธ์น ๋๋ถ๋ถ์ ์ฌ๋๋ค์ Python ๊ด๋ จ ๊ฐ๋ฐ์ ๋ด์ค๋ฅผ ๋ฐ๋ผ๊ฐ์ง ์์ต๋๋ค. 10์ ์ด์ ์ ๋ฏธ๋ฆฌ ์๋ฆผ์ ๋ฐ๊ณ ๋ฒ๊ทธ ๋ณด๊ณ ์๋ฅผ ๋ฐ์ ์ ์๋๋ก ๋์์ฃผ์ธ์.
(#988์์ ๋ด ๋ฉ๋ชจ๋ฅผ ๋ณต์ฌํฉ๋๋ค.)
@zooba ๋ ๋ค์๊ณผ ๊ฐ์ด ์ง๋ฌธํ์ต๋๋ค .
์ด ๋จ๊ณ(์ฒซ ๋ฒ์งธ RC์ ๊ฒฝ์ฐ)์์ Python 3.9์ ํจ๊ป ๋ฒ๋ค๋ก ์ ๊ณต๋๋ pip ๋ฒ์ ์ ์ ๋ฐ์ดํธํด์ผ ํ๋ค๊ณ ์๊ฐํ์ญ๋๊น?
๋ง์ฐฌ๊ฐ์ง๋ก ๋ค์ ๋ฆด๋ฆฌ์ค๋ฅผ ์ํด Python 3.8์ ์ ๋ฐ์ดํธํด์ผ ํฉ๋๊น?
๋ด ๊ฐ์ ์ ๋ค, ๋ค์ ์ฃผ ์ด์ ๋ฒ๊ทธ ์์ ์ด ๋ฆด๋ฆฌ์ค๋ ํ ๋ค, ํ์ง๋ง @pfmoore @xavfernandez @cjerdonek @uranusjr @pradyunsg @dstufft ์ด๋ป๊ฒ ์๊ฐํ์ธ์?
์ฃ์กํฉ๋๋ค. ๋๋ฌด ๋นจ๋ฆฌ ๊ฒ์๋ฅผ ๋๋ฅด์ญ์์ค. ๋ด ์ถ๋ก ์ pip 20.2๋ฅผ ๋ฒ๋ค๋ก ์ ๊ณตํ๋ฉด ๋ ธ๋ จํ ๊ฐ๋ฐ์๊ฐ ์ต์ ๋ฒ์ ์ Python์ ํ ์คํธํ๋ฉด์ ์๋ก์ด ์ข ์์ฑ ํด๊ฒฐ ํ๋ก๊ทธ๋จ์ ํจ์ฌ ์ฝ๊ฒ ํ ์คํธํ ์ ์๋ค๋ ๊ฒ์ ๋๋ค. ํ์ง๋ง ๋ฒ๋ค ๋ฒ์ ์ ์ ๋ฐ์ดํธํ๋ ๋ฐ ์ผ๋ง๋ ๋ง์ ์์ ์ด ํ์ํ์ง ๋๋ ์ผ๋ง๋ ์์ฃผ ์ ๋ฐ์ดํธํ๊ณ ์ถ์์ง ๋ชจ๋ฅด๊ฒ ์ต๋๋ค.
์ฌ๊ธฐ์์๋ ๋ง์ฐฌ๊ฐ์ง๋ก ์ ํด์๊ธฐ์ ๋ ์ฝ๊ฒ ์ก์ธ์คํ ์ ์๋๋ก 3.9์ 20.2.x๋ฅผ ํฌํจํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
์ด๋ป๊ฒ ์๊ฐํด?
๋น์ ์ด ๋ง์ต๋๋ค, ๊ทธ๊ฒ์ด ๊ณํ์ ๋๋ค. :)
OK, python-dev์ ๋ํ ๋ต๋ณ -- ์, Python 3.8 ๋ฐ 3.9์ ๋ฒ๋ค๋ก ์ ๊ณต๋๋ pip ๋ฒ์ ์ 20.2.x๋ก ์ ๋ฐ์ดํธ๋์ด์ผ ํฉ๋๋ค.
์ด์ ๋ณ๋๋ก ํ๋ณด๋ฅผ ์ํด ์งํ ์ค์ธ ๋ช ๊ฐ์ง ์์ ์ ๋ํด ์ธ๊ธํ๊ฒ ์ต๋๋ค.
์์ผ๋ก 6-8์ฃผ ๋์ ์ฌ์ฉ์๊ฐ ์๋ก์ด pip์ ์ฌ์ฉํด ๋ณผ ์ ์๋๋ก ๋๋ฆฌ ํ๋ณดํ ๊ฒ์ ๋๋ค. ๋๋ ๋ฌธ์ ๊ฐ "์ด ๊ฐ๋ณ ํจํค์ง๊ฐ ์ค์น๋์ง ์์ ๊ฒ"์ด๋ผ๊ณ ์๊ฐํ์ง ์์ต๋๋ค. ํ๊ฒฝ ๋ฐ ํน์ ์ ์ฝ ์กฐ๊ฑด ํ์ผ์ ๋ฐ๋ผ ํน์ ํจํค์ง ๊ฐ์ ์๊ธฐ์น ์์ ์ถฉ๋์ด ๋ฐ์ํ ์ ์์ต๋๋ค. ์ฐ๋ฆฌ๋ ์ค๋ฌธ์กฐ์ฌ ๋ฅผ ํตํด ์ด๊ธฐ ํผ๋๋ฐฑ์ ๋ฐ๊ณ ๋ฒ๊ทธ๋ฅผ ์์ ํ๊ณ ๋ ๋ง์ ์๋ํ๋ ํ ์คํธ ๋ฑ์ ์ค์ ํ ์ ์๋๋ก ํ๊ณ ์ด๋ฌํ ์ ์คํธ๋ฆผ ํจํค์ง๊ฐ pip 20.3(์์ : https://github.com/pypa/pip/issues/8076#issuecomment-666493069์ TensorFlow/numpy/scipy ๋ฌธ์ ).
์ฐ๋ฆฌ๊ฐ ์ด๊ฒ์ ์ผ๋ง๋ ๋ง์ ๋ ธ๋ ฅ์ ๋ค์ด๋ ๊ฐ์ 20.3์ ๊ฑธ๋ ค ๋์ด์ง๋ ๋ถ์ผ์น๋ฅผ ์ฒ๋ฆฌํ๋ ์ฌ์ฉ์๊ฐ ์์ ๊ฒ์ด๋ฉฐ ์ข์ ํ๊ณ ํผ๋์ค๋ฝ๊ณ ์์ฒ๋ฅผ ์ ์ ๊ฒ์ด๋ฉฐ ์ด๋ ์ฐ๋ฆฌ์ ๋ชจ๋ ์ ์คํธ๋ฆผ์ ๋ํ ์ง์ ๋ถ๋ด์ ์ผ๊ธฐํ ๊ฒ์ ๋๋ค. ์ฐ๋ฆฌ๋ ์ฌ์ฉ์๊ฐ ํ ์คํธํ๊ณ ์ ์คํธ๋ฆผ์ ๊ด์ฌ์ ๋๋๋ก ํ์ฌ ์ด๋ฅผ ์ค์ด๋ ๊ฒ์ ๋ชฉํ๋ก ํฉ๋๋ค.
๊ทธ๋์ ์ ๋ ๋ฐ์ดํฐ ๊ณผํ์, ๊ต์ฌ, ์ํฐ์คํธ, DevOps ์ ๋ฌธ๊ฐ ๋ฑ ์์ ์ ํน์ ์์ญ๋ณ ์ฝ๋์ ๊ด์ฌ์ ๊ธฐ์ธ์ด๋ ๊ทธ๋ฃน์ ์ฐ๋ฝํ๊ณ ํ์ฉํ ๊ณํ์ ๋๋ค.
๋๋ ๊ทธ๋ค์ ๊ด์ฌ์ ๋ ์ ์๋ ํ ๊ฐ์ง ๋ฐฉ๋ฒ์ด ๊ทธ๋ค์ด ์์กดํ๋ ํน์ ํจํค์ง๋ฅผ ํตํ๋ ๊ฒ์ด๋ผ๊ณ ๊ฐ์ ํฉ๋๋ค.
์ด์ ์ ๋ ๋๋ฆฌ ์ฌ์ฉ๋๋ ํจํค์ง ๋ชฉ๋ก์ ์ดํด๋ณด๊ณ ๋ช ์ฌ๋์๊ฒ ์๋์ผ๋ก ์ด๋ฉ์ผ์ ๋ณด๋๊ณ ๋ช ๋ฆฌํฌ์งํ ๋ฆฌ์ ๋ฌธ์ ๋ฅผ ๋ง๋ค์ด ์ฌ์ฉ์์๊ฒ ์ ํด๊ฒฐ ํ๋ก๊ทธ๋จ์ ๋ฒ ํ๋ก ํ ์คํธํ๊ณ ๊ณต์ ๊ตด๋ฆฌ๊ธฐ ์์ํ๊ณ ์ผ๋ถ๋ฅผ ์ฌ์ฉํด ๋ณด๋ผ๊ณ ์ ์ํ์ต๋๋ค. ๋ ๋ง์ ํ๋ณด ๋ฐ ํ ์คํธ๋ฅผ ์ํ ๋ฌธ๊ตฌ/์ ๊ทผ๋ฒ. ์ด๋ก ์ธํด ์ ์ด๋ ํ ๊ฐ์ง ๊ฒฝ์ฐ์ ํผ๋์ด ์ผ๊ธฐ๋์์ต๋๋ค. https://github.com/sqlalchemy/mako/issues/322#issuecomment-667546739๋ฅผ ์ฐธ์กฐํ์ญ์์ค. ๊ทธ๋ฆฌ๊ณ 20.2์ ๋ฒ๊ทธ ์์ ๋ฆด๋ฆฌ์ค๊ฐ ๋์ค๋ฉด ์กฐ๊ธ ๋ ์ ๋ํด ์ฒด๊ณ์ ์ด๊ณ ๋ช ํํ๊ฒ
์ฐ๋ฆฌ๋ Twitter( 1 , 2 ) ๋ฐ Reddit ( PyPA ์๊ธ ์กฐ๋ฌ์ ๋ํ ์ด ์ง๋ฌธ์ ๋ตํ๊ณ ์ถ์ ์ฌ๋์ด ์์ต๋๊น?)์์ ์ฝ๊ฐ์ ๊ด์ฌ์ ๋ฐ์์ต๋๋ค.
@zooba ๋ (๋ฒ๋ค๋ง๊ณผ ๊ด๋ จํ์ฌ) ๋ค์๊ณผ ๊ฐ์ด ์ผ์ต๋๋ค.
๊ฐ์ฌ ํด์. ์ด๋ฒ ์ฃผ ํ๋ฐ์ ํ ์ ์๊ณ ๋ค์ ๋ฆด๋ฆฌ์ค๋ฅผ ๋ง๋ค ์ ์์ ๊ฒ ๊ฐ์ต๋๋ค. ์๋ฐฉ๋๊ณ ์ถ์ง ์์ ์ผ์ด ๋ฐ์ํ๋ฉด ์ต๋ํ ๋นจ๋ฆฌ ์๋ ค์ฃผ์ญ์์ค.
--use-feature=2020-resolver
๋ ์ผ๋ฐ์ ์ผ๋ก ์์ธ๋ณด๋ค ๋ ๋ง์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํฉ๋๋ค.
๋ค์์ ํตํด ์ด๊ธฐ ์ถ์๋ฅผ ์ ์ํ๊ธฐ์๋ ๋๋ฌด ๋ฆ์์ต๋๊น?
์ ์๋ 20.3 ์์ฌ ์ฝ๋
try:
_2020_resolver()
except:
legacy_resolver()
์ด๋ ์ ์ด๋ ๋ด ํ๋ก์ ํธ์ ๊ฒฝ์ฐ ์์ ์์ด ๋ชจ๋ ํต๊ณผํ ๊ฒ์์ ์๋ฏธํฉ๋๋ค.
๊ทธ ํ ๋ ๊ฑฐ์ ๋ฆฌ์กธ๋ฒ๊ฐ ๊ธฐ๋ณธ์ ์ผ๋ก ๋นํ์ฑํ๋๋ฉด ์ ์ ๋์ 2020-resolver์์ ์๋ํ๋ ์ผ๋ถ ํ๋ก์ ํธ์ legacy-resolver์์ ์๋ํ์ง ์๋ ํ๋ก์ ํธ๊ฐ ์์ ์ ์์ต๋๋ค. ํ๋์ ํ๋๊ทธ๋ฅผ ์ค์ ํ์ฌ ํด๋ฐฑ์ ํ์ฑํํ ์ ์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.
์ ์๋ 20.4 ์์ฌ ์ฝ๋
try:
_2020_resolver()
except:
if not use_legacy_resolver:
raise
legacy_resolver()
์ด๋ฒ ๋ฌ ๋ง์ 20.3์ ์ถ์ํ ๊ณํ์ ๋๋ค. ํผ๋์ค๋ฌ์ด ์ฌ์ฉ์๊ฐ ์ง๋ฌธ์ ํ๊ธฐ ๋๋ฌธ์ ๋ง์ ์ฌ์ฉ์ ์ง์์ด ํ์ํ ๊ฒ์ผ๋ก ์์ํฉ๋๋ค.
@di ๋ ์ฒซ ๋ฒ์งธ ์๋ต์ ๋๊ธฐ ์ํด ์ผ๋ถ ์์ ๋ด์ฌ์๋ฅผ ๋ชจ์ผ๋ ๋ฐ ์์ํ์ต๋๋ค. ์ด ์์ ๋ด์ฌ์๋ Twitter, StackOverflow ๋ฐ GitHub์์ ์ pip๊ฐ ๋์ค๋ฉด ์ง๋ฌธ์ ๋ต๋ณํ๊ณ ์ฌ์ฉ์ ์ง์ ๋ถํ๋ฅผ ๋์ฐ๋ฉฐ ์ค์ ๋ฒ๊ทธ๋ฅผ ์ ์ง ๊ด๋ฆฌ์/๊ธฐ์ฌ์ ํ์ ์ฃผ์๋ก ์์ค์ปฌ๋ ์ด์ ํฉ๋๋ค.
Dustin, ์ด๋ป๊ฒ ์๋ํ ์ง์ ๋ํ ๋๋ต์ ์ธ ๊ณํ์ด ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ฌ๊ธฐ์ ๊ฒ์ํ๋ฉด ๋ค๋ฅธ pip ์ ์ง ๊ด๋ฆฌ์๋ก๋ถํฐ ํฉ์๋ฅผ ์ป์ ์ ์์ต๋๊น? ๊ฐ์ฌํฉ๋๋ค.
๋ด ๋๋ต์ ์ธ ๊ณํ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
@di๋ ๊ฐ์ฌํฉ๋๋ค. ์ฐ๋ฆฌ๋ ๋ค๋ฅธ ๊ด๋ฆฌ์๋ค๋ก๋ถํฐ ์น์ธ์ ๋ฐ๊ธฐ ์ํด ๋ด์ผ๊น์ง ๊ธฐ๋ค๋ฆฌ๊ณ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ฐ๋ฆฌ๋ 10์ 28์ผ์ด๋ 29์ผ ์์์ผ์ด๋ ๋ชฉ์์ผ์ pip 20.3์ ์ถ์ํ๋ ๊ฒ์ ๋ชฉํ๋ก ํ๊ณ ์์ต๋๋ค.
@di ๊ทํ์ ๊ณํ์ด ์น์ธ๋์์์ ํ์ธํ์ต๋๋ค. ์งํํ์๊ธฐ ๋ฐ๋๋๋ค!
@di ๋ ๋ฆด๋ฆฌ์ค ์ง์ฐ ๊ฐ๋ฅ์ฑ ์ ๋ํด ๊ฒฝ๊ณ ํฉ๋๋ค.
20.3(๋ค์ ์ฃผ์ ์ถ์๋ ์์ )์ ๊ฒ์ํ ์ ์์ ๋ ์ ๊ฐ ์ฐธ์ํ ์ ์๋ ๊ฒฝ์ฐ๋ฅผ ๋๋น ํ์ฌ ํ๋ณด ๊ณํ์ด ์์ต๋๋ค.
๋ค๋ฅธ ๊ณณ์ ์๊ฒฌ์์ ๋ ผ์ํ ๊ฒ์ฒ๋ผ ์ผ๋ถ CI ๋ฌธ์ ๊ฐ ๋ฐ์ํ๊ณ ์ผ๋ถ ์ธ๋ถ ์์ธ์ผ๋ก ์ธํด ๋ฆด๋ฆฌ์ค๋ฅผ ์ฝ๊ฐ ์ฐ๊ธฐํ๊ธฐ๋ก ๊ฒฐ์ ํ์ต๋๋ค.
์ค๋ ํ ํ์์์ ์ฐ๋ฆฌ๋ 20.3 ๋ฆด๋ฆฌ์ค๊ฐ ๋ด์ผ์ด๋ ๊ธ์์ผ์ ์์ ๊ฒ์ด๋ผ๋ ๋ฐ ๋์ํ์ต๋๋ค. ์์ธํ ๋ด์ฉ์ #8936์ ํ๋ก์ฐํ์ธ์.
์ด์ ์๊ฒฌ์์ ์ ์ํ ๊ฒ๋งํผ ํจํค์ง๋ณ ํ๋ณด ํ๋์ ๋ง์ด ํ์ง ์์์ต๋๋ค. ํ์ง๋ง ๊ทธ๋ ๋ค๊ณ ํด์ ์ฐ๋ฆฌ๊ฐ ํ๋ณด๋ฅผ ํ์ง ์์ ๊ฒ์ ์๋๋๋ค. ์ฐ๋ฆฌ๊ฐ ์ํํ ๋ด์ฌ ํ๋ ์ค ์ผ๋ถ(์ผ๋ถ๋ #8511 ๋๋ ์ด ์ํค ํ์ด์ง ์ ์นดํ๋ก๊ทธ๋์ด ์์):
Podcast.__init__
, ํ
์คํธ ๋ฐ ์ฝ๋ , FLOSS Weekly , ์ํํธ์จ์ด ๊ฐ๋ฐ์ ์ฌ์ , Real Python์ง๋ ๋ช ๋ฌ ๋์ ์ฐ๋ฆฌ๋ 20.2 ๋ฐ 20.3 ๋ฒ ํ, pip 20.3b1 ์์ ์๋ก์ด ๋ฆฌ์กธ๋ฒ๋ฅผ ํ ์คํธํ๋ ์ฌ๋๋ค๋ก๋ถํฐ ์๋ก์ด ๋ฌธ์ ๋ฅผ ๊พธ์คํ ๋ฐ์์์ต๋๋ค. ์ด๋ฌํ ๋ณด๊ณ ์๋ ๋ฆฌ์กธ๋ฒ๋ฅผ ๊ฐ์ ํ๊ณ ๋ฒ๊ทธ๋ฅผ ์์ ํ๋ฉฐ ์ถ๋ ฅ์ UX๋ฅผ ๊ฐ์ ํ๋ ๋ฐ ๋์์ด ๋์์ต๋๋ค. ๋ํ ๋ถ๋ถ์ ์ผ๋ก ๋ฒ ํ ํผ๋๋ฐฑ์ ๋ํ ์๋ต์ผ๋ก "๋ณ๊ฒฝ ์ฌํญ" ์ฌ์ฉ์ ๊ฐ์ด๋๋ฅผ ํฌ๊ฒ ๊ฐ์ ํ์ต๋๋ค .
๋ด ๋๋ต์ ์ธ ๊ณํ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
* Start a discussion on discuss.python.org asking for support * Direct folks to a Slack channel that could serve as a communication channel between everyone * Start a document outlining some FAQ and our responses * Include a decision tree for new issue -> triaged issue * Share this with the channel once we have a known release date * Try and roughly schedule volunteers to be online & triaging in the days following the release
@di ์ง์์ ์ธ ๋ถํ์ค์ฑ๊ณผ ์ง์ฐ์ผ๋ก ์ธํด ์ผ์ ์ ์ํํ ์ ์๋ค๋ ๊ฒ์ ์๊ณ ์์ต๋๋ค. ์ ๋ฆด๋ฆฌ์ค ๋ ์ง๋ ๋ด์ผ, 11์ 30์ผ ์์์ผ์ ๋๋ค. ์ด์ ๊ณต์ ํ ํ ๋ก ์ค๋ ๋์ ์์ฌ ๊ฒฐ์ ํธ๋ฆฌ๊ฐ ์๋ค๋ฉด ๊ณ์ํด์ ๊ณต์ ํ์ญ์์ค!
pip 20.3์ด ์ถ์๋์์ผ๋ฉฐ ๊ธฐ๋ณธ์ ์ผ๋ก ์ ํด์๊ธฐ๊ฐ ์์ต๋๋ค! ๋ค์์ PSF ๋ธ๋ก๊ทธ์ ๋ฆด๋ฆฌ์ค ๋ฐํ์ ๋๋ค. https://blog.python.org/2020/11/pip-20-3-release-new-resolver.html
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
:-) ๊ทธ๋ฆฌ๊ณ ๋๋ ๋๋๋ก ๋๋ฌด ๋๊ณ ์ง์น๊ณ ๋์์ ์ ๋๋ค. ๋น์ ์ ์ฒ ํ๊ณผ ํจ๊ป ๊ฐ์, ํจ์ฌ ๋ ์ข๊ฒ ๋ค๋ฆฐ๋ค :-)