๋๋ ์ด ๋ฌธ์ ๋ฅผ ํธ๋ฆฌ ์ธ๋ถ ๋น๋, ๊ด๋ จ ๋ฌธ์ ๋ฐ ๊ฐ๋ฅํ ์๋ฃจ์ ์ ๋ํ ํ ๋ก ์ ํตํฉํ๋ ค๋ ์๋๋ก ์ฝ๋๋ค.
์ด ๊ธฐ๋ฅ์ผ๋ก ํด๊ฒฐ๋๋ ๋ฌธ์ ๋ ๋ฌด์์ ๋๊น?
๋ก์ปฌ ๋๋ ํ ๋ฆฌ์์ ํ๋ก์ ํธ๋ฅผ ๋น๋ํ ๋ pip๋ ๋จผ์ ํ๋ก์ ํธ๋ฅผ ์์ ์์น์ ๋ณต์ฌํฉ๋๋ค .
์ด ์ ๊ทผ ๋ฐฉ์์ ์๊ฐ์ด ์ง๋จ์ ๋ฐ๋ผ ์ฌ๋ฌ ๋ฌธ์ ๋ฅผ ์ ๊ธฐํ์ต๋๋ค.
๋น๋ํ๊ธฐ ์ ์ pip๊ฐ ์์ ๋๋ ํ ๋ฆฌ์ ๋ณต์ฌํ๋ ์ด์ ๋ ๋ฌด์์ ๋๊น? ์ฃผ์ ์ฌํญ: ์ด๊ฒ์ ๋์๊ฒ ๋ถ๋ถ๋ช ํฉ๋๋ค. ์ง๊ธ๊น์ง ์์งํ ๋ด์ฉ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
๊ฐ๋ฅํ ํด๊ฒฐ์ฑ
์ถ๊ฐ ์ปจํ ์คํธ
sdist๋ฅผ ํตํ ๋น๋ ์ ๋ํ ๋ ๋ง์ ํ ๋ก ์ ํ ๋ก
์ด๊ฒ์ ๋ฐฑ์๋์ ๊ด์ ์์ ๋ณด๋ฉด "out of tree build"๋ผ๋ ๊ฐ๋ ์ ์ค์ ๋ก ์๋ฏธ๊ฐ ์์ต๋๋ค. ๋ฐฑ์๋์๋ ํ๋ก์ธ์ค์ ํ์ฌ ๋๋ ํ ๋ฆฌ ํํ๋ก "์์ค ํธ๋ฆฌ"๊ฐ ์ ๊ณต๋๊ณ ๋น๋๋ฅผ ์คํํ๋ผ๋ ์์ฒญ์ ๋ฐ์ต๋๋ค. ํด๋น ๋๋ ํ ๋ฆฌ๊ฐ sdist์์ ์ถ์ถ๋์๋์ง, VCS์์ ์ฒดํฌ์์๋์๋์ง, ๋๋ ๋ค๋ฅธ ๊ณณ์์ ๋ณต์ฌ๋์๋์ง ์ ๋ฐฉ๋ฒ์ด ์์ต๋๋ค. ํ ์ ์๋ ๊ฒ์ ๋น๋๋ฟ์ด๋ฉฐ ๋น๋์ ํ์ํ ๊ฒ์ด ์์ผ๋ฉด ์คํจ๋ฅผ ๋ณด๊ณ ํฉ๋๋ค.
๊ทธ๋์ ๊ฐ๋ฅํ ์๋ฃจ์ ์ ๊ฑฐ์ ์ฃฝ์ ๋๋ค. (3) IMO - ๋ฐฑ์๋์๋ ๋ด๋ถ ๋น๋ ๊ฐ ๋ฌด์์ธ์ง์ ๋ํ ๊ฐ๋ ์ด ์์ผ๋ฏ๋ก ๊ทธ๋ฌํ ๋น๋๊ฐ ์์ ํ์ง ์ฌ๋ถ๋ฅผ ๋งํ ์ ์์ต๋๋ค 1 .
(2)์ ๊ด๋ จํ์ฌ ๋๋ ์ผ๋ฐ์ ์ผ๋ก ์ด์ ๊ฐ์ ์ถ๊ฐ ์ต์ ์ ๋ฐ๋ํฉ๋๋ค. ์ฐ๋ฆฌ๊ฐ ์ต์ ์ ๋ฐฉ๋ฒ์ด ๋ฌด์์ธ์ง ์๋ค๋ฉด ๊ทธ๊ฒ์ ํด์ผ ํ๊ณ , ๊ทธ๋ ์ง ์๋ค๋ฉด ๋ฌธ์ ๋ฅผ ์ฌ์ฉ์์๊ฒ ์ ๋ฌํ๋ ๊ฒ์ ํน๋ณํ ์น์ํ ์ต์ ์ด ์๋๋๋ค. ์ฌ๊ธฐ์์ ๋ฌธ์ ๋ ์ฌ๋ฐ๋ฅธ ์ ํ์ด ๋ฌด์์ธ์ง ์๋ ์ฌ์ฉ์๊ฐ ๊ฑฐ์ ์์ ์ ๋๋ก ๋ฏธ๋ฌํ๋ฏ๋ก ์ฌ๋๋ค์ด 2๊ฐ์ง ์ต์ ์ ์๋ํ๊ณ ๋งน๋ชฉ์ ์ผ๋ก "ํจ๊ณผ๊ฐ ์๋ ๊ฒ"์ ์ฌ์ฉํ๋ ๊ฒ์ ๋ณผ ์ ์์ต๋๋ค. ๋ํ ์ง์ ์๋ฏธ๋ ์ค์ํฉ๋๋ค. ์ต์ ์ ์ ๊ณตํ๋ค๋ ๊ฒ์ ์ ์ด๋ ์ผ๋ถ ๊ฒฝ์ฐ์๋ ๋น๋ ๊ฒฐ๊ณผ๊ฐ ๋ค๋ฅผ ๊ฒ์ผ๋ก ์์ํ๋ค๋ ๊ฒ์ ๋ถ๋ช ํ ์๋ฏธํ๋ฏ๋ก ์ฐจ์ด์ ์ด ์์๋๋ก์ธ์ง ํ ์คํธํ๋ ค๋ฉด ์ด๋ป๊ฒ ํด์ผ ํฉ๋๊น? ์ธํ๋ ์ด์ค ๋น๋ ํ๋๊ทธ๊ฐ ํ์ํ ์๊ธฐ์ ๋ํด ์ฌ์ฉ์๋ฅผ ๊ต์กํ ์ฑ ์์ด ์์ต๋๊น(๋ฌธ์๋ฅผ ํตํด ๋๋ ๋ฌด์์ ์ฌ์ฉํด์ผ ํ ์ง ๋ชจ๋ฅด๋ ์ฌ์ฉ์๊ฐ ์ ๊ธฐํ ๋ฌธ์ ์ ๊ฒฐ๊ณผ๋ก)?
๊ทธ๋ ๊ธด ํ์ง๋ง, ์ ๋ ๋จ์ํ ์ ์๋ฆฌ์ ๊ตฌ์ถํ๋ pip์ ๋ฐ๋ํ์ง ์์ต๋๋ค. ์ฐ๋ฆฌ๊ฐ ํ์ง ์๋ ์ด์ ๋ ์ด์ ๋น๋์์ ๋จ๊ฒจ์ง ์ํฐํฉํธ๊ฐ ํ์ ๋น๋์์ ์ฌ์ฉ๋์์ง๋ง ๋ค๋ฅธ ์ต์ ์ผ๋ก ๋น๋๋ ๊ฒฝ์ฐ๊ฐ ์๊ธฐ ๋๋ฌธ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค(์: ๋๋ฒ๊ทธ ๋ชจ๋์์ ๋น๋๋ ๊ฐ์ฒด ํ์ผ์ด ๋ฆด๋ฆฌ์ค ๋น๋์ ๋งํฌ๋จ ๊ฐ์ ๋๋ฌด์์ ์ํ). ๊ทธ๋ฌ๋ ๋ฐฑ์๋๋ ์ด์ ๊ฐ์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ง ์๋๋ก ํด์ผ ํ๋ฉฐ, ๋ฐ์ํ๋ ๊ฒฝ์ฐ ๋ฐฑ์๋ ๋ฒ๊ทธ์ด๋ฉฐ ์ด์ ๋ํด ๋ฐฉ์ดํ๊ธฐ ์ํด ๋ ธ๋ ฅํ์ง ์๋ ๊ฒ์ด ํฉ๋ฆฌ์ ์ ๋๋ค. ๊ทธ๋ฌ๋ ์ด๋ฌํ ์ ์ฅ์ ์ทจํ๋ ๊ฒ์ด ํนํ ์ฌ์ฉ์ ์นํ์ ์ธ์ง ํ์คํ์ง ์์ต๋๋ค. ์ด๋ ์ฆ๋ถ ๋น๋๋ผ๋ ์ฃผ์ ๋ก PEP 517 ํ ๋ก ์ค์ ์ ๊ธฐ๋์์ผ๋ฉฐ ๋น์์ ์ฐ๊ธฐ๋ ์ ๋๋ก ๋ ผ๋์ด ๋ง์์ต๋๋ค.
๋ด ์ ํธ๋๋ sdist๋ฅผ ๊ตฌ์ถํ ๋ค์ ์ง๊ธ๋ถํฐ ์ค๋ซ๋์(์ ํ ์ฌํญ 1) ํ ์ ๊ตฌ์ถํ๋ ๊ฒ์ด์์ต๋๋ค. ๋๋ pip ๊ตฌ์ถ์ ๋์ํ์ง๋ง (์์์ ์ธ๊ธํ๋ฏ์ด ๋ฐฑ์๋์์ ์๋ ค์ฃผ๋ ๊ฒ์ ๊ธฐ๋ํ ์ ์๋ค๋ ์ ์ ๊ฐ์ํ ๋ ๊ทธ๋ ๊ฒ ํ๋ ๊ฒ์ด ์์ ํ๋ค๋ ๋ฐ ๋์ํ ์ ์๋ค๋ฉด) ์ปค๋ฎค๋ํฐ๊ฐ ํ์ํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ๋ ๋์ ์๋ฏธ(๋ฐฑ์๋, pip/ํ๋ก ํธ์๋ ๋ฐ ์ต์ข ์ฌ์ฉ์์ ๋ํ)๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํ ํ ๋ก .
1 ๋ฌผ๋ก "out of tree" ๋น๋์ ๋์กฐ์ ์ผ๋ก "in-place" ์์ค ํธ๋ฆฌ๋ฅผ ๊ตฌ์ฑํ๋ ์์๋ฅผ ์ ์ ํ๊ธฐ ์ํด PEP 517์ ์ ๋ฐ์ดํธํ๋ ๊ฒ์ด ๊ฐ๋ฅํ์ง๋ง, ๋๋ ๊ทธ๊ฒ์ด ๊ณ ์ ์ํค๊ธฐ ๋งค์ฐ ์ด๋ ค์ด ๊ฐ๋ ์ด ๋ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
์๋ฃจ์ 4.(pip๋ฅผ ํญ์ ์ ์๋ฆฌ์ ๋น๋ํ๋๋ก ๋ณ๊ฒฝ) ๋ฐ 5.(pip๋ฅผ ์ธ๋ถ ๋น๋ ์ต์ ๊ณผ ํจ๊ป ๊ธฐ๋ณธ์ ์ผ๋ก ์ ์๋ฆฌ์ ๋น๋ํ๋๋ก ๋ณ๊ฒฝ) ์๋ฃจ์ ์ ์ถ๊ฐํ์ต๋๋ค.
๋๋ ๋ค์๊ณผ ๊ฐ์ ์ด์ ๋ก sdist(์๋ฃจ์ 1.)๋ฅผ ํตํ ๊ฑด๋ฌผ์ ๋ํด ์๊ฐ๋ฆฐ ๊ฐ์ ์ ๊ฐ์ง๊ณ ์์ต๋๋ค.
UnsupportedOperation
๋ํด build_sdist
UnsupportedOperation
๋ฅผ ์ฌ๋ฆด ์ ์๋๋ก ๊ตฌ์ฒด์ ์ผ๋ก ํ์ฉํฉ๋๋ค.ํ ๋ก ์ ๋ํ ์ด
๋๋ ์๋ฃจ์ 3์ ๊ฒฝ๋ก์ ๋์ํฉ๋๋ค. ๋ช ๋ฐฑํ์ง ์์ต๋๋ค.
๋ํ ๊ฐ๋ฅํ๋ฉด ์ถ๊ฐ ์ต์ ์ ํผํด์ผ ํ๋ค๋ ๋ฐ ๋์ํฉ๋๋ค.
๋ํ ๋งํฌ๋ ํ ๋ก ์ค๋ ๋์์ ์ธํ๋ ์ด์ค ๋น๋์ ์ฐฌ์ฑํ๋ ๋ชฉ์๋ฆฌ๊ฐ ์์์ง๋ง ์ค์ ๋ก ํด๋น ์ ๊ทผ ๋ฐฉ์์ ํ์ํ๋ ค๋ฉด ํด๋น ํน์ ์ฃผ์ ์ ๋ํ ์ง์ค์ ์ธ ์ปค๋ฎค๋ํฐ ํ ๋ก ์ด ํ์ํฉ๋๋ค.
- ์ ์๋ฆฌ์ sdist๋ฅผ ๋ง๋ค๊ณ ์์ ์์น์ sdist์ ์์ถ์ ํผ ๋ค์ ๊ทธ ์์น์์ ๋น๋ํฉ๋๋ค.
์ข์ ์ ๊ทผ ๋ฐฉ์์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
IMO ๊ฐ๋ฅ์ฑ์ ๋ก์ปฌ ๋๋ ํ ๋ฆฌ์ ๊ด๋ จ๋ ๋๋ถ๋ถ์ pip install
์คํ์์ ๋จ์ผ ํจํค์ง์ ๋ํด ์คํ๋ฉ๋๋ค. ๊ฐ์ฅ ์ผ๋ฐ์ ์ผ๋ก pip install .
์์ํฉ๋๋ค. ์ด๋ ํจํค์ง ๊ฐ๋ฐ ์ํฌํ๋ก์ ์ผ๋ถ๋ก ์ํ๋ ๊ฐ๋ฅ์ฑ์ด ๋์ต๋๋ค.
์ด ํ๋์ ๋ค์๊ณผ ๊ฐ์์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
local-dir -> sdist -> wheel์ ์ํํ๋ฉด ์ถ๊ฐ ํธ์ถ ์ธํธ๊ฐ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ํนํ ๊ฐ๋ฐ ์ค์ ์์ฑ๋ sdist๊ฐ ์ ์์ธ์ง ํ์ธํ๋ ๊ฒ์ด ํฉ๋ฆฌ์ ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. tox๋ ์ด๋ฏธ ์ํฌํ๋ก์ ์ผ๋ถ๋ก ์ด ์์ ์ ์ํํ๊ณ ์์ผ๋ฉฐ ์ฌ๊ธฐ์์ setuptools์ ๊ทธ๋ค์ง ์น์ํ์ง ์์ ์ธํฐํ์ด์ค๋ฅผ ๋ค๋ฃจ๊ธฐ ์ํด ์ฒดํฌ ๋งค๋ํ์คํธ๋ฅผ ์ฌ์ฉํฉ๋๋ค.
์ ๋ฐ์ ์ผ๋ก, ๋ก์ปฌ ๋๋ ํ ๋ฆฌ๊ฐ ์ฃผ์ด์ก์ ๋ sdist๋ฅผ ๊ตฌ์ถํ๋ ๋น์ฉ์ ํ๋ก์ ํธ์์ ๊ทธ๋ฌํ ์ค๋ฅ๋ฅผ ๋ฐฉ์งํ๋ ๋ฐ ๊ฐ์น๊ฐ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ํนํ ๋ก์ปฌ ๋๋ ํ ๋ฆฌ์์ ์ค์นํ๋ ์ฌ๋๋ค์ด ํ๋ก์ ํธ ๊ฐ๋ฐ์์ผ ๊ฐ๋ฅ์ฑ์ด ๋๊ธฐ ๋๋ฌธ์ ๋๋ค.
๋กค์์๊ณผ ๊ด๋ จํ์ฌ #6536์ด ์ด๋ป๊ฒ ๋์ค๋์ง ์ง์ผ๋ณด๊ณ ์ถ์ต๋๋ค. ์ฐ๋ฆฌ๋ ์ด์ ํ ์ ์๋ ๋ช ๊ฐ์ง๋ฅผ ํ์คํ ๋ฐฐ์ธ ๊ฒ์ ๋๋ค.
๋๋ sdist๋ฅผ ๋น๋/ํด์ ํ๊ณ ์ค์นํ๋ ๊ฒ๋ณด๋ค sdist๋ฅผ ๋น๋/์ค์นํ๋ ๊ฒ์ ์ ํธํฉ๋๋ค(๋ฐ๋ผ์ setup.py install
๋๋ setup.py bdist_wheel
๋๋ PEP 517 ๋ฐฑ์๋์์ build_wheel
ํธ์ถ) ๊ทธ๊ฒ์ ํตํด์. ๋ด ๊ตฌ์ฒด์ ์ธ ์ด์ ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
setup.py install
๋ฅผ ํตํด)๋ฅผ ์ํํ๋ค๊ณ ๊ฐ์ ํฉ๋๋ค. local-dir -> ์ค์น๋ฅผ ์ํ๋ ์ฌ์ฉ์๋ pip install local-dir
์คํํ ์ ์์ต๋๋ค. local-dir -> sdist -> ์ค์น์์ ์ด๋ํ๋ ค๋ ์ฌ์ฉ์๋ ์์ ๋กญ๊ฒ sdist๋ฅผ ์์ฑํ ๋ค์ pip install ./path/to/sdist
๋ฅผ ์คํํ ์ ์์ต๋๋ค. sdist๋ฅผ ๊ตฌ์ถํ ์ ์๋ ๋์ฒด ๋๊ตฌ๊ฐ ๋ง์ด ์์ผ๋ฉฐ, ์ด๋ ์ฌ์ฉ์๊ฐ PyPI์ ์
๋ก๋ํ๋ ๋ฐฐํฌํ์ ์์ผ๋ก ์ ์ํ์ง ์๋ ํ ์ฌ์ฉ์๊ฐ ์ด๋ฏธ ๊ฐ์ง๊ณ ์์ ๊ฐ๋ฅ์ฑ์ด ๋ ํฐ ๊ฒ์
๋๋ค.pip install local-dir
์คํํ ์ ์์ต๋๋ค. ์ต์
์ด ์๋ ์ฌ์ฉ์๋ pip์๊ฒ ๋์์ ์ ์ดํ๋ โโ์ต์
์ ์์ฒญํ๊ฑฐ๋ ๊ทธ๋ ์ง ์์ผ๋ฉด ํ์ํ์ง ์์ ๋ค๋ฅธ ๋๊ตฌ๋ฅผ ์ฐพ์์ผ ํฉ๋๋ค.์ ๊ทผ ๋ฐฉ์์ ๊ด๊ณ์์ด ์ ์๋ฆฌ์์ ์์
์ ์ํํ ๋ ๋ณผ ์ ์๋ ์ ์ผํ ๋ฌธ์ ๋ setuptools ๋น๋์ ๊ฒฝ์ฐ(์ด๊ฒ์ด ๋ ๊ฑฐ์ ๋ฐ PEP 517์ ์ ์ฉ๋๋ค๊ณ ์๊ฐํฉ๋๋ค) ํ๋ก์ ํธ ๋๋ ํ ๋ฆฌ์ .egg-info
๋ก ๋๋ ๊ฒ์ด๋ผ๋ ๊ฒ์
๋๋ค. pip๊ฐ ํด๋น ๋๋ ํ ๋ฆฌ์์ python -m pip
๋ก ํธ์ถ๋ ๋ "์ค์น๋ ํจํค์ง"๋ก. ์ด๊ฒ์ #4575์ ์ํด ์์ ๋ ๊ฒ์ด๋ฉฐ, ์ด๋ ์๋ง๋ ์ด๋ค ์ฒด๊ณ์ ๋ํด ์ค์น๋ ํจํค์ง์ ๋ํ ์ฟผ๋ฆฌ์ ํ์ฌ ๋๋ ํ ๋ฆฌ๋ฅผ ํฌํจํ์ง ์์ ๊ฒ์
๋๋ค.
sdist ๋น๋๋ฅผ ๊ฑด๋๋ฐ๊ณ ์ง์ ํธ๋ฆฌ ๋ด ๋น๋๋ฅผ ์ํํ๋ ์์ด๋์ด๊ฐ pip๊ฐ ๊ธฐ๋ณธ์ ์ผ๋ก ์ทจํ๊ณ local-dir -> sdist -> wheel์ ์๋ํ์ง ์๋ ๋ ๋์ ์ ๊ทผ ๋ฐฉ์์ด๋ผ๋ ๋ฐ ๋์ํ๊ฒ ๋์์ต๋๋ค.
Fedora์์ Python RPM ํจํค์ง๋ฅผ ๋น๋ํ ๋ ์ฐ๋ฆฌ๋ ๊ณต๋ฃก์ด๋ฉฐ ์ฌ์ ์ํํ๋ ํ์ค ๋ฐฉ๋ฒ์ python setup.py build
์
๋๋ค. PEP 517์์๋ pip wheel
๋์ ์ฌ์ฉํ๋ "์์" ๋ฐฉ๋ฒ์ ์ถ๊ฐํ์ต๋๋ค. ๊ทธ๋ฌ๋ ํ์ฅ ๋ชจ๋์ ๊ฒฝ์ฐ pip๊ฐ ๋น๋์ ์ฌ์ฉํ๋ "์์ค๋ฅผ tmp๋ก ์ด๋ํ๊ณ ๊ฑฐ๊ธฐ์์ ๋น๋" ์ ๊ทผ ๋ฐฉ์์ ๋ฌธ์ ๊ฐ ์์ต๋๋ค.
๋น๋ ๊ธฐ๊ณ๋ ์ผ๋ถ ์ปดํ์ผ๋ฌ ํ๋๊ทธ๋ฅผ ์ฃผ์
ํ๋ฏ๋ก ๋น๋ ์ํฐํฉํธ(์ด ๊ฒฝ์ฐ .so
ํ์ฅ ๋ชจ๋)์ ์์ค์ ๋ํ ๋ฉํ๋ฐ์ดํฐ๊ฐ ํฌํจ๋ฉ๋๋ค. ๋์ค์ ๋น๋ ์ํฐํฉํธ๋ฅผ ํ์ํ๊ณ ์ด ์ ๋ณด๋ฅผ ์ถ์ถํ๊ณ ์์ค๋ฅผ /usr/src/debug
์ ๋ณต์ฌํ์ฌ ํน์ *-debugsource
RPM์ ํตํด ์ค์นํ๋ ์ ์คํฌ๋ฆฝํธ๊ฐ ์์ต๋๋ค. mahcinery๋ ๋ชจ๋ ๊ฒ์ด ์์
ํธ๋ฆฌ ๋ด์์ ๊ตฌ์ถ๋๊ธฐ๋ฅผ ๊ธฐ๋ํ๋ฉฐ ์ธ๋ถ์์ ๊ตฌ์ถํ ๋๋ ์ค์ ๋ก ์ ๋๋ก ์๋ํ์ง ์์ต๋๋ค. ๋ค์์ ์ฐ๋ฆฌ ์ธก์์ ๋ฌธ์ ๋ฅผ ์ํํ๊ธฐ ์ํด (ํจ๊ป) ํ ์ ์๋ ์ผ์
๋๋ค.
$TMPDIR
ํ๊ฒฝ ๋ณ์๋ฅผ ์ค์ ํฉ๋๋ค(์: export TMPDIR=%{_builddir}/.tmp
(๋ฐ ์์ฑ)).--no-clean
์ต์
๊ณผ ํจ๊ป pip wheel
์ฌ์ฉํ์ฌ ๋ณต์ฌํ ์์ค๋ฅผ $TMPDIR
find %{buildroot} -iname '*.so' -print0 | xargs --no-run-if-empty -0 -n1 /usr/lib/rpm/debugedit -b "%{_builddir}/.tmp/pip-req-build-"* -d "$PWD"
$TMPDIR
์๋์ผ๋ก ์ ๋ฆฌํฉ๋๋ค.)๋๋ฌด ๋ง์ ๊ตฌํ ์ธ๋ถ ์ ๋ณด์ ์์กดํ๊ธฐ ๋๋ฌธ์ ์ธ ๋ฒ์งธ ๋จ๊ณ๋ ํนํ ๋ง์์ ๋ค์ง ์์ต๋๋ค.
/usr/lib/rpm/debugedit
API ๋ฐ ์์น(๋ฐ ์กด์ฌ)pip-req-build
์ด๋ฆpip๊ฐ ํญ์ ์ ์๋ฆฌ์ ๊ตฌ์ถ๋๊ฑฐ๋ ์ด์ ๋ํ ๋ช ๋ น์ค ์ค์์น๊ฐ ์์ผ๋ฉด ๋ฌธ์ ๊ฐ ์ฌ๋ผ์ง๋๋ค.
๋ค์ด์คํธ๋ฆผ ๋ณด๊ณ ์: https://bugzilla.redhat.com/show_bug.cgi?id=1806625
sdist ๋น๋๋ฅผ ๊ฑด๋๋ฐ๊ณ ์ง์ ํธ๋ฆฌ ๋ด ๋น๋๋ฅผ ์ํํ๋ ์์ด๋์ด๊ฐ pip๊ฐ ๊ธฐ๋ณธ์ ์ผ๋ก ์ทจํ๊ณ local-dir -> sdist -> wheel์ ์๋ํ์ง ์๋ ๋ ๋์ ์ ๊ทผ ๋ฐฉ์์ด๋ผ๋ ๋ฐ ๋์ํ๊ฒ ๋์์ต๋๋ค.
๋๋ ๋ํ ์ ์๋ฆฌ์์ ๋ฐํด๋ฅผ ๋ง๋๋ ์์ด๋์ด๋ฅผ ๋ฐ์๋ค์ด๋ ๊ฒฝํฅ์ด ์์ต๋๋ค. ๋จ์ ์์ฝ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
... ๊ทธ๋ฆฌ๊ณ ๋ฌผ๋ก ๋๊ตฐ๊ฐ๊ฐ ์ด ๋ณ๊ฒฝ์ ๊ตฌํํ๋ PR์ ์์ฑํด์ผ ํ ๊ฒ์ ๋๋ค(ํ ์คํธ, ๋ฌธ์ ๋ฑ - ์ผ๋ฐ์ ์ธ ๊ฒ๋ค ํฌํจ) ๊ทธ๋ ์ง ์์ผ๋ฉด ์ฐ๋ฆฌ๊ฐ ํ๋ ๋ชจ๋ ๊ฒ์ ์ด์ผ๊ธฐํ๋ ๊ฒ์ ๋๋ค ๐
์ฐ๋ฆฌ๋ "์ฌ๋ฐ๋ฅด๊ฒ" ์๋ํ๋ ๋ฐฑ์๋์ ์์กดํ ๊ฒ์ ๋๋ค. ์๋ฅผ ๋ค์ด ์ด์ ๋น๋์ ๋จ์ ๋ฐ์ดํฐ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋ค๋ฅธ ๊ฒฐ๊ณผ๋ฅผ ์ ๊ณตํ์ง ์๋ ๋ฑ์ ์์ ์ ๋๋ค. ๊ทธ๋ฐ ๊ฐ์ ์ ํ๋ ๊ฒ์ ๊ด์ฐฎ์ง๋ง ์ฌ๋๋ค์ด "pip built my wheel wrong"๋ผ๊ณ ๋งํ๊ธฐ ์์ํ๋ฉด ์ง์ ๋น์ฉ์ด ๊ฑฑ์ ๋๊ณ ๋๋ฒ๊ทธ๋ง ํ๋ฉด ๋ฐฑ์๋ ๋ฌธ์ ๋ผ๋ ๊ฒ์ ์ ์ ์์ต๋๋ค.
"๊นจ๋ํ" ํํฌ๋ฅผ ํฌํจํ๋๋ก PEP 517 ์ธํฐํ์ด์ค๋ฅผ ํ์ฅํ๋ ๊ฒ์ด ํฉ๋ฆฌ์ ์ ๋๊น? ์ฐ๋ฆฌ๋ ์๋ง๋ ๋ค๋ฅธ ๋ ธ๋ ฅ(์: ํธ์ง ๊ฐ๋ฅํ ์ค์น ๊ตฌํ, PEP 517 ํ๋ก์ ํธ๋ฅผ ๋น๋ํ๋ ํจํค์ง ๊ฐ๋ฐ ๋๊ตฌ ๋น๋)์ ๊ฐ๋ฅํ๊ฒ ํ๋ ์ด๋ค ์ง์ ์ผ๋ก ๊ทธ๊ฒ์ ์ํ ๊ฒ์ ๋๋ค. pip๋ ํธ๋ฆฌ ๋ด ๋น๋๋ฅผ ์ํํ๊ธฐ ์ ์ ๋จ์ ์ฐ๋ ๊ธฐ๊ฐ ์๋์ง ํ์ธํ๊ธฐ ์ํด ์ฌ๊ธฐ์์ ํธ์ถํ ์ ์์ต๋๋ค.
"๊นจ๋ํ" ํํฌ๋ฅผ ํฌํจํ๋๋ก PEP 517 ์ธํฐํ์ด์ค๋ฅผ ํ์ฅํ๋ ๊ฒ์ด ํฉ๋ฆฌ์ ์ ๋๊น?
์๋ง๋? ๊ทธ๋ฌ๋ pip๊ฐ ์๋์ผ๋ก clean
ํธ์ถํ๋ฉด ์ฆ๋ถ ๋น๋ ๋ฑ์ ์ํํ๊ธฐ ์ํด ๊ทธ๋ ๊ฒ ํ์ง ์์ผ๋ ค ๋ ์ฌ๋์ด ์์ ์ ์์ต๋๋ค. ๊ทธ๋ฐ ๋ค์ ๋ค๋ฅธ ์ต์
์ผ๋ก ๋๋ฉ๋๋ค.
์ ์ฑํฅ์ "์ธํ๋ ์ด์ค ๋น๋๊ฐ ์ฌ๋ฐ๋ฅด๊ฒ ์๋ํ๋๋ก ํ๋ ๊ฒ์ด ๋ฐฑ์๋์ ์ฑ ์์ด๋ผ๊ณ ๊ฐ์ ํ ์ ์์ด์ผ ํฉ๋๋ค"๋ผ๋ ์ ์ ์ฅ์ ๊ณ ์ํ๋ ๊ฒ์ ๋๋ค. ๊ทธ๊ฒ์ด ์ง์งํ ์ ์๋ ๊ฒ์ผ๋ก ํ๋ช ๋๋๋ผ๋, ์๋ํ์ง ์๋ ์ด์ ์ ๋ํ ๊ตฌ์ฒด์ ์ธ ์๋ฅผ ์ป๋ ๊ฒ์ ๋จ์ํ ์ถ์ธกํ๊ธฐ๋ณด๋ค๋ ๋ฌธ์ ์ ๋ํด ๋ฌด์์ ํด์ผ ํ๋์ง ๋ ์ ์ดํดํ๋ ๋ฐ ๋์์ด ๋ ๊ฒ์ ๋๋ค.
- ์ฐ๋ฆฌ๋ "์ฌ๋ฐ๋ฅด๊ฒ" ์๋ํ๋ ๋ฐฑ์๋์ ์์กดํ ๊ฒ์ ๋๋ค. ์๋ฅผ ๋ค์ด ์ด์ ๋น๋์ ๋จ์ ๋ฐ์ดํฐ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋ค๋ฅธ ๊ฒฐ๊ณผ๋ฅผ ์ ๊ณตํ์ง ์๋ ๋ฑ์ ์์ ์ ๋๋ค.
์ด๊ฒ์ ๋ช ์์ ์ธ ์๊ตฌ ์ฌํญ์ผ๋ก ๋ง๋ค๊ธฐ ์ํด PEP-517์ ํ์ฅํ๊ณ ์ถ์ต๋๋ค.
์ด๊ฒ์ ๋ช ์์ ์ธ ์๊ตฌ ์ฌํญ์ผ๋ก ๋ง๋ค๊ธฐ ์ํด PEP-517์ ํ์ฅํ๊ณ ์ถ์ต๋๋ค.
์ด๋ฏธ ๋ค์๊ณผ ๊ฐ์ด ๋งํฉ๋๋ค.
๋ฐฑ์๋๋ ์บ์ ์์น ๋๋ ์์ ๋๋ ํ ๋ฆฌ์ ์ค๊ฐ ์ํฐํฉํธ๋ฅผ ์ ์ฅํ ์ ์์ต๋๋ค. ์บ์์ ์กด์ฌ ์ฌ๋ถ๋ ๋น๋์ ์ต์ข ๊ฒฐ๊ณผ์ ์ค์ํ ์ฐจ์ด๋ฅผ ๋ง๋ค์ง ์์์ผ ํฉ๋๋ค.
๋ฐฑ์๋๊ฐ ์๋์ ์ผ๋ก ์ด ์๊ตฌ ์ฌํญ์ ์๋ฐํ ๊ฐ๋ฅ์ฑ์ ๊ทธ๋ฆฌ ๋ง์ง ์์ต๋๋ค. ์ฌ์ฉ์๊ฐ ์์ฐ์ค๋ฝ๊ฒ ๋ฌธ์ ๋ฅผ pip ๋ฌธ์ ๋ก ๋ณด๊ณ ํ๊ณ ๋ฐฑ์๋ ํ๋ก์ ํธ๋ก ๋ฆฌ๋๋ ์ ๋๋ฏ๋ก ์ฝ๊ฐ์ ์ถ๊ฐ ์ค๋ฒํค๋๊ฐ ๋ฐ์ํ๊ธฐ ๋๋ฌธ์ ๋๋ค.
Fedora์ ๋ํ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ์ฐพ์ผ๋ ค๊ณ ํ ๋ https://github.com/pypa/pip/issues/7872 ๊ฐ ๋ฐ์ํ์ต๋๋ค.
#7731 ๋ฐ ์น๊ตฌ๋ค๊ณผ ํจ๊ป ".egg-info in cwd" ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ๋๋ฌธ์ ์ ์๋ฆฌ์ ๋น๋ํ ๋ ๊ฑฑ์ ํ ์ผ์ด ํ ๊ฐ์ง ์ค์ด๋ญ๋๋ค.
๊ทธ๋์ ์ต์ 4(ํญ์ ์ ์๋ฆฌ์ ๋น๋)๊ฐ #7882์์ ๊ตฌํ๋์์ต๋๋ค.
์ฐ๋ฆฌ๋ ์ด์ (#7951์ ๋ฐ๋ผ) pip, pip 20.1b1์ ๋ฒ ํ ๋ฆด๋ฆฌ์ค๋ฅผ ๊ฒ์ํ์ต๋๋ค. ์ด ๋ฆด๋ฆฌ์ค์๋ ์ด ๋ฌธ์ ์ ๋ํ ์๋ฃจ์ ์ ๊ตฌํํ #7882๊ฐ ํฌํจ๋์ด ์์ต๋๋ค.
์ด๋ฒ ํธ์ ์ฐธ๊ฐ์๋ค์ด ๋ฒ ํ๋ฅผ ํ ์คํธํ๊ณ ์๋ก์ด ๋ฒ๊ทธ๋ฅผ ํ์ธํจ์ผ๋ก์จ ์ฐ๋ฆฌ๋ฅผ ๋์ธ ์ ์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค. ํ์์ผ์ ์ฃผ์ 20.1์ด ๋ฆด๋ฆฌ์ค๋๊ธฐ ์ ์ ์ ์ฌ์ ์ธ ๋ฌธ์ ๋ฅผ ์๋ณํ๊ณ ํด๊ฒฐํ๊ณ ์ ํฉ๋๋ค.
๋ํ "์, ์ด์ ๋ ์ ์๋ํฉ๋๋ค!"๋ผ๋ ๊ธ์ ์ ์ธ ํผ๋๋ฐฑ์ ํ์ํฉ๋๋ค. ๋ํ ๋ฌธ์ ์ถ์ ๊ธฐ๋ ์ผ๋ฐ์ ์ผ๋ก "๋ฌธ์ "๋ก ๊ฐ๋ ์ฐจ ์๊ธฐ ๋๋ฌธ์ ๋๋ค. :)
์ฐ๋ฆฌ๋ Fedora์์ ๊ทธ๊ฒ์ ์์ ํ ํ ์คํธํ ๊ณํ์ด์ง๋ง(๋น์ ์ ์ฝ๋ฉํธ ์ ์ ์ด๋ฏธ ๊ณํํ์ต๋๋ค), ํ์์ผ ๋ง๊ฐ์ผ์ ์๋ง๋ ํ์ค์ ์ด์ง ์์ ๊ฒ์ ๋๋ค.
@hroncok Fedora๊ฐ ์ธ์ ์ด๋ฌํ ๋ณ๊ฒฝ ์ฌํญ์ ํ ์คํธํ ์ ์๋์ง ์ ์ ์์ต๋๊น?
์์์ผ์ ์ด๋ป๊ฒ๋ ํด๋ณผ ์ ์๋๋ก ์ต์ ์ ๋คํ๊ฒ ์ง๋ง ์ด๋ค ์ฝ์๋ ํ ์ ์์ต๋๋ค.
์ค์ ๋ก 20.1b1์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํฉ๋๋ค.
https://mail.python.org/archives/list/[email protected]/message/5EAUIYYIRKXEHTAG5GQ7EJHSXGZIW2F7/์ ๋ณด๋ค ์ผ๋ฐ์ ์ธ 20.1b1 ํผ๋๋ฐฑ
๋ง์ธ! @hroncok ๋ฒ ํ๋ฅผ ์ฌ์ฉํด ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค! ๋งค์ฐ ๊ฐ์ฌ! ^>^
๋น๋ ์ธ ํ๋ ์ด์ค์ ํ ๊ฐ์ง ๊ฒฐ๊ณผ: ์ฌ๋ฌ ๋ฒ์ ์ Python์ ๋ณ๋ ฌ๋ก(manylinux ๋์ปค ์ปจํ ์ด๋ ๋ด๋ถ์์) ํ ์ ๋น๋ํ์ต๋๋ค. ๋ด๋ถ ๋น๋๋ฅผ ์ฌ์ฉํ๋ฉด ๋ณ๋ ฌ ๋น๋๊ฐ ๋ค๋ฅธ ๋ฒ์ ์ถฉ๋๋ก ์๋ํ์ง ์์ต๋๋ค. ํธ๋ฆฌ ์ธ๋ถ ๋น๋์์๋ ๊ฐ ๋ฒ์ ์ด ๋ณ๋์ ํธ๋ฆฌ๋ฅผ ๋ง๋ค๊ณ ๋ฌธ์ ๊ฐ ์์์ต๋๋ค.
@manthey ํ ๋ก ์ด #
๊ทธ๋์ ์ด์ 10์ผ์ด ๋์์ต๋๋ค. ๋ณ๊ฒฝ ์ฌํญ์ ๋ํด ๋ช ๊ฐ์ง ๋ฌธ์ ๊ฐ ์ ๊ธฐ๋์์ต๋๋ค(๋ชจ๋ ์์ - #8165, #8168, #8196). ๋ณํ๊ฐ ๋์์ด ๋๋ค๊ณ ๋ช ์์ ์ผ๋ก ์ธ๊ธํ๋ ์ฌ๋๋ค๋ ์์์ต๋๋ค.
bdist_wheel
์๋ --bdist-dir
๊ฐ ์์ง๋ง ์ฌ์ ํ .egg-info
๋ฅผ ์๋๋ค. ์ฅ์, https://github.com/pypa/setuptools/issues/1816, https://github.com/pypa/setuptools/issues/1825 ์ฐธ์กฐ). ์ด์ pip๊ฐ ์ฌ๋ฐ๋ฅด๊ฒ ์๋ํ๋ฏ๋ก ๋
ผ์๊ฐ ์ ํ๋์ด ์๋ฅผ ๋ค์ด setuptools๊ฐ ์์ค ๋๋ ํ ๋ฆฌ๋ฅผ ๊ฑด๋๋ฆฌ์ง ์๊ณ ๋น๋๋ฅผ ์ํํ๋ ์ต์
์ ๋ฐ์ ์ํจ ๋ค์ ํด๋น ์ต์
์ ์ ์ดํ๊ธฐ ์ํด PEP 517 ๋ณ๊ฒฝ์ด ํ์ํ์ง ์ฌ๋ถ๋ฅผ ํ์ธํ ์ ์์ต๋๋ค.๊ทธ๋์ ์ ๋ ๋ธ๋ ์ดํน ์ฒด์ธ์ง๋ฅผ ์ซ์ดํ๋๋ฐ ์ด๋ฒ ์์ ์ ๊ฐ๋ณ๊ฒ ํ ๊ฒ์ด ์๋๋ผ ์ด๋ฐ ์ด์ ๋ก ๊ฐ์ธ์ ์ผ๋ก ์ ์งํ๋ ํธ์ ๋๋ค.
๋๋ ์๋ก์ด ํ๋์ด pip๊ฐ "์ฌ๋ฐ๋ฅด๊ฒ", ํ์คํ ๋ค๋ฅด๊ฒ ํ๋ํ๋ค๋ ์ ์ ๋์ํ์ง ์์ผ๋ฉฐ, ์ด๋ค ๊ฒฝ์ฐ์๋ ๋ถ๋ช ํ ๋ค๋ฅด๊ฒ ๊นจ์ ธ ์์ผ๋ฉฐ, ๊ทธ์ ๊ฐ์ด ํ์ ์ก๋ ๊ฒ์ด ์ฌ๋ฐ๋ฅด์ง ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ด๋ ๋ค๋ฅธ ์ธํธ์ ๋ํด ๊นจ์ง ์ฌ์ฉ์ ์ธํธ์ ๋ํ ์ ์ถฉ์์ ๋ํ๋ ๋๋ค. ๋ ๊ฒฝ์ฐ ๋ชจ๋ ์ฌ๊ธฐ์ ์ํํ ์ ์๋ ํด๊ฒฐ ๋ฐฉ๋ฒ์ด ์์ต๋๋ค.
๋๋ ์ด ๋ณ๊ฒฝ ์ฌํญ์ ๋ณํฉํ์ง ์์๊ณ ๋ฐ์ํ๋ ๊ฒ์ ๋์ณค๊ฑฐ๋ ๊ทธ๊ฒ์ ๋ํด ๋ ผ์ํ์ ๊ฒ์ ๋๋ค. ). ์ฆ, ๋๋๋ฆฌ๊ธฐ๊ฐ ์ฌ๊ธฐ์์ ์ฌ๋ฐ๋ฅธ ๊ฒ์ธ์ง ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. ํ๋์ด ๋ง์ด ๋ค๋ฐ๋๋ ๊ฒฝ์ฐ ์ฌ์ฉ์์๊ฒ ๋์ฑ ํผ๋์ ์ค ์ ์์ต๋๋ค. ๋๋๋ฆฌ๋ ค๋ฉด ๋นจ๋ฆฌ ํด์ผ ํ๊ณ ๊ทธ๋ ์ง ์์ผ๋ฉด ํ์ฌ ๋์์ด ๋ ์ข๊ฑฐ๋ ๋์ ๊ฒ์ ๋๋ค.
pip wheel <localdir>
๋ฐ pip install <localdir>
cd <localdir> ; setup.py bdist_wheel
์ ์ด๋ค ๊ฒฝ์ฐ์๋ https://github.com/pypa/pip/issues/7555#issuecomment -595180864 ๋๋ #6276 ๋๋ ์ผ๋ฐ ์ค๋ฅ๊ฐ ์๋ ๋ค๋ฅธ ๋ฒ์ ์
๋๋ค. ๋๋ pip 20.1์ด ๊ทธ๋ฐ ๋์ ๋ฐํด/์ค์น๋ฅผ ์์ฑํ๋ค๊ณ ์๊ฐํ์ง ์์ผ๋ฏ๋ก ๊ทธ๋ฐ ์๋ฏธ์์ ๋๋ ๊ทธ๊ฒ์ด ์ค์ ๋ก ๋ ์ ํํ๋ค๊ณ ๋ฏฟ์ต๋๋ค.
๋ฌผ๋ก ๋ณ๊ฒฝ ์ฌํญ์ผ๋ก ์ธํด ์ผ๋ถ ์ํฌํ๋ก๊ฐ ์ค๋จ๋ ์ ์์ผ๋ฉฐ ํผ๋๋ฐฑ์ด ์๋ ์ง๊ธ ์ ์ถฉ์์ ๋ค์ ํ๊ฐํ๊ณ ์๋๋๋ก ๋๋๋ฆฌ๊ฑฐ๋ ํ์ธํด์ผ ํ๋ค๋ ๊ฒ์ ์๊ณ ์์์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ฌ์ ํ setup.py sdist && pip install dist/*.tar.gz
์ ๋ค๋ฅธ ํ ์ ์์ฑํ ์ ์์ต๋๋ค.
๋ด ์ ์์ PR์ ๋๋๋ฆฌ๊ณ ๋จผ์ sdist๋ฅผ ์์ ๋ค์ ๊ฒฐ๊ณผ sdist์์ ํ ์ ๋น๋ํ์ฌ ์์ ์ฌํญ์ ๊ตฌํํ๋ ๊ฒ์ ๋๋ค.
์ด๊ฒ์ ํ๋ก์ ํธ๊ฐ sdist๋ฅผ ์ฌ๋ฐ๋ฅด๊ฒ ๊ตฌ์ถํ ์ ์๋ ๊ฒฝ์ฐ๋ฅผ ์ ์ธํ๊ณ ๋ชจ๋ ์ ํ์ฑ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํด์ผ ํฉ๋๋ค. ์ฆ, ํด๊ฒฐํด์ผ ํ ์ค์ํ ์ฌ์ฉ ์ฌ๋ก๊ฐ ์๋ IMO์ ๋๋ค.
๊ฑฐ๊ธฐ์์ ํธ๋ ์ด๋ ์คํ๋ ๋ ๋๋ ค์ง ๊ฒ์ด๋ผ๋ ๊ฒ์ ๋๋ค. ๊ทธ๋ฌ๋ ์ผ๋จ ๊ตฌํํ๊ณ ๋๋ฉด ์๋ ํฅ์์ ๊ฐ๋ฅํ๊ฒ ํ๋ ์ ํ์ API๋ฅผ ์ถ๊ฐํ๊ธฐ ์ํด PEP 517 ์ธํฐํ์ด์ค๋ฅผ ๋์ฑ ์ธ๋ถํํ ์ ์์ต๋๋ค. ์ด ๋ณํ๋งํผ ๋น ๋ฅด์ง๋ ์๊ฒ ์ง๋ง ํ์คํ ๋ ๊ฐ๊น์ด ๊ฐ ์๋ ์์ต๋๋ค.
์ด๋ฌํ ๋ณ๊ฒฝ์ ์ฌ์ฉ์๊ฐ ๋ง์กฑํ์ง ๋ชปํ ์ฑ๋ฅ ํ๊ท๋ฅผ ๋์ ํ์ง ์๊ณ ์ ํ์ฑ์ ๋ํ ๋ฐ๋์ ๋ ์ด์ ๋ฐ์ด ๋ฃ๋ ๊ฒ์ ์ฌ์ค์ ๋ถ๊ฐ๋ฅํ๊ฒ ๋ง๋ญ๋๋ค. ๊ทธ๋ฌ๋ ์ด๋ฅผ ์์ ํ๊ณ ์ฑ๋ฅ์ ํฅ์์ํค๋ฉด ์ ๋น์ฌ์๋ฅผ ๋ชจ๋ ๋ง์กฑ์ํค๋ ํ๋ณตํ ์ค๊ฐ ์ง์ ์ ๋๋ฌํ ์ ์์ต๋๋ค.
์ ์๋ด์ด ๋งํ๋ฏ์ด, ๋จผ์ ์ฌ๋ฐ๋ฅด๊ฒ ๋ง๋ค๊ณ , ๊ทธ ๋ค์์๋ ๋น ๋ฅด๊ฒ ํ์ญ์์ค. ๋๋ ์ด PR๋ก ์ฐ๋ฆฌ๊ฐ ๊ทธ๊ฒ์ ๋นจ๋ฆฌ ๋ง๋ค๊ณ ๊ทธ๊ฒ์ ์์ ํ๋ ์ฐ๋ฆฌ์ ๋ฅ๋ ฅ์ ์ ๊ทธ๋ ๊ฒ์ด ๋๋ ต์ต๋๋ค.
๋๋ ์ฌ์ ํ sdists๋ฅผ ๊ฒ์ฆํ๋ ๊ฒ์ด ๋ฐ๋์งํ์ง๋ง pip ์ค์น ์๊ฐ์๋ ๊ทธ๋ ์ง ์๋ค๋ ๋ฐ ๋์ํฉ๋๋ค. ์๋ง๋ ์ด๊ฒ์ ๋ฏธ๋์ sdist ๋น๋ ๋๊ตฌ ๋๋ pip ๋น๋ ๋ช ๋ น์ ๊ธฐ๋ฅ์ผ ๊ฒ์ ๋๋ค.
๋ํ setup.py sdist
๋ ๋ก์ปฌ ๋๋ ํ ๋ฆฌ์ .egg-info๋ฅผ ์์ฑํ๋ฏ๋ก ์ฝ๊ธฐ ์ ์ฉ ์์ค ๋๋ ํ ๋ฆฌ ๋๋ ๋์ ๋น๋์ ๋ํด ๋ณด๊ณ ๋ ๋ฌธ์ ๊ฐ ๊ทธ๋๋ก ์ ์ง๋ฉ๋๋ค.
pip ์ค์น ์๊ฐ์ ๋ฐ์ํ์ง ์์ผ๋ฉด ๋ค๋ฅธ ์ฌ๋์ pip ์ค์น ์๊ฐ๊น์ง ๊ธฐ๋ฅ์ ์ผ๋ก ๋ฐ์ํ์ง ์์ต๋๋ค. ๊ฑด๋๋ด๋ค๋ ๊ฒ์ ํ๋ก์ ํธ๊ฐ VCS์์ ์ค์น๋ ํจํค์ง๋ก ๊ณ์ ์ด๋ํ ์ ์๋ ์ฌ๋ฌ ๊ฒฝ๋ก๊ฐ ์๋ค๋ ๊ฒ์ ์๋ฏธํ๋ฉฐ ๋ชจ๋ ๊ฒฝ๋ก๋ ์ฐจ์ด๊ฐ ๋ ์ ์๋ ๋ ๋ค๋ฅธ ๊ธฐํ์ ๋๋ค. ์ด๊ฒ์ ์๋ก์ด ๊ฒ์ด ์๋๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ์ค์น ๊ฒฝ๋ก๋ฅผ ๋ณ๊ฒฝํ๋ ๋ชจ๋ ์ต์ ์ ๊ฐ์ฅ ์๊ฒฉํ ํ๋ก์ ํธ์ ๊ฒฝ์ฐ์๋ ๋์คํฌ์ ๋ค๋ฅธ ๋ฐ์ดํธ ์ธํธ๋ก ๋๋ฉ๋๋ค. ๋ฏธ๋ฌํ ์ฐจ์ด๋ ํญ์ ์กด์ฌํ๋ฉฐ ๊ทธ๋ฌํ ์ฐจ์ด๊ฐ ์๋ฏธ๊ฐ ์๊ธฐ๋ฅผ ๋ฐ๋ ๋ฟ์ ๋๋ค. ๋๋ ๊ตฌ์กฐ์ ์ผ๋ก ์ฒ์๋ถํฐ ์ฐจ์ด๋ฅผ ๊ฐ์ง ์ ์๋๋ก ํ์ฌ ์ด๋ฌํ ์ฐจ์ด๋ฅผ ์ ๊ฑฐํ๊ธฐ ์ํด ํ ์ ์๋ ์ผ์ ํ ์ ์์ต๋๋ค.
์ผ๋ถ ์ฑ๋ฅ ๋ฌธ์ ๋ sdist๋ฅผ ํตํด ๋น๋ํ ๋ ์ค์ ๋ก ๋ค์ ๋ํ๋ ์ ์์ง๋ง pip < 20.1์์ ์์๋ ๊ฒ๋ณด๋ค ํจ์ฌ ๋ฎ์ ๊ฒ์
๋๋ค. ์ค์ ๋ก ๋๋ถ๋ถ์ .git
๋๋ venv
, ๋๋ sdist์ ์๋ ๊ธฐํ ๊ด๋ จ ์๋ ๋ฐฉ๋ํ ๋ด์ฉ์ ๋ณต์ฌํ๋ ๋ฐ ์ฌ์ฉ๋์์ต๋๋ค.
pip
๊ฒฐ๊ตญ์๋ ์ด๋ค ๊ฒฐ๊ณผ๋ฅผ ๊ฐ์ ธ์ค๋ , ๋ ์ค ํ๋๊ฐ ๋ชจ๋ ์ฌ๋์ ๋ง์กฑ์ํฌ ์ ์์ ๊ฒ ๊ฐ๊ธฐ ๋๋ฌธ์ ๋ค๋ฅธ ์ต์
์ ๋ง๋ค ์ ์์ต๋๊น? ํ์ฌ ์ ๊ทผ ๋ฐฉ์์ด ์ ์ง๋์ด์ผ ํ๋ ๊ฒฝ์ฐ(์ด๋ค ๊ฒ์ด ๊ธฐ๋ณธ๊ฐ์ด์ด์ผ ํ๋์ง์ ๋ํ ์๊ฒฌ์ด ์์) ์ฌ์ฉ์๊ฐ sdist๋ฅผ ๋ง๋ค๊ณ ์ค์นํ ์ ์๋ ์ต์ข
๊ฒฐ๊ณผ ํด๋ฐฑ์ ์ ๊ณตํ ์ ์์ด์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ๊ฑฐ๊ธฐ์์ ํจํค์ง.
๋ํ
setup.py sdist
๋ ๋ก์ปฌ ๋๋ ํ ๋ฆฌ์.egg-info
๋ฅผ ์์ฑํ๋ฏ๋ก ์ฝ๊ธฐ ์ ์ฉ ์์ค ๋๋ ํ ๋ฆฌ ๋๋ ๋์ ๋น๋์ ๋ํด ๋ณด๊ณ ๋ ๋ฌธ์ ๊ฐ ๊ทธ๋๋ก ์ ์ง๋ฉ๋๋ค.
๋๋ (์ ์ด๋ ๋น ๋ฅธ ํ
์คํธ๊ฐ ๋์ ๋์ํจ) setuptools
( distutils
์๋)๋ง ์ํํ๊ณ ์ด ๋์์ ๋ค๋ฅธ ๊ณณ์์ dir์ ์์ฑํ๋๋ก ๊ตฌ์ฑํ ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ๋ค๋ฅธ ๋ฐฑ์๋์ ๋ง์ฐฌ๊ฐ์ง๋ก ๊นจ๋ํ sdist ์์ฑ์ ์ํํ๋๋ก ๊ถ์ฅํ ์ ์์ด์ผ ํฉ๋๋ค.
FWIW, ์ ๋ sdist-generation --egg-info
๋๋ ํ ๋ฆฌ๋ฅผ ์์
๋๋ ํ ๋ฆฌ์ ๋คํํ ํ์๊ฐ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. generate-sdist-unpack-it-build-wheel ์ ๊ทผ ๋ฐฉ์์ ์ฌ์ฉํ๋ฉด generate_metadata
์ฒ๋ผ ์์ ๋๋ ํ ๋ฆฌ์ ๋คํํ์ญ์์ค.
@pradyunsg ๋ setuptools์ ๋ณ๊ฒฝ์ด ํ์ํ์ง ์์ต๋๊น? ๋ด๊ฐ ๋ง์ง๋ง์ผ๋ก ํ์ธํ sdist
๋ช
๋ น์๋ .egg-info
๊ธฐ๋ณธ ์์น๋ฅผ ์ง์ ํ๋ ์ต์
์ด ์์์ต๋๋ค. ๋ฐ๋๋ก --egg-base
์ต์
์ด ์๋ egg_info
์๋ #7978์์.
๋ฌผ๋ก ! setuptools์์ ์๋ชป๋ ํ์ผ์ ๋ณด๊ณ ์์์ต๋๋ค. ๐ ์ ์ ํฉ๋๋ค.
์ด ๊ณต๊ฐ์ ๋ชจ๋ ๊ฒ์ด ์ ๊ทธ๋ ๊ฒ ๋ณต์กํฉ๋๊น? :(
$ ls -la
total 8
drwxr-xr-x 3 dstufft staff 96 May 6 14:26 .
drwxr-xr-x 9 dstufft staff 288 Apr 28 15:46 ..
-rw-r--r-- 1 dstufft staff 85 Apr 23 16:23 setup.py
$ py setup.py egg_info --egg-base /tmp/foo sdist
/Users/dstufft/.pyenv/versions/3.8.2/lib/python3.8/site-packages/setuptools/dist.py:471: UserWarning: Normalizing '2020.04.23.3' to '2020.4.23.3'
warnings.warn(
running egg_info
creating /tmp/foo/dstufft.testpkg.egg-info
writing /tmp/foo/dstufft.testpkg.egg-info/PKG-INFO
writing dependency_links to /tmp/foo/dstufft.testpkg.egg-info/dependency_links.txt
writing top-level names to /tmp/foo/dstufft.testpkg.egg-info/top_level.txt
writing manifest file '/tmp/foo/dstufft.testpkg.egg-info/SOURCES.txt'
reading manifest file '/tmp/foo/dstufft.testpkg.egg-info/SOURCES.txt'
writing manifest file '/tmp/foo/dstufft.testpkg.egg-info/SOURCES.txt'
running sdist
warning: sdist: standard file not found: should have one of README, README.rst, README.txt, README.md
running check
warning: Check: missing required meta-data: url
warning: Check: missing meta-data: either (author and author_email) or (maintainer and maintainer_email) must be supplied
creating dstufft.testpkg-2020.4.23.3
copying files to dstufft.testpkg-2020.4.23.3...
copying setup.py -> dstufft.testpkg-2020.4.23.3
Writing dstufft.testpkg-2020.4.23.3/setup.cfg
creating dist
Creating tar archive
removing 'dstufft.testpkg-2020.4.23.3' (and everything under it)
$ ls -la
total 8
drwxr-xr-x 4 dstufft staff 128 May 6 14:28 .
drwxr-xr-x 9 dstufft staff 288 Apr 28 15:46 ..
drwxr-xr-x 3 dstufft staff 96 May 6 14:28 dist
-rw-r--r-- 1 dstufft staff 85 Apr 23 16:23 setup.py
https://github.com/pypa/pip/issues/8165#issuecomment -624669107 ์ด๊ฒ์ ๊ฝค ์ผ ์ค์ง ๋ฒ๊ทธ์ฒ๋ผ ๋๊ปด์ง๋ฉฐ ํ๋ฆผ์์ด ์ฐ๋ฆฌ ๋ฒ๊ทธ๊ฐ ์๋์ง๋ง PEP 517 ํ ๋ก ์ค์ ๋ฐ์ํ ๊ฒ์ด๋ผ๊ณ ์ฃผ์ฅํ ๋ฒ๊ทธ ์ ํ ์ค ํ๋์ ๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ์ ์๋ฆฌ ๋น๋๋ฅผ ์ํํฉ๋๋ค.
bdist_wheel
๋ ๊ณผ๊ฑฐ์ ๋น๋ ๋๋ ํ ๋ฆฌ๋ฅผ ์๋์ผ๋ก ์ ๋ฆฌํ๋๋ก ์์ฒญ๋ฐ์์ต๋๋ค. ๊ทธ ๊ธฐ๋ฅ์ด ๋ค์ด๊ฐ์ผ ํฉ๋๋ค. ๋ค๋ฅธ distutils ๋น๋๋ ๊นจ๋ํฉ๋๊น?
SCons๋ผ๋ฉด ๊ด์ฌ ์๋ ํ์ผ์ ๊ธฐ์ตํ๊ณ ํ์ผ ์์คํ ์ ์๋ ๊ฒฝ์ฐ์๋ ํ ์์ build/ ๋๋ ํ ๋ฆฌ์ ์ถ๊ฐ ํ์ผ์ ์๋ตํฉ๋๋ค.
์์ ๋ฌธ์ ๊ฐ manylinux ์๋ง ์ํฅ์ ๋ฏธ์น๋ ๊ฒ์ ์๋๋ผ๊ณ ์๊ฐํฉ๋๋ค. ๋น๋ ๋๋ ํ ๋ฆฌ๊ฐ ABI๋ฅผ ์บก์ฒํ๊ธฐ์ ์ถฉ๋ถํ ๊ตฌ์ฒด์ ์ด์ง ์์ ๋๋ง๋ค ๋ฐ์ํด์ผ ํฉ๋๋ค(setuptools์ ๊ฒฝ์ฐ ํ๋ซํผ์ผ๋ก ํ์๋๊ณ python ๋ฒ์ ์ ๋น๋ ๋๋ ํ ๋ฆฌ์ ABI ํ๊ทธ์ ์บก์ฒ๋ ๋ชจ๋ ๊ฒ์ ๋๋ค). ๋๋ ์ด๊ฒ์ด ํ์ฌ ์ธํฐํ๋ฆฌํฐ์์๋ ABI๋ฅผ ๋์ด ํ์ฅ๋๋ค๊ณ ์๊ฐํฉ๋๋ค. ์๋ฅผ ๋ค์ด ๋ญ๊ฐ๊ฐ NumPy์ ๋ํด ๋งํฌ๋๋ ๊ฒฝ์ฐ, ABI๊ฐ ์ต์ ๋ฒ์ ์์๋ ์๋ํ์ง๋ง ์ด์ NumPy์์๋ ์๋ํ์ง ์๋๋ค๊ณ ์๊ฐํฉ๋๋ค. ๋น๋ ๋๋ ํ ๋ฆฌ ์ด๋ฆ์์ ์ธ์ฝ๋ฉํ์ง ์๋ ํ ์ด๊ฒ์ ํจ๊ณผ๋ ๊ทธ๋ฐ ์์ผ๋ก ์ฌ์ฉํฉ๋๋ค.
๋น๋ ๋๋ ํ ๋ฆฌ๋ฅผ ์๋์ผ๋ก ์ฒญ์ํ๋ค๊ณ ํด์ ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋๋ ๊ฒ์ ์๋๋๋ค. (์๋ฅผ ๋ค์ด ๋ ๊ฐ์ pip wheel
ํธ์ถ์ ๋ณ๋ ฌ๋ก ์คํํ๋ฉด ์ฌ์ ํ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์์) ์ด๋ฌํ ๋ฐฉ์์ผ๋ก(์ ์ด๋ PEP 517 ํ ๋ก ์ค์) ์ฆ๋ถ ๋น๋์ ๋ํ ํธ์ถ ์ฌ์ด์ ์บ์ฑ์ ํ์ฉํ์ฌ ๋ ๋ง์ ์ฑ๋ฅ์ ์ ๊ณตํ ์ ์์์ต๋๋ค. IOW ํ์ฌ ๋์์ ์คํ ์ฌ์ด์ ๋น๋ ์ํฐํฉํธ๋ฅผ ์ฌ์ฌ์ฉํ์ฌ ์ผ๋ถ ํ์ ์งํฉ์ด ์ํ๋ ๊ฒ์
๋๋ค. ๊ฐ์ฅ ์ผ๋ฐ์ ์ธ ๋น๋ ๋ฐฑ์๋๊ฐ ๋งค์ฐ ์๋ชป๋์์ต๋๋ค. ํจํค์ง ์ฌ์ฉ์ ์ ์).
๋ฌผ๋ก ๊ธฐ๋ณธ setuptools
๋ช
๋ น์ ๋ํ ์ถฉ๋ถํ ํ๋๊ทธ๊ฐ ์์ผ๋ฉด ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์์ต๋๋ค( py setup.py egg_info --egg-base /tmp/foo build --build-base /tmp/foo/build-base bdist_wheel --bdist-dir /tmp/foo/bdist
์ ๊ฐ์ ๊ฒ์ด ๊ฐ๋ฅํฉ๋๋ค).
๋ฌธ์ ๋ ์ถ๊ฐ ํ์ผ์ด ์๋๋ผ ํ ๊ณผ ํธํ๋๋ ์์ ABI๊ฐ ๋ณ๊ฒฝ๋์๊ณ .so
๊ฐ ๋ค์ ๋น๋๋์ง ์์๋ค๋ ๊ฒ์
๋๋ค. SCons๊ฐ pymalloc์ผ๋ก ๋น๋๋ Python์ ํ๋์ ๋น๋ ๋๋ ํ ๋ฆฌ๊ฐ ํ์ํ๊ณ Python์ด ๋ค๋ฅธ ๋น๋ ๋๋ ํ ๋ฆฌ( .so
๋งํฌ๋ ์ ์๋ NumPy ๋ฒ์ ํฌํจ)๊ฐ ํ์ํ๋ค๋ ๊ฒ์ ์๋งํผ ๋๋ํ๋ค๋ฉด ์ํฅ์ ๋ฐ์ง ์์ต๋๋ค. ์ด์ ์ ๋น๋๋ ์ํฐํฉํธ๋ฅผ ๋ค๋ฅธ ABI๋ก ์ฌ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ์ํฅ์ ๋ฐ์ต๋๋ค.
enscons๋ฅผ ํ ์คํธํ๋ ค๊ณ ์๋ํ์ง๋ง ์ค๋ฅ ์์ด rsalette๋ฅผ ๋น๋ํ ์ ์์์ต๋๋ค.
scikit-build๋ฅผ ํ
์คํธํ์ฌ ์ฆ๋ถ ๋น๋๋ฅผ ์ฒ๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ํ์ธํ๋ ค๊ณ ์๋ํ๋๋ฐ ๋ฌด์์ ํ๋ ๋ ๋ฒ์งธ ๋น๋์์ ์์ฒด์ ์ผ๋ก ํ ํ๊ณ ๋งค๋ฒ _skbuild
๋๋ ํ ๋ฆฌ๋ฅผ ์๋์ผ๋ก ์ญ์ ํด์ผ ํ์ต๋๋ค. ์ค๋ฅ ์์ด ์คํํฉ๋๋ค.
๋ฉ์๋. ์ ๊ฐ์ค๋ฝ๊ฒ๋ enscons๋ ์ ๋ฐ์ดํธ๋์์ง๋ง rsalette๋ ์ ๋ฐ์ดํธํ์ง ์์์ต๋๋ค.
2020๋ 5์ 6์ผ ์์์ผ ์คํ 4์ 18๋ถ์ Donald Stufft๋ ๋ค์๊ณผ ๊ฐ์ด ์ผ์ต๋๋ค.
enscons๋ฅผ ํ ์คํธํ๋ ค๊ณ ์๋ํ์ง๋ง ์ค๋ฅ ์์ด rsalette๋ฅผ ๋น๋ํ ์ ์์์ต๋๋ค.
scikit-build๋ฅผ ํ ์คํธํ์ฌ ์ฆ๋ถ ๋น๋๋ฅผ ์ฒ๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ํ์ธํ๋ ค๊ณ ์๋ํ๋๋ฐ ๋ฌด์์ ํ๋ ๋ ๋ฒ์งธ ๋น๋์์ ์์ฒด์ ์ผ๋ก ํ ํ๊ณ ๋งค๋ฒ
_skbuild
๋๋ ํ ๋ฆฌ๋ฅผ ์๋์ผ๋ก ์ญ์ ํด์ผ ํ์ต๋๋ค. ์ค๋ฅ ์์ด ์คํํฉ๋๋ค.
โ
๋น์ ์ด ๋๊ธ์ ๋ฌ์๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ ๋ฐ๋ ๊ฒ์ ๋๋ค.
์ด ์ด๋ฉ์ผ์ ์ง์ ๋ต์ฅํ๊ฑฐ๋ GitHub https://github.com/pypa/pip/issues/7555#issuecomment-624867490 ์์ ํ์ธํ๊ฑฐ๋ https://github.com/notifications/unsubscribe-auth/AABSZERIEDAPUIXCPAKBBUDRQHAXRANCNFSM4KCV5MHQ ๊ตฌ๋ ์ ์ทจ์
์ ๊ฐ์ค๋ฝ๊ฒ๋ enscons๋ ์ ๋ฐ์ดํธ๋์์ง๋ง rsalette๋ ์ ๋ฐ์ดํธํ์ง ์์์ต๋๋ค.
์ ๋ฐ์ดํธ๋ enscons๋ฅผ ์ฌ์ฉํ๋ ์ข์ C ext๊ฐ ์์ต๋๊น? rsalette๊ฐ ๋ชฉ๋ก์ ์ฒซ ๋ฒ์งธ์ด๊ณ ๋๋ฒ๊น ํ๊ณ ์ถ์ง ์์๊ธฐ ๋๋ฌธ์ ๋ฐฉ๊ธ rsalette๋ฅผ ์ ํํ์ต๋๋ค. ๋ค๋ฅธ ๊ฒ์ผ๋ก ์๋ํ๊ฒ ๋์ด ๊ธฐ์ฉ๋๋ค.
rsalette
์ ์ ์ผํ ๋ฌธ์ ๋ SConstruct์ Environment์ ROOT_IS_PURELIB
๋ฅผ ์ ๋ฌํด์๋ ์ ๋๋ค๋ ๊ฒ์
๋๋ค. C ํ์ฅ์๊ฐ ์์ต๋๋ค. cryptacular
๊ด์ฐฎ์ ๋ณด์
๋๋ค.
์ด๊ฒ์ผ๋ก, ๋๋ ์ฐ๋ฆฌ๊ฐ ์ด ๋ณ๊ฒฝ ์ฌํญ์ ๋๋๋ ค์ผ ํ๋ค๋ ๋ฐ ๋์ํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
์๋ก์ด ๋ฌธ์ ๊ฐ ์์๋ณด๋ค ํจ์ฌ ํฌ๋ค๊ณ ์๊ฐํฉ๋๋ค. ๋น ๋ฅธ 20.1.1๋ก ๋๋๋ฆฐ ๋ค์ ํธ๋ฆฌ ๋ด ๋ฐ ํธ๋ฆฌ ์ธ ๋น๋์ ๋ฌธ์ ๋ฅผ ๋ชจ๋ ํด๊ฒฐํ๋ ๋ฐฉ๋ฒ์ ๋ํด ๋ ๊ธด ํ ๋ก ์ ํ ์ ์์ต๋๊น?
๋๋ ๋ํ ๋๋๋ฆฌ๊ธฐ์ ํฌํํ๊ณ ์ด์ ๋ํ ํด๊ฒฐ์ฑ ์ผ๋ก https://discuss.python.org/t/proposal-adding-a-persistent-cache-directory-to-pep-517-hooks/2303/15 ๋ฅผ ์ถ๊ตฌํฉ๋๋ค. ๋ฐฑ์๋๊ฐ ์ ์๋ฆฌ์ ๋น๋๋์ง ์๋๋ก ํ์ฉํ๋ฏ๋ก ์ด๋ฌํ ๋ฌธ์ ๊ฐ ๋ ธ์ถ๋์ง ์์ต๋๋ค. ๊ฑฐ๊ธฐ์ ์๋ ์ ์์ ๋์ํ๋ค๋ฉด ํด๋น ์ค๋ ๋์๋ ์ฐธ์ฌํ์ญ์์ค.
์ ์๊ฒ๋ ๊ทธ๋ด์ธํด ๋ณด์ ๋๋ค. ์ธํธ๋ฆฌ(๋๋ sdist์์ ๋น๋) ์ ๊ทผ ๋ฐฉ์์๋ ๋ช ๊ฐ์ง ๋งค์ฐ ์ค์ํ ์ด์ ์ด ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ค์ํ.
์ฌ๊ธฐ์ UI๊ฐ ๋ฌด์์ธ์ง ํ์คํ์ง ์์ต๋๋ค(๊ธฐ๋ณธ์ ์ผ๋ก ์ด๋ค ์ ๊ทผ ๋ฐฉ์์ ์ฌ์ฉํด์ผ ํ๋์? ์ด๋ค ์ข ๋ฅ์ ์ต์ ์ ์ ํํด์ผ ํ๋์?). ํ์ง๋ง ํ์ฌ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋์ ๊ฒฐ์ ์ ๋ด๋ฆฌ๋ ๊ฒ๋ณด๋ค ๊ฒฐ์ ํ๋ ๋ฐ ์๊ฐ์ด ์กฐ๊ธ ๋ ์์๋์ด์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค. .
์์์ด! ๋๋ ์ผ๋ฐ์ ์ธ ํฉ์๊ฐ ๋๋๋ฆฌ๊ณ ์ฌํ๊ฐํ๋ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ์ด์ ๋ํด PR์ ์ ์ถํ๊ฒ ์ต๋๋ค. :)
๊ฑฐ๊ธฐ์ ์๋ ์ ์์ ๋์ํ๋ค๋ฉด ํด๋น ์ค๋ ๋์๋ ์ฐธ์ฌํ์ญ์์ค.
ํด์ฃผ์ธ์ - ์ ๊ฐ ๋๊ธ์ ๋ฌ์์ง๋ง ์๋ฏธ์๋ ์ ์์ ํ๊ธฐ์๋ ์ ๊ฐ ์ถฉ๋ถํ ์์ง ๋ชปํ๊ธฐ ๋๋ฌธ์ ๊ฒฝํ์ด ์์ผ์ ๋ถ๋ค์ ์๊ฒฌ์ด ์์คํ ๊ฒ์ ๋๋ค.
https://github.com/pypa/pip/issues/8165#issuecomment -625401463์ ๋ช ๊ฐ์ ํฐ ํ ์คํธ๋ฅผ ์ญ์ ํ์ต๋๋ค. ์ค๋์ ์ด๋ง ๋ฌผ๋ฌ๊ฐ๊ฒ ์ต๋๋ค... ๋ง์ง๋ง์ ๊ฐ์ธ๋ ธํธ๋ฅผ ์ฐ๋ค๋ณด๋ ์ข ๋ต๋ตํ๋ค์. #5599์์ ๋๋ด๊ณ ๋ถ์ ์ ์ธ ์ฌ์ฉ์ ๋๊ธ์ ์ฝ๋ ๊ฒ์ ํ์คํ ๋์์ด ๋์ง ์์์ต๋๋ค.
์๋ ํ์ธ์ ์ฌ๋ฌ๋ถ, ์ ๋ ์ด๊ฒ์ ๋ํด ์ข ๋ ์๊ฐํ์ต๋๋ค. ์ฌ๊ธฐ์ ์ด โโ๋ฌธ์ ์ ๋ํ ์ ์ ํ์ฌ ๊ด์ ์ด ์์ต๋๋ค.
- ์ ์๋ฆฌ์ sdist๋ฅผ ๋ง๋ค๊ณ ์์ ์์น์ sdist์ ์์ถ์ ํผ ๋ค์ ๊ทธ ์์น์์ ๋น๋ํฉ๋๋ค.
๋๋ ์ฌ์ ํ pip install / pip wheel์ด ๋์ sdists๋ฅผ ์ก์ผ๋ ค๊ณ ์๋ํ๊ณ ์ก์ ์์๋ ์ฌ๋ฐ๋ฅธ ์ฅ์๊ฐ ์๋๋ผ๊ณ ๋ฏฟ์ต๋๋ค. ์ ์ด์ ๋์ sdist๋ฅผ ๋ง๋ค์ง ์๋ ๊ฒ์ด ๋ฐฑ ์๋ ์ฑ ์์ด ์๋์ด์ผ ํฉ๋๊น? ๋ํ sdist๋ฅผ ํตํ ๋ฌด์กฐ๊ฑด ๋น๋๋ ๋น๋๋งํผ ํ๊ดด์ ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
- ์ ์๋ฆฌ์ ๋น๋ํ๋ ค๋ฉด pip ์ต์ ์ ์ถ๊ฐํ์ญ์์ค.
์๋ฃจ์ 4๊ฐ ์ฑ๊ณตํ์ง ๋ชปํ๊ธฐ ๋๋ฌธ์ ๋จ๊ธฐ์ ์ผ๋ก ๊ฐ์ฅ ์ข์ํ๋ ๊ฒ์ ๋๋ค. pip 20.1.1์ ์ถ๊ฐํ๋ ๊ฒ์ด ์๊ธฐ์์กฐ์ ๋๊น?
- ๋ด๋ถ ๋น๋์ ๋ํด "์์ ํ" ๊ฒฝ์ฐ ๋ฐฑ์๋๊ฐ ํ๋ฐํธ์๋์ ํต์ ํ ์ ์๋๋ก ํ๋ ์ผ์ข ์ ๋ฉ์ปค๋์ฆ์ผ๋ก PEP 517์ ์ ๋ฐ์ดํธํฉ๋๋ค.
์ด ํ์ ์ฌ์ฉํ๋ฉด ์ฌ์ ํ ๊นจ์ง๊ณ ๊ณ ์น ์ ์๋ ์นดํผํธ๋ฆฌ๋ก ๋๋์๊ฐ์ผ ํ๋ฏ๋ก ๋๋ ์ด๊ฒ์ ์ ํธํ์ง ์์ต๋๋ค.
- ํญ์ ์ ์๋ฆฌ์ ๋น๋ํ๋๋ก pip๋ฅผ ๋ณ๊ฒฝํฉ๋๋ค.
๋ฐ๋ผ์ ์ด๊ฒ์ ๋๋ฌด ํ๊ดด์ ์ธ ๊ฒ์ผ๋ก ๊ฐ์ฃผ๋์ด 20.1.1์์ ๋๋๋ฆด ๊ฒ์ ๋๋ค.
- ํธ๋ฆฌ ์ธ๋ถ์์ ๋น๋ํ๋ ์ต์ ์ ์ฌ์ฉํ์ฌ ๊ธฐ๋ณธ์ ์ผ๋ก ์ ์๋ฆฌ์ ๋น๋ํ๋๋ก pip๋ฅผ ๋ณ๊ฒฝํฉ๋๋ค.
์ด๊ฒ์ด ์ฅ๊ธฐ์ ์ธ ๋ชฉํ๊ฐ ๋ ์ ์์ผ๋ฉฐ, ์บ์ ๋๋ ํ ๋ฆฌ ๊ฐ๋ ๊ณผ ํธ๋ฆฌ ์ธ๋ถ ํผํฉ์ ๊ตฌ์ถํ๋ ์ต์ ์ด ๋ ์ ์์ต๋๊น?
์ ๋ CLI ์ต์ , ํนํ ์ด์ ๊ฐ์ ์ต์ ์ ์ข์ํ์ง ์์ต๋๋ค. ๋ด ๋ก์ปฌ FS์ ์๋ ๋ ๊ฐ์ ํจํค์ง๋ฅผ ๋์ดํ๊ณ ํ๋๋ ์ ์๋ฆฌ์ ๋น๋ํ๊ณ ๋ค๋ฅธ ํ๋๋ ๋น๋ํด์ผ ํ๋ ๊ฒฝ์ฐ ์ด๋ป๊ฒ ํฉ๋๊น? ๋ ์ค ํ๋๋ฅผ ์ํํ ์ ์๋ ์ต์ ์ ์ ๊ณตํ๋ฉด ๋ ์ค ํ๋๋ก๋ง ๋น๋ํ ์ ์๋ ๊ธฐ์กด ํจํค์ง๊ฐ ๋ ๊ฒ์ ๋๋ค.
๊ทธ๊ฒ์ ๋ํ ํ๋ก์ ํธ๊ฐ ๊ฒฐ์ ์ ๋ด๋ฆด ์ ์์๊ณ ๊ทธ ๊ฒฐ์ ์ ์ต์ข ์ฌ์ฉ์์๊ฒ ๋ฏธ๋ฃจ๊ธฐ๋ก ๊ฒฐ์ ํ๊ธฐ ๋๋ฌธ์ ์์ ํ ์กด์ฌํ๋ ์ผ์ข ์ ์ต์ ๊ณผ ๊ฐ์ ๋์๊ฐ ๋ฉ๋๋ค.
sdist๋ฅผ ํตํ ๋น๋๋ ์ ํํ ๋์ sdist๋ฅผ ์ก๋ ๊ฒ์ด ์๋๋๋ค. ๋๋ถ๋ถ์ ๊ฒฝ์ฐ ํ๋ก์ ํธ๊ฐ ์ค์น๋ฅผ ๋๋ด๊ธฐ ์ ์ ํต๊ณผํ ์ ์๋ "๊ฒฝ๋ก"์ ๊ฐ๋ฅํ ๋ณํ์ ์ค์ด๋ ๊ฒ์ ๋๋ค. ์ด๋ค ์์ผ๋ก๋ ํ๋๊ทธ๋ฅผ ์ถ๊ฐํ๋ฉด ๋ฌธ์ ๊ฐ ๋ ์ ํ๋์ง ์๊ณ ์ ํ๋ฉ๋๋ค.
๋ด ๋ง์ ์ค์น๊ฐ ํต๊ณผํ ์ ์๋ ๋ช ๊ฐ์ง "๊ฒฝ๋ก"๊ฐ ์๋ค๋ ๊ฒ์ ๋๋ค.
๋จ๊ณ์ ์ผ๋ก ์ ๊ฑฐ๋๋ ๋ช ๊ฐ์ง ์ถ๊ฐ ๊ฒฝ๋ก๊ฐ ์์ง๋ง ์ผ๋ฐ์ ์ผ๋ก 3๊ฐ์ ๋๋ค(์ด์์ ์ผ๋ก๋ 3๊ฐ๋ ๋จ๊ณ์ ์ผ๋ก ์ ๊ฑฐ๋จ). ํธ์ง ๊ฐ๋ฅํ ์ค์น๋ ์์ง๋ง ๊ณง ์ฌ๋ผ์ง์ง ์์ ๊ฒ์ ๋๋ค.
sdist ๋๋ ํ ์ด PyPI์ ์ ๋ก๋๋๊ณ ๋์ผํ "๊ฒฝ๋ก"์ ์ผ๋ถ๊ฐ ๋ ๋๊น์ง ์ค์น๋๋ ๊ฒ์ผ๋ก ๊ฐ์ฃผํ ์ ์์ต๋๋ค. ์ผ์ ์ค์งํ๊ณ ๋ค๋ฅธ ์ปดํจํฐ์์ ์๋ฃํ๋ฉด ๋ฉ๋๋ค.
์ด์ ๊ฐ์ ์ฌ๋ฌ "๊ฒฝ๋ก"๊ฐ ์๋ ๋ฌธ์ ๋ ์ต์ข ์ค์น ๊ฒฐ๊ณผ์ ๋ถ์ผ์น๊ฐ ๋ฐ์ํ๋ค๋ ๊ฒ์ ๋๋ค. ํญ์ ๋ฐ์ํ๋ ๊ฒ์ ์๋์ง๋ง ์์ฃผ ๋ฐ์ํ๋ ๊ฒ์ ์ฝ๊ฒ ๊ด์ฐฐํ ์ ์๋ ๊ฒฝ์ฐ์ ๋๋ค. ์ข ์ข ์ด๋ฌํ ๋ถ์ผ์น๋ ํฐ ๋ฌธ์ ๊ฐ ์๋์ง๋ง ๋๋ก๋ ๊ทธ๋ ์ต๋๋ค.
์ฐ๋ฆฌ๊ฐ ์ด์ ๊ฐ์ ์ ์๋ฆฌ ๋น๋๋ฅผ ์ํํ๋ ๊ฒฝ์ฐ ์ฐ๋ฆฌ๋ ๋จ์ผ ๊ฒฝ๋ก๋ก ์ ๋ ๋ฌด๋์ง ์ ์์ ๊ฒ์ด๋ผ๊ณ ํจ๊ณผ์ ์ผ๋ก ๋งํ๊ณ ์์ต๋๋ค. ์ฌ๋๋ค์ ์ค์น ๋ฐฉ๋ฒ์ ๋ฐ๋ผ ๋ค๋ฅธ ๊ฒฐ๊ณผ๋ฅผ ์ป๊ฒ ๋ฉ๋๋ค.
์ถ๊ฐ ์ด์ ์ผ๋ก, ์ด๊ฒ์ ํ๋ณตํ ๊ฒฝ๋ก๊ฐ ํ๋ณตํ๊ฒ ์ ์ง๋๋๋ก ํ๋ ๊ฐ์ ๊ธฐ๋ฅ์ผ๋ก ์์ฉํ ์๋ ์์ต๋๋ค.
๋๋ถ๋ถ @dstufft ์ ๋์ํฉ๋๋ค. ํนํ sdist์์ ๋น๋ ์ ๊ทผ ๋ฐฉ์์ด "sdist๋ฅผ ๊ฒ์ฆํ๋ ค๋ ์๋"๊ฐ ์๋๋ผ "๋ชจ๋ ๊ฒ์ด "์์ค ํธ๋ฆฌ -> sdist -> ํ -> ์ค์น ๊ฒฝ๋ก๋ฅผ ๋ฐ๋ฆ ๋๋ค. (์ผ๋ถ ์ด๊ธฐ ๋จ๊ณ๋ฅผ ๊ฑด๋๋ฐ๋ ๊ฒฝ์ฐ๋ ์์)".
๊ทธ๋ฌ๋ ํ ๊ฐ์ง ์ ์ ์ง์ ํ๊ณ ์ถ์ต๋๋ค.
๋ด ๋ก์ปฌ FS์ ์๋ ๋ ๊ฐ์ ํจํค์ง๋ฅผ ๋์ดํ๊ณ ํ๋๋ ์ ์๋ฆฌ์ ๋น๋ํ๊ณ ๋ค๋ฅธ ํ๋๋ ๋น๋ํด์ผ ํ๋ ๊ฒฝ์ฐ ์ด๋ป๊ฒ ํฉ๋๊น?
์๋ก ๋ค๋ฅธ ์ต์ ์ ์ฌ์ฉํ์ฌ ๋ ๊ฐ์ ๊ฐ๋ณ pip ์คํ์์ ๋ ํจํค์ง๋ฅผ ์คํํ๊ธฐ๋ง ํ๋ฉด ๋ฉ๋๋ค?!? ํ๋๊ฐ ๋ค๋ฅธ ํ๋์ ์ข ์์ฑ์ผ ์ ์๋ค๋ ๊ฒ์ ์๊ณ ์์ผ๋ฉฐ ์ผ๋ฐ์ ์ผ๋ก ๊ทํ์ ์์ ์ ์ ์ง๋์ง๋ง ์ฌ๋๋ค์ด ๋ชจ๋ ์ค์น ์๋๋ฆฌ์ค๊ฐ ๋จ์ผ ์คํ์ผ๋ก ์ถ์๋์ด์ผ ํ๋ค๊ณ ๊ฐ์ ํ๋ ์ผ๋ฐ์ ์ธ ๊ฒฝํฅ์ด ์๋ ๊ฒ ๊ฐ์ต๋๋ค. ํฉ๋ฆฌ์ ์ด๋ผ๊ณ ์๊ฐํจ
(๋ง์ฝ) ๋๋๋ฆด ๋ ํธ๋ฆฌ ๋ด ๋น๋๋ฅผ ๊ตฌํํ ๊ฒฐ๊ณผ ๋ซํ ์๋ #6276๊ณผ ๊ฐ์ ๋ฌธ์ ๋ฅผ ๋ค์ ์ด์ด์ผ ํฉ๋๋ค.
๋ฌธ์ ์ ์ผ๋ถ๋ pip๊ฐ ์ข ์์ฑ์ ํด๊ฒฐํ ๋ ์ด๋ฏธ ์ค์น๋ ํญ๋ชฉ์ ๊ณ ๋ คํ์ง ์๋๋ค๋ ๊ฒ์ ๋๋ค(์ ํด๊ฒฐ ํ๋ก๊ทธ๋จ์ด ์ด๋ฅผ ๋ณ๊ฒฝํ๋์ง ํ์คํ์ง ์์ต๋๊น?). ๋ฐ๋ผ์ ํด๊ฒฐํ๋ ค๋ฉด ๋จ์ผ pip ํธ์ถ ๋ด์ ๋ชจ๋ ๊ฒ์ด ํฌํจ๋์ด ์์ด์ผ ํฉ๋๋ค. ์ข ์์ฑ์ "์ฌ๋ฐ๋ฅด๊ฒ"(ํ์ฌ ๋ฆฌ์กธ๋ฒ๊ฐ ์ฌ๋ฐ๋ฅด๊ฒ ์ํํ๋ ๋ฒ์ ๋ด์์).
์๋ก์ด ๋ฆฌ์กธ๋ฒ๊ฐ ์ด๋ฏธ ์ค์น๋ ๊ฒ์ ๊ณ ๋ คํ๋ค๋ฉด pip install foo bar
์ pip install foo && pip install bar
๋ ๊ฑฐ์ ๊ฐ์ ๊ฒ์ด๊ณ ์ ํ ์ค์ํ์ง ์์ ๊ฒ์
๋๋ค. ๋ ํ๋ก์ ํธ๊ฐ ๋ชจ๋ "์คํธ"์ ์์กดํ์ง๋ง foo๊ฐ < 2์ด๊ณ bar๊ฐ > 1์ด๋ฉด ์๋ชป๋ ์ค์น๊ฐ ๋ฐ์ํฉ๋๋ค.
๊ทธ๊ฒ์ ์ ์ ์ ๋๋ค :)
(์๋ก์ด ๋ฆฌ์กธ๋ฒ ์์ ์ด ๋ณ๊ฒฝ๋๋์ง ํ์คํ์ง ์์ต๋๊น?)
#7744์์ ์ ๋ ฅ์ ํ์ํฉ๋๋ค. :)
- ํญ์ ์ ์๋ฆฌ์ ๋น๋ํ๋๋ก pip๋ฅผ ๋ณ๊ฒฝํฉ๋๋ค.
๋ฐ๋ผ์ ์ด๊ฒ์ ๋๋ฌด ํ๊ดด์ ์ธ ๊ฒ์ผ๋ก ๊ฐ์ฃผ๋์ด 20.1.1์์ ๋๋๋ฆด ๊ฒ์ ๋๋ค.
๋ถ๋ช ํ ๋งํด์, ์ฐ๋ฆฌ๋ "๋๋ฌด ๋นจ๋ฆฌ ์ถ์"ํ๊ณ ์ฐ๋ฆฌ๊ฐ ์ทจํ ์ถ์ ์ ๊ทผ ๋ฐฉ์์ ์ด๊ฒ์ด ๊ฒฐ๊ตญ ๋๋ฌด ํ๊ดด์ ์ธ ์ด์ ์ ์ผ๋ถ์ ๋๋ค.
- ์ ์๋ฆฌ์ ๋น๋ํ๋ ค๋ฉด pip ์ต์ ์ ์ถ๊ฐํ์ญ์์ค.
@dstufft @pfmoore ์ ๋ ๊ทธ๋ฐ ์ข ๋ฅ์ ์ต์ ์ ์ตํธ์ธ ๋ฉ์ปค๋์ฆ์ผ๋ก ๋ณด๊ณ ์์ต๋๋ค. ๋ฐ๋ผ์ ์ฌ์ฉ์๊ฐ ์ด๋ ์์ ์์ ๊ธฐ๋ณธ๊ฐ์ผ๋ก ์ค์ ํ๋ ๊ฒ์ ๋ชฉํ๋ก ์ธํ๋ ์ด์ค ๋น๋๋ก ์ ์ง์ ์ผ๋ก ๋ ์ง๋ฅผ ํ ์ ์์ต๋๋ค. ์ด ์๊ฒฌ์ ์ ์ : https://github.com/pypa/pip/issues/8165#issuecomment -625501216
์ด์ ๋ํด PR์ ์ ์ถํ๊ฒ ์ต๋๋ค. :)
๋๋๋ฆฐ ๋ณ๊ฒฝ ์ฌํญ์ด ํฌํจ๋ 20.1.1์ด ๋ฆด๋ฆฌ์ค๋์์ต๋๋ค.
Fedora์์ Python RPM ํจํค์ง๋ฅผ ๋น๋ํ ๋ ์ฐ๋ฆฌ๋ ๊ณต๋ฃก์ด๋ฉฐ ์ฌ์ ์ํํ๋ ํ์ค ๋ฐฉ๋ฒ์
python setup.py build
์ ๋๋ค. PEP 517์์๋pip wheel
๋์ ์ฌ์ฉํ๋ "์์" ๋ฐฉ๋ฒ์ ์ถ๊ฐํ์ต๋๋ค. ๊ทธ๋ฌ๋ ํ์ฅ ๋ชจ๋์ ๊ฒฝ์ฐ pip๊ฐ ๋น๋์ ์ฌ์ฉํ๋ "์์ค๋ฅผ tmp๋ก ์ด๋ํ๊ณ ๊ฑฐ๊ธฐ์์ ๋น๋" ์ ๊ทผ ๋ฐฉ์์ ๋ฌธ์ ๊ฐ ์์ต๋๋ค.๋น๋ ๊ธฐ๊ณ๋ ์ผ๋ถ ์ปดํ์ผ๋ฌ ํ๋๊ทธ๋ฅผ ์ฃผ์ ํ๋ฏ๋ก ๋น๋ ์ํฐํฉํธ(์ด ๊ฒฝ์ฐ
.so
ํ์ฅ ๋ชจ๋)์ ์์ค์ ๋ํ ๋ฉํ๋ฐ์ดํฐ๊ฐ ํฌํจ๋ฉ๋๋ค. ๋์ค์ ๋น๋ ์ํฐํฉํธ๋ฅผ ํ์ํ๊ณ ์ด ์ ๋ณด๋ฅผ ์ถ์ถํ๊ณ ์์ค๋ฅผ/usr/src/debug
์ ๋ณต์ฌํ์ฌ ํน์*-debugsource
RPM์ ํตํด ์ค์นํ๋ ์ ์คํฌ๋ฆฝํธ๊ฐ ์์ต๋๋ค. mahcinery๋ ๋ชจ๋ ๊ฒ์ด ์์ ํธ๋ฆฌ ๋ด์์ ๊ตฌ์ถ๋๊ธฐ๋ฅผ ๊ธฐ๋ํ๋ฉฐ ์ธ๋ถ์์ ๊ตฌ์ถํ ๋๋ ์ค์ ๋ก ์ ๋๋ก ์๋ํ์ง ์์ต๋๋ค. ๋ค์์ ์ฐ๋ฆฌ ์ธก์์ ๋ฌธ์ ๋ฅผ ์ํํ๊ธฐ ์ํด (ํจ๊ป) ํ ์ ์๋ ์ผ์ ๋๋ค.1. set the `$TMPDIR` environment variable to have it within the place where the RPM script expects it (i.e. `export TMPDIR=%{_builddir}/.tmp` (and create it)) 2. use `pip wheel` with the `--no-clean` option to keep the copied sources in `$TMPDIR` 3. run some shell kung fu to rewrite the "what is my source" information to the correct location: `find %{buildroot} -iname '*.so' -print0 | xargs --no-run-if-empty -0 -n1 /usr/lib/rpm/debugedit -b "%{_builddir}/.tmp/pip-req-build-"* -d "$PWD"` 4. (Optional: clean `$TMPDIR` manually.)
์ด๊ฒ์ pip ํตํฉ, #6505 ๋ฑ์ ๋ณผ ๋ ํจ๊ณผ์ ์ผ๋ก ์์ํ ๊ฒฝ๋ก์ ๋๋ค.
pip๋ฅผ ์ฌ์ฉํ ๋ฐ๋ณต ๋น๋๋ ์ค๋๋ ํจ๊ณผ์ ์ผ๋ก ์์๋์์ต๋๋ค. ์ด๋ C ํ์ฅ ํ์์ ๋ง์ ์์ python ์ฝ๋๊ฐ ์๋ ๊ทธ๋ฃน์ ํฐ ์์ค์ด๋ฏ๋ก setup.py
๋ฅผ ์ฌ์ฉํ์ฌ ๋น๋๋ฅผ ํธ์ถํ์ต๋๋ค.
pip
ํ์ build
๋ช
๋ น์ ์ต์ข
๊ฒฐ๊ณผ build
๊ฐ์ ๋ค๋ฅธ ํ์ ๋ช
๋ น์ ๋ฐ๋ผ ๋ฌด๋๋์ด์ผ ๋ช
๋ น wheel
, install
, ๋ฑ.
์ง๊ธ pip
๋ install
๋ฅผ build
๋ฐ install
pip
ํจ๊ณผ์ ์ผ๋ก ์ฒ๋ฆฌํฉ๋๋ค. ์ด๊ฒ์ ๋ฐ์ด๋๋ฆฌ ์ํฐํฉํธ๋ฅผ ๋น๋ํ๊ณ ์บ์ฑํ๊ณ ์ฝ๊ธฐ๋ณด๋ค ๋ฐ์ด๋๋ฆฌ๋ฅผ ์ค์นํ๋ ์ผ๋ถ ์ฌ๋๋ค์ด ์ํ๋ _์๋_์
๋๋ค. - ์ ์ฉ ๋ง์ดํธ ๋ฑ
๋ ์ ๋ง ์ฌ์ฉํ ์์๋ ๋ฐฉ๋ฒ์ด ์์์ผ๋ฉด ์ข๊ฒ ์ด setup.py
ํ ํ, ๋ฐ์ด๋๋ฆฌ๋ฅผ ๊ตฌ์ถํ๊ธฐ pip install
์์ฑ์ ์์ง์์ด bdist
,ํ์ง๋ง ์ค๋์ ๊ฐ๋ฅํ์ง ์๋ ๊ฒ , pip
๋ฐ distutils
/ setuptools
๋ฐ์ด๋๋ฆฌ ์ํฐํฉํธ๋ฅผ ์ฐพ์ ์์น์ ๋์ํ์ง ์๊ธฐ ๋๋ฌธ์.
setup.py๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐ์ด๋๋ฆฌ๋ฅผ ๋น๋ํ ๋ค์ bdist๋ฅผ ์์ฑํ์ง ์๊ณ pip ์ค์นํ๋ ๋ฐฉ๋ฒ์ด ์์์ผ๋ฉด ์ข๊ฒ ์ง๋ง, pip ๋ฐ distutils/setuptools๊ฐ ๋์ํ์ง ์๊ธฐ ๋๋ฌธ์ ์ค๋๋ ์๋ ๋ถ๊ฐ๋ฅํ ๊ฒ ๊ฐ์ต๋๋ค. ๋ฐ์ด๋๋ฆฌ ์ํฐํฉํธ๋ฅผ ์ฐพ๋ ๊ณณ.
๋๋ ๋ด๊ฐ ๋ฐ๋ฅด๊ณ ์๋์ง ํ์คํ์ง ์์ต๋๋ค. ๋น์ ์ ๋ฐ์ด๋๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ์ํ์ง๋ง ์ด๋ฏธ ์กด์ฌํ๋ ๋ฐ์ด๋๋ฆฌ ๋ฐฐํฌ ํ์์ ์ฌ์ฉํ๊ณ ์ถ์ง ์๋ค๊ณ ๋งํ๊ณ ์์ต๋๋ค. ์ ๊ทธ๋ฐ ๊ฒ๋๊น?
setup.py๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐ์ด๋๋ฆฌ๋ฅผ ๋น๋ํ ๋ค์ bdist๋ฅผ ์์ฑํ์ง ์๊ณ pip ์ค์นํ๋ ๋ฐฉ๋ฒ์ด ์์์ผ๋ฉด ์ข๊ฒ ์ง๋ง, pip ๋ฐ distutils/setuptools๊ฐ ๋์ํ์ง ์๊ธฐ ๋๋ฌธ์ ์ค๋๋ ์๋ ๋ถ๊ฐ๋ฅํ ๊ฒ ๊ฐ์ต๋๋ค. ๋ฐ์ด๋๋ฆฌ ์ํฐํฉํธ๋ฅผ ์ฐพ๋ ๊ณณ.
๋๋ ๋ด๊ฐ ๋ฐ๋ฅด๊ณ ์๋์ง ํ์คํ์ง ์์ต๋๋ค. ๋น์ ์ ๋ฐ์ด๋๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ์ํ์ง๋ง ์ด๋ฏธ ์กด์ฌํ๋ ๋ฐ์ด๋๋ฆฌ ๋ฐฐํฌ ํ์์ ์ฌ์ฉํ๊ณ ์ถ์ง ์๋ค๊ณ ๋งํ๊ณ ์์ต๋๋ค. ์ ๊ทธ๋ฐ ๊ฒ๋๊น?
bdist ํ์์ ๋งค์ฐ ์ ํ์ ์ ๋๋ค. ์ฐ๋ฆฌ ๊ทธ๋ฃน์ tar์ ๊ฐ์ ๋ฉ์ฒญํ ํ์์ ์์กดํ๊ณ ๊ทธ๋๋ก ์์ถ์ ํ์ด์ผ ํฉ๋๋ค(BSD๋ ์ง์๋์ง ์์ผ๋ฉฐ ๋ฐ๋น์์ ์ง์๋์ง ์์ต๋๋ค. ๋ฑ).
๋ด๊ฐ ์ด์ ฏ๋ฐค ๋ฐ๊ฒฌํ ๊ฒ์ ๋ฉ์ฒญํ bdist๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด pip
๋ฅผ ํตํด ์ค์นํ ์ ์๋ค๋ ๊ฒ์
๋๋ค. ๋ฉ์ฒญํ ๋ฐ์ด๋๋ฆฌ์๋ pip
, AFAICT๋ฅผ ํตํด ์ค์นํ๋ ๋ฐ ํ์ํ ๋ฉํ๋ฐ์ดํฐ๊ฐ ๋ถ์กฑํฉ๋๋ค. ์ฌ๊ธฐ์ pip ๋ฐํด๊ฐ ์๋ํ๋ ๊ฒ ๊ฐ์ต๋๋ค.
๊ณ๋๊ณผ zip๋ ์๋ํ์ง๋ง file://
URI๋ง ์ฌ์ฉํ์ฌ ์ค์นํ๋ ๋ฐ ํ์ํ ๋ฉํ๋ฐ์ดํฐ๊ฐ ๋ถ์กฑํฉ๋๋ค.
๋๋ distutils, setuptools๋ฅผ ํตํด make๋ฅผ ์ฌ์ฉํ์ฌ ๋ ํฐ ๋น๋ ์์คํ
์ผ๋ก ๋น๋๋ฅผ ๊ตฌ๋ถ๋ฆฌ๋ ค๊ณ ์ ์ผ์ต๋๋ค. ๊ทธ๋์ ํ์ค bdist
ํธ์ถ์ด ์์ ๊ฒ์
๋๋ค.
https://github.com/pypa/pip/issues/2195#issuecomment -664728481 ์ ๋ --use-feature=in-tree-build
๋ค์ #7882๋ฅผ ๋ค์ ํ๊ฒ ๋์ด ๊ธฐ์ฉ๋๋ค.
๋ง์ธ! ๊ณํ ๊ฐ์ ์๋ฆฌ!
์ด๋ฒ์๋ --build
์ ๋
์คํธ๋ง๋ ์
๋ฐ์ดํธํฉ์๋ค. ;)
#2195(๋๊ธ)์์ ๊ฐ์ ธ์จ --use-feature=in-tree-build ๋ค์์ #7882๋ฅผ ๋ค์ ์ํํ๊ฒ ๋์ด ๋งค์ฐ ๊ธฐ์ฉ๋๋ค.
pyproject.toml
in-tree-build
์ต์
์ ์ค์ ํ๋ ๊ฒ์ด ํฉ๋ฆฌ์ ์ผ ์ ์๋์ง ๊ถ๊ธํฉ๋๋ค. ์ด๊ฒ์ pip๋ฅผ ๋ํํ๊ธฐ ์ํด bash ์คํฌ๋ฆฝํธ๋ makefile์ ๋ง๋ค ํ์ ์์ด #6276์ ํด๊ฒฐํ๋ ๋ฐ ์์ฃผ ์ข์ต๋๋ค. (๊ทธ๊ฒ ํน๋ณํ ํฐ ๋ฌธ์ ๋ ์๋๋๋ค.)
pyproject.toml์ ํธ๋ฆฌ ๋ด ๋น๋ ์ต์ ์ด ์ค์ ๋์ด ์์ต๋๋ค.
@davidhewitt ์ด๊ฒ์ ์ด ๋ฌธ์ ์ ๋ํ ์๋ ์ค๋ช
์์ ๋ค์๊ฐ ์ต์
3์
๋๋ค. ๊ฐ๋ฅํ ํ ์ถ๊ฐ ์ต์
์ ํผํ๋ ๊ฒ์ด ๋ ๋ซ๋ค๋ ํ์ฌ์ ํฉ์๊ฐ ์๋ ๊ฒ์ผ๋ก ์๊ณ ์์ต๋๋ค. ๋ฐ๋ผ์ ์ ํ ๊ธฐ๊ฐ ๋์ --use-feature
๋ฅผ ์ฌ์ฉํ์ฌ ํธ๋ฆฌ ๋ด ๋น๋๋ฅผ ํ์ฑํํ๊ณ ์ด๋ฅผ ๊ธฐ๋ณธ ๋ฐ ์ ์ผํ ๋ฉ์ปค๋์ฆ์ผ๋ก ๋ง๋๋ ์ฅ๊ธฐ์ ์ธ ๋ชฉํ๋ฅผ ์ค์ ํฉ๋๋ค.
BTW, ๋๋ ์ด๊ฒ์ 20.3์ ์ ๋์ ๊ตฌํํ ์ ์์ง๋ง, 20.4์์ ํฌ๋ง์ ์ผ๋ก๋ ์ฌ์ ํ ํ ์ํฅ์ด ์์ต๋๋ค.
@sbidoul ์ด ๊ธฐ๋ฅ์ ์ฌ์ฉํ๋ ๋ฐ ๋์์ด ๋๋ ํจ์น๋ฅผ ์์ฑํ์ต๋๋ค. #9091 ์ฐธ์กฐ.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
https://github.com/pypa/pip/issues/2195#issuecomment -664728481 ์ ๋
--use-feature=in-tree-build
๋ค์ #7882๋ฅผ ๋ค์ ํ๊ฒ ๋์ด ๊ธฐ์ฉ๋๋ค.