ëë ìŽë² 죌ë§ì AWOLìŽì§ë§ ëŽê° ìŽíŽíë í PEP 518곌 pipë¡ êµ¬ííë ê²ì ëí ë Œìê° íìí©ëë€.
í ë¡ ìŽ ìŽëìì ìŒìŽëê³ ìëì§ ì°Ÿì ì ììêž° ë묞ì ìŽ ë¬žì 륌 ìŽììµëë€. ëí pypa-dev/distutils-sigê° ìë í ì¥ìì ìë ê²ìŽ ì¢ìµëê¹?
@xoviat ìŽ #4799ìì ë§í ëŽì©ì ììëŽë €ê³ íë ëì ë¹ë í겜ì ì¬ê· ë¹ëì êŽë šë ëª ê°ì§ 묞ì ê° ìììŽ ë¶ëª íŽì¡ìµëë€(Xë ë¹ëì Yê° íìíê³ Yìë Zê° íìí©ëë€...). ìŽê²ìŽ 구í ë²ê·žìžì§, ë ê¹ì ëììž ë¬žì ìžì§, ë묎 ë§ì 묞ì ììŽ ì°êž°í ì ìë ë¶ìŸí ìœë ìŒìŽì€ìžì§ì ëíŽìë ì¬ì í ë¶ë¶ëª í©ëë€.
ê°ìžì ìŒë¡ ëë ëŽ ê¹ìŽìì ë²ìŽë ì§ì ì ììµëë€. @xoviat ì 구íìŽ íìíì§ íëšíêž° ìí ê²ìžì§, ìëë©Ž #4764륌 ë³í©íê³ ë°ë¡ ì¬ì©í ì ìëë¡ #4647ì ìì íêž°ë§ íë©Ž ëëì§ ìŽíŽí ì ììµëë€. ëí #4647ì ìì íë ê²ìŽ ìŒë§ë ì¬ìŽì§ ëë ëªšëŠ ëë€( @xoviat ë #4647ì ìì íêž° ìíŽ #4799륌 ë³í©íŽìŒ íë€ê³ ë§íë ê² ê°ì§ë§ ì첎 묞ì ê° ììµëë€).
ìŽë² 죌ë§ì ë ìŽì ë Œì륌 ìŽìŽê° ìê°ê³Œ ìëì§ê° ë¶ì¡±íì¬ ìŽ ìì ìì (ì ìŽë ì ì ëìì) ê·žë§ ëê² ìµëë€. ì ìê² íµì¬ì pip 10ì ëíŽ ìì© ê°ë¥í ìì€ì PEP 518 ì§ìì ìíë€ë ê²ì ëë€. ëêµ°ê°ê° ì°ëŠ¬ê° ê±°ì ë€ ìëì§, ìëë©Ž ëª ì£Œ ëšìëì§ì ëí ëëì 죌ìŽì ëŽê° ì¬ëë€ìŽ pip 10ìŽ ì¬ ëê¹ì§ ìíŽê° ë ëê¹ì§ ì€ì§ ìì ê²ìŽëŒê³ íŽê³ ìí€ë ê²ì íŒí ì ììµëë€ ...
ë§€ì° ì ì©í ììœ @pfmooreì ê°ì¬ë늜ëë€.
@ncoghlan @dstufft @xoviat ì¬êž°ì í ë¡ ì ê°ì žë ë ê¹ì? ë¹ê³µê° PRìì íë ê²ì ì ìê² ìŽìíê² ë껎ì§ëë€. ._.
íì€í ê².
@pradyunsg ê·žëŽ ìê°ìŽ ìë€ë 걞 ìëë€. ê·žë¬ë ë¹ì ì ëë³Žë€ PR ì¹ìžì ë°ë ë° ë ì±ê³µì ìŽììµëë€. ë°ëŒì ìíì ë€ë©Ž íì¬ êµ¬í, ìë ë°©ì ë° ì ì¬ì 묞ì ì ëíŽ êž°êºŒìŽ ìëŽíŽ ëëŠ¬ê² ìµëë€. ëë ìŽ ë¬žì ë€ ì€ ìŒë¶(ì ë¶ë ìë)륌 ìŽë»ê² íŽê²°íëì§ ê·žëŠ¬ê³ ìì í ìì ì ëí ëŽ ììŽëìŽë¥Œ ì€ëª í ê²ì ëë€. ëë ê·žê²ìŽ ëë í ê·ž ìŒì ëê° íë ìì§í ìêŽíì§ ìëë€.
ì¬ì€, ë¹ì ì AWOLì ëë€. ê·žëì ììœì ìì±íê² ìµëë€.
pip
ìë ëë¶ë¶ì Python íë¡ì ížìì íí 볌 ì ìë ê²ì²ëŒ ê°ì²Ž ê³ìžµìŽ ììµëë€. ê·žê²ì 몚ë ëª
ë ¹ì ììíì¬ ê°ì²Žì ëí ì 찞조륌 ë§ë€ê³ íì ê°ì²Žì ëí ì 찞조륌 ë§ëëë€. ê·žê²ì ë묎ì ê°ìµëë€.
ê°ì²Žì "ë²ì"륌 ìŒì¢
ì ìëª
ìŒë¡ ì ìíê² ìµëë€. ê°ì²Žê° ì¡Žì¬íë êž°ê°ì
ëë€. íì¬ pip
ì ìë PEP 518ì ë²ìë WheelBuilder
ì
ëë€. PEP 518 í겜ì bdist_wheel
ì ëíŽ ì€ì ëê³ bdist_wheel
ë íŽë¹ í겜 ëŽìì ì€íëê³ í겜ì íŽì²Žë©ëë€.
ê·žê² ëê° ë¬žì ìŒ? 묞ì ë PEP 518 í겜ì ë²ìê° setup.py
ì ëí 몚ë ížì¶ì ë²ìì ê°ê±°ë ì»€ìŒ íë€ë ê²ì
ëë€. ë 구첎ì ìŒë¡ ë§íë©Ž setup.py
ížì¶ êž°ê° ëì ì¡Žì¬íë ê°ì²Žë¥Œ 캡ìííŽìŒ í©ëë€. ê·ž ê°ì²Žë Requirement
ì
ëë€.
첫 ë²ì§ž ëª
ë°±í ê²°ì ì BuildEnvironment
ì ëí ì°žì¡°ê° ììŽìŒ íê³ Requirement
ë 묎ììŽë ì¢ì ì¥ìì
ëë€. ì€ì ë¡ Requirement
ê° ì¡Žì¬íë 겜ì°ìë§ setup.py
ê° ížì¶ëêž° ë묞ì 찞조륌 ëë ê²ìŽ IMHOê° ê°ì¥ ì¢ì ìì¹ì
ëë€.
ë€ì 묞ì ë BuildEnvironment
ì구 ì¬íì ì€ì¹íë ë°©ë²ì
ëë€. ì°ëŠ¬ë pip
ë¡ ì ììí ì ììµëë€. ê·žëŠ¬ê³ ê·žê²ì ìë 구íìê° ëŽëŠ° ê²°ì ì
ëë€. ê·žë¬ë ì¬êž°ìë 묞ì ê° ììµëë€. pip
ë ê° pip
ê° ìì ì ë€ì ížì¶í ì ìêž° ë묞ì ìŒë§ë ë§ì ì ížì¶ì íëì§ ì ì ììµëë€. ì€ì ë¡ pip
ê° ë묎 ë§ì íë¡ìžì€ë¥Œ ìì±íë©Ž ìí ì¢
ìì±ì í¬íšíë ì
ìì ìŒë¡ 구ì±ë íší€ì§ê° ëêµ°ê°ì 컎íší°ì 충ëì ìŒìŒí¬ ì ììµëë€.
ë ë€ë¥ž 묞ì ë ì°ëŠ¬ê° ìŽë€ ì ížì¶ì íŽìŒ íëì§ì
ëë€. ëª
ë ¹ì€ ë§€ê°ë³ì륌 ê°ì žì€ë ê²ìŽ ìì§í ë§íŽì íŽë¹ ížì¶ì íŽìŒ íë PITAìŽêž° ë묞ì ì€ì ë¡ë ìê°ë³Žë€ ê¹ë€ë¡ìµëë€. ë°ëŒì ì¬ì©ìê° ìììê² ì ë¬í ìë 맀ê°ë³ì륌 ì ë¬íë ë° ë¬žì ê° ìì ì ììµëë€. ìë 구íìê° ì¬ì©í ì룚ì
ì finder
ì ì¬ì©íë ê²ê³Œ êŽë šìŽ ìì§ë§ ê·ž 묞ì 륌 ìê³ ìë€ê³ ìê°í©ëë€.
ì¬ì©ìê° ctrl+C륌 ë륌 ë ìŽëŠ°ìŽë¥Œ ì£œìŒ ì ìë ìŒì¢ ì êŽëŠ¬ì íŽëì€ ììŽ ìì ì ììì ì ê±°íë ê²ì ì못ë ê²ìŽ ìëëŒ ì ìì ì ëë€. í¹í ìì±í íë¡ìžì€ì ì륌 몚륎ë 겜ì°ìë ëì± ê·žë ìµëë€. ëë ê°ìžì ìŒë¡ ììŽë€ìŽ íì¬ êµ¬íìì 죜ëì§ ì¬ë¶ë¥Œ 몚륎ì§ë§(ìŽê²ì FUDìŒ ì ìì), ê·žë ì§ ìë€ë©Ž íì¬ êµ¬í IMHOê° ì못ë ê²ì ëë€(ë€ë¥ž 묞ì ì ìž).
íŽë¹ 묞ì ì ëí ëª ê°ì§ ê°ë¥í ì룚ì ì ë€ì곌 ê°ìµëë€.
PEP 518ì ë°ìŒë¡ ëŽë³ŽëŽê³ ì¶ë€ë©Ž ê°ì¥ ì¢ì ë°©ë²ì ìë§ë ìµë 10ê° ì ëì ì êžë§ íì©íë ìŒì¢ ì ì êž íìŒìŒ ê²ì ëë€. ê·žë° ë€ì ëª ë ¹ì€ ìžìì íšê» ì íí ì구 ì¬íì ìììê² ì ë¬í ì ììµëë€.
PEP 517 ìŽíì 구ííê³ ì¶ì ì ì í ì룚ì
ì install
ëª
ë ¹ìì ì§ì ìŽêž°íëë BuildEnvironmentManager
íŽëì€ë¥Œ ê°ë ê²ì
ëë€. BuildEnvironmentManager
ë ê±°êž°ì ìë 몚ë ê°ì²Ž( RequirementPreparer
, WheelBuilder
ë±)ì ëí 찞조륌 ê°ì§ë©° get_build_environment(requirement_set)
ëšìŒ ë©ìë륌 ê°ìµëë€. ê·žë° ë€ì set_build_environment_manager
ì ê°ì $ RequirementPreparer
ë©ìë륌 구ííì¬ ë¹ë í겜ì ì»ì ì ììµëë€. BuildEnvironmentManager
ë ëìŒí í겜(ê°ì¥ ìŒë°ì ìŒë¡ ['setuptools', 'wheel']
)ì ì¬ë¬ ë² ì¬ì©íë ê²ì ê°ì§íê³ ì¬ë¬ ë² íìí ê²œì° ëìŒí í겜ì ì ê³µíì¬ ìì±í íìê° ìëë¡ í ì ììµëë€(ìŽêž°ìë ë§€ì° ìŒë°ì ì
ëë€ . pyproject.toml
ê° ìë íë¡ì íž í¬íš). ìŽìì ìŒë¡ë ìí ì°žì¡°(ì¬ìíì§ ìì)륌 ì ê±°íë €ê³ ìëíë ìŒë¶ OOP ëììžë ìì ê²ì
ëë€.
@xoviat --no-binary :all:
ìž ì
ìì 겜ì°ë ë€ë£šì§ ìì ì ìì§ë§ ìë£ë ë¹ëë¿ë§ ìëëŒ -progress ê², ë¹ë ì¢
ìì± ì£Œêž°ê° ì¢
ë£ëëë¡ íë ê²ìŒë¡ 충ë¶í©ëê¹? ìŽê²ì 첫 ë²ì§ž ì ì(ëì pip ížì¶ ìì ëí íë¡ìžì€ ê° ì í)ì ë³íìŽì§ë§ ë€ì곌 ê°ìŽ ë€ì ìì±ë©ëë€.
--binary <name>
ê° íìíšì ëíëŽë ì€ë¥ë¡ 구ì í©ëë€.pip
ë setuptools
ì wheel
ìŽ ëªšë íìí Ʞ볞 ë
ŒëŠ¬ìì setuptools
& wheel
륌 ì ìžíë @pfmoore ì ìì 구ííŽìŒ í©ëë€. wheel
륌 ë¹ë ì¢
ìì±ìŒë¡ ì¬ì©íì§ ììŒë©Ž ììì ë¹ë ì¢
ìì± ì£Œì
ìŽ ë³žì§ì ìŒë¡ ìí ì¢
ìì± ê°ì§ ë
ŒëŠ¬ë¥Œ ížëŠ¬ê±°í©ëë€.
ëì€í¬ë¥Œ ì¬ì©íì¬ OOP ì€ê³ 묞ì 륌 íì íì§ ììë ëë ê²ì ëì ìê°ìŽ ìëëë€. ìŽë PEP 518ì ìì í ì¬ë°ë¥Žê² 구ííë ê²ê³Œ 묎ìžê°ë¥Œ íšê» íŽí¹íë ê² ì¬ìŽì ì€ê° ìµì 곌 ê°ìµëë€.
ëí ìŽì 첎ì ìì€ ë구륌 ì¬ì©íì¬ ìë¡ ë€ë¥ž Python ìì€ ë¹ë륌 ìë¡ ê²©ëŠ¬í ì ììŒë¯ë¡ 컚í ìŽëíë í겜 ë° chrootì ìííê² ìíž ìì©í ì ììŒë¯ë¡ pipë ì첎 íì íë¡ìžì€ë¥Œ 볎ì¥íë ë°©ë²ì íì íë©Ž ë©ëë€. ìë¡ íë ¥í©ëë€.
@xoviat ìì ììœì ê°ì¬ë늜ëë€. ëŽê° ë§íë¯ìŽ, ëë ìŽ ë¶ìŒì ìœëì ëí ëì ìŽíŽì íê³ì ëë¬íê³ , ë¹ì ì ì€ëª ì ëìê² ìì²ë ëììŽ ëììµëë€.
ëë ì€ì ë¡ #4144ì ìœë륌 볞 ì ìŽ ììë€. ë°©êž íëë° ë°°ì¡ëë ê²ì ì ë§ ìíì§ ììµëë€.
PEP 518ì ìì í ì¬ë°ë¥Žê² 구ííê³ ë¬Žìžê°ë¥Œ íšê» íŽí¹íë ê²ì ëë€.
ìì§í ì¬êž°ê¹ì§ ìš ê² ê°ìì. PEP 518ì ìì íê³ ì ì íê² êµ¬ííë ê²ì ê·žë ê² íë©Ž pip 10ì (ê³µì í) ë¹ížë¡ ì§ì°ìí¬ ì ìë ìì ì ëë€.
ì¬êž°ìì ìì í ì€ê° ì§ì ì ë¹ë ì¢ ìì±ì ë°íŽë¡ ì¬ì©í ì ìëë¡ ì구íë ê²ì ëë€. ê·žë ê² íë©Ž ë¹ë ì¢ ìì±(ë° ëªšë ì¢ ìì±)ìŽ ìŽ íë¡ìžì€ë¥Œ íµíŽ ë¹ëë íìê° ìêž° ë묞ì ì¬ê· 묞ì 륌 íŒí ì ììµëë€.
ìŽë»ê² ë€ëŠ¬ëì?
ê·žê²ì ì íì ìŽì§ë§ ì íë 첫 ë²ì§ž 구íìŽ ì¡°ì¬íì§ ììŒë©Ž ë°ì ììŒ ì ìë 첫 ë²ì§ž 구íë³Žë€ ë«ë€ê³ ìê°í©ëë€.
PEP 518ì ìì íê³ ì ì íê² êµ¬ííë ê²ì ê·žë ê² íë©Ž pip 10ì (ê³µì í) ë¹ížë¡ ì§ì°ìí¬ ì ìë ìì ì ëë€.
íìžíŽì£Œì ì ê°ì¬í©ëë€. ê·žê² ì ëë €ììŽììµëë€.
ê·žë¬ë ì ìŽë ë¶ë¶ì ìž PEP 518ìŽ ìŽë¯ž ë§ì€í°ì ìë€ê³ ìê° íêž° ë묞ì ì§êžì íŒëì€ëœìµëë€. í¹í, ëŽê° ìŽíŽí ëë¡ #4647ì ë§ì€í°ì PEP 518 ì§ìì ìë ë²ê·žë¥Œ 볎ì¬ì€ëë€.
ê·žëì ì°ëŠ¬ë ëê°ë¥Œ íŽìŒ íê³ ìµì ì ë€ì곌 ê°ìµëë€.
ë¹ì ìŽ ë§íë¯ìŽ (3)ì pip 10 ìŽì ì ꞎ ì§ì°ì ì믞íë©° ì°ëŠ¬ë ì ë§ë¡ 늎늬ì€ëììŒë©Ž íë ë€ë¥ž ìì ì¬íìŽ ììµëë€(ì ëìœë ìì ì ì°ëŠ¬ê° ì êž°ì ìŒë¡ 묞ì 륌 íŽê²°íë ê²ì ëë€). ê·žëì ëë ê·žê²ì êŽì¬ìŽ ììµëë€. ë¹ì ì (1)ì ìžêžíì§ ììê³ , ê·žê²ìŽ ì°ëŠ¬ê° PEP 518 ì§ììŽ ìë€ê³ ìê°íêž° ë묞ìžì§ ìëë©Ž ë¹ì ìŽ ê·žê²ì ì² ííë ê²ìŽ ìµì ìŽ ìëëŒê³ ìê°íêž° ë묞ìžì§ íì€íì§ ììµëë€. ê°ìžì ìŒë¡ ëë ê·ž ììŽëìŽê° ë§ìì ë€ì§ ììµëë€. ê·žê²ì íì§ì ìž ëšê³ìŽë©°, ì¬ë°ë¥Žê² 구ííêž° ìŽë €ìŽ ê²œì° PEP ì첎ì ëíŽ ìë¹í ë¶ì ì ìž ë©ìì§ë¥Œ 볎ë ëë€. ê·žë¬ë ëë ì°ëŠ¬ê° ê·žê²ì ê±°ë¶íë ê²ì ëíŽ ë¶ëª í íŽìŒ íë€ê³ ìê°í©ëë€.
í ì ë¹ë ì¢ ìì±ìŒë¡ë§ ì§ìíë PEP 518 ë²ì ì ì¶ìíë€ë (2)ì ëí ê·íì ì ì(í ìž ë¹ë ì¢ ìì±ì ì¬ì©íë ë°ëªšìŽë¯ë¡ #4647ì ìì íŽìŒ íš)ìŽ í©ëŠ¬ì ìŒë¡ 볎ì ëë€. , ì°ëŠ¬ê° 구ííë ê²ìŽ ì€ì©ì ìŽëŒë ì믞ìì. ëì 죌ë ì 볎ë ê·ž ì íìŽ PEP 518ì ì¬ì©íë €ë ì¬ëë€ìê² ìŒë§ë 묞ì ê° ë ê²ìžì§ ì í 몚륞ë€ë ê²ì ëë€.
ê·žëì ì ë ì°ëŠ¬ê° 묎ìì íë ë§í ê² ê°ì§ë§ ë¹ë ì¢ ìì±ìŒë¡ ë°íŽë§ ë¶ë¶ì ìŒë¡ ì§ìíë ê²ìŽ ëì ì í ì€ìì ê°ì¥ ì¢ì ì íìŽëŒê³ ìê°í©ëë€.
PEP ìì±ì(https://github.com/pypa/pip/pull/4799#issuecomment-338331267 ë° https://github.com/pypa/pip/pull/4799#issuecomment-338332575ìì ëŽ ì§ë¬žì ëí ëµë³) https://github.com/pypa/pip/pull/4799#issuecomment-338325354) ê·žë¬ë ìì í PEP ì§ìì ìíŽìë ë¹ë ì¢ ìì±ì 구ì¶íŽìŒ íë¯ë¡ ììë°©ížìŒ ë¿ìŽëŒë ì ì ë§€ì° íì€í©ëë€.
ê·žë¬ë ìŽê²ì 구ííë ê²ì ëŽê° ìëë¯ë¡ ëê° ìííëê°ì íëšì ë°ëŒê°ê² ëìŽ êž°ì©ëë€. ëŽê° í í ê°ì§ë #4803ì ë§ë€ê³ ìŽë¥Œ ëŠŽëŠ¬ì€ ëžë¡ì»€ë¡ íìíë ê²ì ëë€. íìí ê²œì° ì¬ììì ë²ìŽëë ë°©ë²ì 묞ìííŽìŒ íë€ë ì ì ìêž°ììŒì€ëë€.
(ê·žëŠ¬ê³ ìŽ ë¬žì ì ëíŽìë 죌ì 륌 ë²ìŽë¬ì§ë§ PEP 517 구íì ììí ë ê°ì ì€ì륌 íì§ ìëë¡ ì¡°ì¬íëŒê³ ì ìí ì ììµëê¹? ìœë©ì ë묎 ê¹ìŽ ë€ìŽê°êž° ì ì 구íì 몚ë ì믞륌 ìŽíŽíëì§ íìží©ìë€ - ëŽ ë³žë¥ PEP 517ì PEP 518ë³Žë€ íšì¬ ë ë³µì¡í ì€ê³ 묞ì ê° ë ê²ì ëë€...)
ì ë "ìì€ìì 몚ë ê²ì ë¹ë" êŽì ìì ë°°í¬íì ê°ì¥ ìµìíë©° "ë¹ëë£šíž ë¶ížì€ížë©" íë¡ìžì€ë¥Œ ìŒë° íší€ì§ ë¹ë íë¡ìžì€ì íì€í ë¶ëŠ¬í©ëë€. ìì€ìì ìì ìë ë¶ížì€ížë©ì ìŽë µ ìµëë€. ê²°êµ C 컎íìŒë¬ë¥Œ ë¶ížì€ížë©íë ê²ê³Œ ê°ì ìì ì ìííŽìŒ íêž° ë묞ì ëë€.
ë°ëŒì pipì ê²œì° ë¹ë ì¢ ìì±ì íì í íìŒìì ì€ì¹í ì ìë€ê³ ë§íë ê²ìŽ í©ëŠ¬ì ìŽëŒê³ ìê°í©ëë€. 10.x ìŽíì ëì í ì ìë ê°ì ì¬íì ìŒë° í ìºìì 구ë³ëë ë¹ë ìºì륌 ì¬ì©íì¬ ìºì ì¬ì©ìê° PyPIìì ë€ìŽë¡ëíë ê²ìŽ ìëëŒ ì ìŽë í겜ìì ë¹ëë 몚ë í ì íìží ì ìëë¡ íë ê²ì ëë€. ëë ë€ë¥ž ìžë±ì€ ìë².
ê°ìžì ìŒë¡ ëë ê·ž ììŽëìŽê° ë§ìì ë€ì§ ììµëë€. ê·žê²ì íì§ì ìž ëšê³ìŽë©°, ì¬ë°ë¥Žê² 구ííêž° ìŽë €ìŽ ê²œì° PEP ì첎ì ëíŽ ìë¹í ë¶ì ì ìž ë©ìì§ë¥Œ 볎ë ëë€.
ëë ê·žê²ì ë°ëì ëìíë ê²ì ìëë€. pipì ëíŽ ì¬ë°ë¥Žê² 구ííêž°ê° ìŽë µìµëë€. ê·žë¬ë PEPì ëª ìë ë°ì ê°ìŽ pipë ì¬ëë€ìŽ ì¬ì©í ì ìŒí íë¡ íž ìë ì€ íëì ëë€. ì ë ìžìŽ 구íìë¡ì ì°ëŠ¬ì ìŒìŽëŒê³ ìê°íê³ , pipë ì€ì ë¡ ì¬ëë€ìŽ íìŽì¬ íë¡ì ížë¥Œ íší€ì§íë ë° ì¬ì©íë ìžìŽë¡, ìŽë¬í 몚ë ìŽë €ìŽ 묞ì ì ëíŽ ìê°í íì ììŽ ë¹ë ìì€í ì ê°ë¥í í ê°ëšíê² ìì±í ì ìëë¡ í©ëë€. ê·žë€ìê²ë ì°ëŠ¬ê° ìŽì¬í ìŒíêž° ë묞ì ìííê² ìëíŽìŒ í©ëë€.
ì¬êž°ìì ìì í ì€ê° ì§ì ì ë¹ë ì¢ ìì±ì ë°íŽë¡ ì¬ì©í ì ìëë¡ ì구íë ê²ì ëë€.
ì€ì ë¡ ìŽê²ìŽ #4799ê° íë ìŒì ëë€. ìíë ê²œì° íŽë¹ ë¶êž°ë¥Œ ë³µìí ë€ì ë¶êž°íì¬ PRë¡ ì ì¶í ì ììµëë€.
@xoviat ìŽ ììì ì§ì íë¯ìŽ (2)ì 구í ìž¡ë©Žìì ë ê°ì§ê° ì¬ì í ì¡Žì¬í©ëë€.
íì íë¡ìžì€ë¥Œ ë§ëë ë°©ë² íì
íêž°(ìžì ìž)
í ì ììŽìŒ íë€ê³ ìê°í©ëë€.
ì€ì¹í íší€ì§ ë²ì .
ìŽê²ì íì¬ ëŠ¬ì¡žë² ìœëê° ì¬ì í pip._internal.operations.prepare
ì ìœëì ìœí ìë€ë ì¬ì€ì ê°ìí ë ì íí ìŽë»ê² ìŒìŽë ì§ íì í ì ìì§ë§ ëìŒí ë¶ëªš íë¡ìžì€ìì ìíëìŽìŒ í©ëë€. ìŽë² 죌ì í ë² ìŽíŽë³Žê² ìµëë€.
ëê° ìŽë° ìŒì í ìê°ìŽ ììì§ ëªšë¥Žê² ìµëë€.
ì¬ë°ë¥Žê² 구ííêž° ìŽë €ìŽ ê²œì° PEP ì첎ì ëí ë§€ì° ë¶ì ì ìž ë©ìì§ë¥Œ 볎ë ëë€.
ìë§ë ì¬ë°ë¥Žê² 구ííë ê²ì ìŽë µì§ ìì ê²ì ëë€. ê·žê²ì ëšì§ pipì ìœëë² ìŽì€ê° ì€ëë 곌 ê°ì ë°©ììŒë¡ pipìì 구ííë ê²ìŽ ì¬ìíì§ ìë€ë ê²ì ëë€. ìŽìí ì¥ììì ìŒìŽëë ìŒë€ìŽ ìê³ ê·žê²ìŽ ì 늬ëë€ë©Ž ìë¹í ì¬ìí ê²ìŽëŒê³ ìê°í©ëë€.
ë¹ì ì (1)ì ìžêžíì§ ììê³ , ê·žê²ìŽ ì°ëŠ¬ê° PEP 518 ì§ììŽ ìë€ê³ ìê°íêž° ë묞ìžì§ ìëë©Ž ë¹ì ìŽ ê·žê²ì ì² ííë ê²ìŽ ìµì ìŽ ìëëŒê³ ìê°íêž° ë묞ìžì§ íì€íì§ ììµëë€.
ëë 묌ë¬ëë ê²ìŽ ì íì¬íìŽ ìëëŒê³ ìê°íë€.
ì§êž ìê°íŽë³Žë PEP 518ì pip 10ìŒë¡ ë°°ì¡íë ê²ìŽ ìŒë§ë ì€ìíê°ì? ë€ì ë©ìŽì 늎늬ì€ë¡ ì°êž°í ì ìë€ë©Ž (ìŽ ìí©ìì ìœê² ë²ìŽë ì ìë ë°©ë²ìŽ ìë) ê°ëšíê³ 517 + 518 몚ë íëì í° ëŠŽëŠ¬ì€ì í¬íšë ì ìë€ê³ ìê°í©ëë€. ìŽê²ì ëŽê° ê° êžžìŽ ìëëŒê³ ë§íë ì¬ëìŽ ìì ì ëë¡ ì¶©ë¶í 깚ëíë€ê³ ââë껎ì§ëë€.
@dstufft @xavfernandez ìê°?
@ncoghlan ì ë¹ë ìºìì ëí ììŽëìŽë ëìê² ì¢ì ìê°ì²ëŒ ë€ëŠœëë€. ë¹ë¡ ëŽê° 몚ë ì믞륌 ìŽíŽíê³ ìëì§ íì í ìë ìì§ë§.
ìíë ê²œì° íŽë¹ ë¶êž°ë¥Œ ë³µìí ë€ì ë¶êž°íì¬ PRë¡ ì ì¶í ì ììµëë€.
ëë ìë§ë ìê°ìŽ ìì ê²ìŽê³ ëŽê° íë€ íŽë êž°ì¡Ž 컀ë°ì ì¬ì¬ì©íì§ ìì ê²ì ëë€. ê·žë¬ë íŽë¹ ë¶êž°ë¥Œ ë³µìíë ê²ì 묞ì ê° ëì§ ììµëë€. :)
ëì 죌ë ì 볎ë ê·ž ì íìŽ PEP 518ì ì¬ì©íë €ë ì¬ëë€ìê² ìŒë§ë 묞ì ê° ë ê²ìžì§ ì í 몚륞ë€ë ê²ì ëë€.
ì°ëŠ¬ë ë¹ì ìŽ ìë§ ê·žê²ì ëªšë¥Žê³ ììë€ë ì ì ì ìžíê³ ë ìŽ ì íí í ë¡ ì íìµëë€. ìŽ ìí©ì X ìí©ì ëë€. ë¹ë íê²œìŽ ì€ì ëêž° ì ì egg_info륌 ížì¶íë ê²ì ìí© Y(#4799)ì ëë€.
ê·žë¬ë ìŽê²ì 구ííë ê²ì ëŽê° ìëë¯ë¡ ëê° ìííëê°ì íëšì ë°ëŒê°ê² ëìŽ êž°ì©ëë€.
ê·žë ë€ë©Ž #4799ê° ë€ì í ìŽëž ìì ìë€ë ë»ìžê°ì? 몚ë í ì€ížë¥Œ íµê³Œíê³ ìíë ìì ì ìííë í?
ìì, ê·ž Xì Yê° ë€ì ë륌 ꎎë¡íêž° ìíŽ ëììë€ :ìí¬: ì, ëë ë ê°ì§ 겜ì°ì ìëì ê°ë¥ì±ì ëíŽ ëëìŽ ìë€ë ë§ì íê³ ììµëë€. ë°íŽê° ìë ë¹ë ì구 ì¬íìŽ ë§€ì° ë묌Ʞ ë묞ì íŽë¹ ì¬ë¡ë¥Œ 묎ìíŽë ëë€ë ë§ìì ìŽíŽí©ëë€. Ʞ볞ì ìŒë¡ ì°ëŠ¬ ì¬ìŽì "êŽì°®ë€"ë í íì "ëªšë¥Žê² ë€"ë í íê° ìììµëë€. ëë ìŽ ìµì ì ë§ìŒë €ë ê²ìŽ ìëëŒ ëšì§ ëŽ ì§êŽì íê³ê° ìŽëìžì§ ë§íë ê²ë¿ì ëë€.
@xoviat ëª ê°ì§ ì§ë¬žìŽ ììµëë€. ìë¡ìŽ PRì íêž° ì ì ëµë³ì íŽì£Œìë©Ž ì ë§ ì¢ì ê² ê°ìµëë€. :)
ëë ë§ì 곌í íë¡ì ížì íšê» ìŒíêž° ë묞ì ížê²¬ìŽ ìì ì ììµëë€. ê·žë¬ë í ë¹ë ì¢ ìì±ìŽ ìë íë¡ì íž ëª©ë¡ìì ë컥거늎 ì ìê³ ìì€ ì¢ ìì±ìŽ ìë í íë¡ì ížë¥Œ ì§ì ìŒë¡ ìê°í ì ììµëë€. ëŽê° íë žì ìë ììµëë€.
@rgommers ë€ì pipì ìë ê²œì° í ë¡ ì¬ì©í ì ìë ë¹ë ì¢ ìì±ë§ ì§ìíë PEP 518ì ì¬ì©íìê² ìµëê¹?
ìŽë€ íší€ì§ê° ì€ì¹ë ì§ ìŽë»ê² ê²°ì íìê² ìµëê¹?
íì íë¡ìžì€ë ì§ì ë ëë¡ ì íí ì구 ì¬í 목ë¡ì ê°ì žìµëë€. ê·žë° ììŒë¡ 늬졞ë²ë¥Œ íµê³Œí©ëë€.
ë°ìŽë늬 ì ì© ë¹ë ì¢ ìì±ìŒë¡ ì ííìê² ìµëê¹?
ë€, ì¬ì€ ìŽê²ìŽ í ì€ížê° ì€íší ìŽì ì ëë€. í ì€ížì ë¹ë ì¢ ìì±ì í ìŽ ìëëë€.
ì§êž ìê°íŽë³Žë PEP 518ì pip 10ìŒë¡ ë°°ì¡íë ê²ìŽ ìŒë§ë ì€ìíê°ì? ë€ì ë©ìŽì 늎늬ì€ë¡ ì°êž°í ì ìë€ë©Ž (ìŽ ìí©ìì ìœê² ë²ìŽë ì ìë ë°©ë²ìŽ ìë) ê°ëšíê³ 517 + 518 몚ë íëì í° ëŠŽëŠ¬ì€ì í¬íšë ì ìë€ê³ ìê°í©ëë€. ìŽê²ì ëŽê° ê° êžžìŽ ìëëŒê³ ë§íë ì¬ëìŽ ìì ì ëë¡ ì¶©ë¶í 깚ëíë€ê³ ââë껎ì§ëë€.
pip 11ì ëíŽ PEP 517 ë° 518ì ìíí ìê°ìŽ ìë ì¬ëì ì»ì ì ìëì§ ì¬ë¶ì ëí ëëì ìŽë»ìµëê¹? ëë ëêŽì ìŽì§ ìë€. ì ìê°ìë ë ë€ í° ìì ë©ìŽëŠ¬ìž ê² ê°ìŒë©° íŽê²° íë¡ê·žëš ìì ë ì§í ì€ì ëë€. ëë 10íì íì ìŽììŒë¡ ì€ë ì ì§íë ê²ì ì°¬ì±íì§ ìì§ë§ 볞ì§ì ìŒë¡ ë¶ìì ìž ëŠŽëŠ¬ì€ ì늬ìŠë¥Œ ì¶ìíë ëì 몚ë 죌ì êž°ë¥ ê³íìŽ íë¥íë ê² ìì ë¶íží©ëë€.
ë€ì ë§íŽì "pip 10 늎늬ì€ë¥Œ ìíŽ ê°ì"ë ë§ì PEP 518 ìì ì ëí íëì ââë¶íì ìŽë°íìµëë€. pip 10ìì ìŽë¥Œ ì ê±°íë©Ž ëŠŽëŠ¬ì€ ì€ë¹ì ì§ì€í ê²ìŽë©° PEP 518ìŽ ë€ì ì¶ì§ë ¥ì ìì ê°ë¥ì±ìŽ ìë€ê³ ìê°í©ëë€. ë€ì íëì ììíë €ë©Ž 묎ìì íŽìŒ í ê¹ì? @xoviat ë 구í ìì ì íê³ ìì§ë§ ëëšžì§ ì¬ëë€ìŽ ì§êžê¹ì§ ê·žê° ê²ªê³ ìë 묞ì 륌 ìŽíŽíëë¡ íë ë° ë¬žì ê° ìììµëë€. ë€ìë íŒëë°± ììŽ ìŒíê² íê³ ì¶ì§ ììµëë€.
ì°ëŠ¬ê° í ì ìë ìŒì ì°ëŠ¬ê° ì€ë¹í ìŠë¶ ìì ìŒë¡ "pip 9.1"ì ì¶ìíê³ íìŽíëŒìžì ìë 3ê°ì§ í° í°ìŒ êž°ë¥(ìµìí íë)ì 구íì ìíŽ ë²ì ë²íž "pip 10"ì ììœíë ê²ì ëë€. íì§ë§ ê·žë ê² íë©Ž 2018ë 1ë¶êž°ì pip 10 늎늬ì€ë¥Œ ìœìíë €ê³ í©ëë€. [1] ì ê·Œ ë°©ììŒë¡ êŽì°®ìµëë€. ê·žë¬ë íì¬ ë§ì€í°ìì ë¶ë¶ì ìŒë¡ ì§ìì ì² ííë ê²ê³Œ êŽë šíì¬ ë¬ŽììŽ êŽë šë ì§ ìë ì¬ëìŽ ììµëê¹? ëë ì°ëŠ¬ê° ê°ì§ê³ ìë ê²ê³Œ ê·ž íê³ê° 묎ììžì§ 묞ìíí ë(ì¬ëë€ìŽ ìì í ê²ìŒë¡ ê°ì íì¬ ê·žê²ì ì¬ì©íë €ê³ íì§ ìëë¡, ë²ê·žë¥Œ ìŒìŒí€ê³ ì°ëŠ¬ê° ìëµíŽìŒ íë 묞ì 륌 ì êž°íŽìŒ í©ëë€. "ìŽ êž°ë¥ì ìì§ ìë£ëì§ ìììµëë€. ì£ì¡í©ëë€. 10")? ì°ëŠ¬ë ëšì§ íëì í° ìì ë©ìŽëŠ¬ë¥Œ ë€ë¥ž ìì ìŒë¡ êµííê³ ììµëê¹?
[1] ìììŽ ê·¹í ì íë ìììŒë¡ ê°ë¥í 몚ë ìŒì ì ë í ì ìë ë²ì ëŽìì.
ëë ë§ì 곌í íë¡ì ížì íšê» ìŒíêž° ë묞ì ížê²¬ìŽ ìì ì ììµëë€.
ê°ì¬í©ëë€. ëëë¡ ì¬ëë€ì 배겜ì ìêž°ê° ìŽë µìµëë€. 곌í íë¡ì ížì ëíŽ ì ìê³ ê³ìë€ë©Ž ì ê±±ì ì ë§ìŽ ëìŽë늎 ì ìì ê²ì ëë€.
ì°ëŠ¬ê° í ì ìë ìŒì ì°ëŠ¬ê° ì€ë¹í ìŠë¶ ìì ìŒë¡ "pip 9.1"ì ì¶ìíê³ íìŽíëŒìžì ìë 3ê°ì§ í° í°ìŒ êž°ë¥(ìµìí íë)ì 구íì ìíŽ ë²ì ë²íž "pip 10"ì ììœíë ê²ì ëë€.
ëë ìŽê²ì ì ë§ë¡ ì¢ìíë€. í 10.0.0 ëì í 9.1.0ì +1
2018ë 1ë¶êž°ì pip 10 늎늬ì€ë¥Œ ìœìíë €ê³ í©ëë€. [1] ì ê·Œ ë°©ììŒë¡ êŽì°®ìµëë€.
ëë ë§€ì° í¥ë¯žë¡ìŽ ììŽëìŽë¥Œ ê°ì§ê³ ìììµëë€. 2018ë 10ì 12ìŒì pipê° 10ìŽìŽ ëììµëë€. ê·žëê° pip 10.0.0 늎늬ì€ë¥Œ íêž°ì ì벜í ë ì§ê° ë ê²ì ëë€. ìì í ë€ë¥ž íìëŒìžì ëë€. ëë ì°ëŠ¬ê° ê·ž ëê¹ì§ í° ê³ ë êž°ë¥ì ì°êž°íŽìŒ ââíë€ê³ ë§íë ê²ì ìëì§ë§ ëŽ ìŒë¶ë ìŽ ë²ì ë²ížì ëìŽë ìŒì¹íꞰ륌 ì ë§ë¡ ìí©ëë€.
ëë PEP 518ìŽ ë€ì ì¶ì§ë ¥ì ìì ê°ë¥ì±ìŽ ìë€ê³ ìê°í©ëë€.
ëì§ ìëë¡ ìµì ì ë€íê² ìµëë€. @xoviat ë êž°êºŒìŽ ê·žë ê² íŽì£Œêžž ë°ëëë€. :)
íì¬ ë§ì€í°ì ìë ë¶ë¶ ì§ìì ì² ííë ë° ë¬ŽììŽ êŽë šë ì§ ìë ì¬ëìŽ ììµëê¹?
ëë ëŽìŒ ìŽê²ì ìŽíŽë³Žë ê²ì ì 겜ì°ì§ ìì ê²ìŽë€. @dstufft ê° #4144ìì ê²í ë ì¬ëìŽìêž° ë묞ì ìŽì ëí ê·žì ìê²¬ìŽ ê°ì¹ ìë€ê³ ìê°í©ëë€.
ì°žê³ - @dstufft ë° @xavfernandez ì ëì ììŽ ìŒì ì² ííë ê²ë§íŒ 곌ê°í ìŒì íê³ ì¶ì§ ììµëë€. ë°ëŒì ê·žë€ìŽ ë§íë ëŽì©ë ìŽíŽë³Žê² ìµëë€.
@dstufft ë í룚 ì€ ìê°ìŽ 충ë¶íì§ ììµëë€. ê·žë ëí ì°œê³ ê° ë¬Žëì§ì§ ìëë¡ íŽìŒ í©ëë€.
ê·žë€ìŽ ë¬Žìš ë§ì íëì§ë ëŽ ìë€.
ì, ë¶íí©ëë€. :)
UX êŽì ìì: "ì 뢰íë ì 뢰" 공격ì í¬êŽì ìŒë¡ ëìíë ê²ì ì ë§ ê³ íµì€ëœê³ [1] "ëë ìì€ìì 몚ë ê²ì 컎íìŒí©ëë€"ëŒê³ ë§íë ë§ì ì¬ëë€ìŽ ì€ì ë¡ ê·žë ê² íì§ ìëë€ë ê²ì ìê² ë ê²ì ëë€. ë€ë¥ž ì¬ëìŽ ì ê³µí ë°ìŽë늬(ì: ë°íì í겜 ë° ìŽì 첎ì ê³µêžìì ë¹ë ë구 첎ìž) ëë ìŽì ìžë ì첎 íë«íŒ(ì: ì ë²ì ì Fedora ë° RHELì ìŽì ë²ì ì Fedora ë° RHELìì ìëëë©° ì²ìë¶í° ìì í ììëì§ë ììµëë€. Gentooì ê°ì ìì€ êž°ë° Linux ë°°í¬íë ì€ì¹ íë¡ê·žëšìŒë¡ ììíì¬ Linux 컀ë, C 컎íìŒë¬, íëìšìŽ ëëŒìŽë² ë±ìŽ ìë ìì ë¹ë í겜ì ì ê³µí©ëë€.
ë°ëŒì pip 10ìŽ --no-binary :all:
ê° ì¢
ìì±ì ë¹ë íì§ ìê³ ë°íì ì¢
ìì±ìë§ ì ì©ëë€ê³ ë§íë ê²ìŽ ìì í í©ëŠ¬ì ìŽëŒê³ ìê°í©ëë€. ì¬ëë€ìŽ ìì€ìì ëª
ìì ìŒë¡ ë¹ë룚ížë¥Œ 구ì±íë €ë 겜ì°ìë ì¬ì í í ì ììµëë€. ë¹ë ì¢
ìì±ì ëí ììì ìì€ ë¹ë륌 íì©íë ê²ê³Œ êŽë šë ê³ ì í ì¬ê· ë¶ížì€ížëí 묞ì ë¡ ìžíŽ pip 10ìŽ ìŽë¥Œ ììì ìŒë¡ ìëííì§ ìì ë¿ì
ëë€.
ì¬ëë€ìŽ ë¹ë íê²œìŽ ìì í ì¬ì 구ì±ë ê²ìŒë¡ ììíë€ê³ íìí ì ìëë¡ íë €ë©Ž ìì€ ë¹ëì ìŒë¶ë¡ ììì ë°ìŽë늬 ë¶ížì€ížë©ìŽ íìí ê²œì° ì€ì¹ê° ìì í ì€íšíëë¡ ë³ëì --no-implicit-builddeps
ìµì
ì ì¶ê°íë ê²ìŽ í©ëŠ¬ì ì
ëë€. . ê·žë ê² íë©Ž 몚ë ê²ìŽ ìì€(ë¹ë ì¢
ìì± í¬íš)ìì ë¹ëëëë¡ íë €ë ì¬ëë€ìŽ ë€ì곌 ê°ì ìì
ì ìíí ì ììµëë€.
pip install --no-binary :all: --no-implicit-builddeps -r build-requirements.txt
pip install --no-binary :all: --no-implicit-builddeps -r requirements.txt
ê·žëŠ¬ê³ ì²« ë²ì§ž ê·žë£¹ìŽ CPython ë° ì¬ì ì€ì¹ë ë¹-Python ë¹ë ë구 ì²Žìž ìžì ë€ë¥ž ê²ìŽ íìíì§ ìì ì§ì ì ëë¬íë ë° íìí ë§íŒì ê³ ì í ì€ì¹ 귞룹ì ì ìí©ëë€.
ìŽ ê°ë
ì ëí ì ì¬ì ìž ë¯žë 볎ìì ì¬ëë€ìŽ 격늬ë í겜ìì ê° ë¹ë륌 ìííë ëì íìí ìì€ ë¹ëì ì¬ì©í ì¬ì 구ì±ë ë¹ë í겜ì ì§ì íêž° ìíŽ --buildenv <path>
ëŒê³ ë§í ì ìê² íë ê²ì
ëë€. ê·žë¬ë ëë ê·žê²ì pip 10ì ë£ìŒë €ê³ ìëíì§ ìì ê²ì
ëë€ - 10.x륌 "ë°ìŽë늬 ë¹ë ì¢
ìì±ìŽ íì©ëš"ì íë³µí 겜ë¡ì "ë°ìŽë늬 ë¹ë ì¢
ìì±ìŽ íìí ê²œì° ë¹ë ì€íš"ì ë첎 ìµì
ìŒë¡ ì ííë ê²ìŽ ì¢ìµëë€. íì¬ ì€í ì€ìž ìží°í늬í°ìì ìŽë¯ž ì¬ì©í ì ììµëë€."
[1] https://www.schneier.com/blog/archives/2006/01/countering_trus.html
ëë í©ëŠ¬ì ìŒë¡ 볎ìŽê³ ë묎 ë§ì 늬í©í ë§ìŽ íìíì§ ìì ë€ë¥ž ìµì
ì ìê°íìµëë€. Ʞ볞ì ìŒë¡ ë©í° ì€ë ë©ì ì¬ì©íì¬ ë¹ë íê²œìŽ ì€ì ëë ëì Ʞ볞 ì€ë ë륌 ë³Žë¥ ìíë¡ ëë ê²ì
ëë€. ììŽëìŽë ë€ì곌 ê°ìµëë€. install.py
ìë BuildEnvironmentManager
ê° ììµëë€.
class BuildEnvironmentManager(Thread):
'''Has references to literally everything (cache, resolver, etc.)'''
def run(self):
while True:
requirement_list, future = self.build_environment_queue.get()
# install the requirements using all of the things
# that we have
# then put the build environment in the future
future.put(BuildEnvironment())
ê·žë¬ë©Ž ë€ë¥ž íìŒìŽ ìê¹ëë€. (ëë backend.pyê° ì¶©ë¶íì§ ìê³ ìë§ë ë ë§ì ê²ì ì¬ì©í ì ìêž° ë묞ì backend.py륌 ì¬ì©í©ëë€. ê·žëŠ¬ê³ ê·žê²ì ížëŠ¬ì 맚 ìëì ììµëë€):
class Future(Queue):
pass
class BuildEnvironmentQueue(object):
def __init__(self):
self._queue = Queue()
def request_build_environment(self, requirement_list):
f = Future()
self._queue.put((requirement_list, f))
return f.get()
def get():
return self._queue.get()
ê·žëŠ¬ê³ operations/prepare.pyìì:
# This call will put the thread to sleep until we have a build environment
# with the requirements installed
self.build_environment_queue.request_build_environment(requirement_list)
ìŽê²ì ìµìíì 늬í©í ë§ìŽ íìíê³ ì§ë ¬íë BuildEnvironmentManager
륌 ê°ê³ (ë°ëŒì ë¹ë í겜ì ìµì íí ì ìê³ ëšìŒ ê°ì²Žìì ìíë ìì²ìŽ 묎ììžì§ ì íí ì ì ìì) 몚ë ê²ì íëì íë¡ìžì€ì í¬íší ì ìë€ë ì¥ì ìŽ ììµëë€. ìµì
ì ìë늬ì€ë êµì°© ìíì
ëë€). ë¬Œë¡ ë€ë¥ž ì€ë ëì ëíŽìë ë¡ê¹
ì ë¹íì±ííŽìŒ íì§ë§ ê·žë€ì§ 묞ì ê° ëì§ë ììµëë€.
queue.Queue êž°ë° ì ê·Œ ë°©ìì ëí ëŽ ì§ë¬žì ëµíêž°: Python 2.7ìì https://pypi.org/project/futures/ 륌 ê³µêžíŽìŒ íë¯ë¡ ëì.futuresì ìì¡Žíì§ ìë ê²ìŽ ê°ì¥ ì¢ìµëë€.
pip
ìœë êž°ë°ì ì ìì§ ëª»íëëŒë ë¹ë í겜 êŽëŠ¬ë¥Œ í ê³³ìì íµí©íë€ë ê°ë
ì ì¬ì í ââë§€ë ¥ì ìž ìµì
ì²ëŒ 볎ì
ëë€.
concurrent.futures
ë íŽë¹ ì ê·Œ ë°©ìì íìíì§ ììµëë€. Future
ë ë ì€ëª
ì ìž ëíŒì
ëë€.
íìí Ʞ볞 ììë ëêž°ìŽì ëë€: https://docs.python.org/2/library/queue.html
ìŽ ì€ ì BuildEnvironmentManager
ë¡ ìŽëí ì ììµëë€.
ëë ë§ì 곌í íë¡ì ížì íšê» ìŒíêž° ë묞ì ížê²¬ìŽ ìì ì ììµëë€. ê·žë¬ë í ë¹ë ì¢ ìì±ìŽ ìë íë¡ì íž ëª©ë¡ìì ë컥거늎 ì ìê³ ìì€ ì¢ ìì±ìŽ ìë í íë¡ì ížë¥Œ ì§ì ìŒë¡ ìê°í ì ììµëë€. ëŽê° íë žì ìë ììµëë€.
êžì, íëë [Windows, macOS, Linux]ê° ìë 몚ë OSê° ììµëë€. IIRCë manylinux1
ëììŽ ìëëë€.
@rgommers ë€ì pipì ìë ê²œì° í ë¡ ì¬ì©í ì ìë ë¹ë ì¢ ìì±ë§ ì§ìíë PEP 518ì ì¬ì©íìê² ìµëê¹?
ì ë¶ëŠì ìëì§ë§ ì¬êž°ìì í 걞ì ë ëìê°ë©Ž êž°ì ê²ì ëë€. ìŽìšë PEP 518 ì§ìì ì í ì¬íìŽë¯ë¡ pip 10ìì ë°íŽë¥Œ ì¬ì©í ì ìì ëë§ ìëí©ëë€(ëŽê° ë§í ì ìë 겜ì°ì 90% ìŽì í¬íš). ì¬ì í ìë¹í ê°ì ì ëë€.
PyPIìì í ì íì©íì§ ìë íë«íŒìë ì¬ì í ë¡ì»¬ í ìºìê° ììµëë€. ìŠ, pipê° ììì ìŒë¡ ìì ì ë¶ížì€ížë©í ì ìëëŒë ì¬ì í ì¶ë ¥íê³ "ìŽ ë¹ë ì¢ ìì±ì ìŽë»ê²ë ì€ì¹íìžì. , ê·žë¬ë©Ž ìëí©ëë€."
ê·žë¬ë íì¬ ë§ì€í°ìì ë¶ë¶ì ìŒë¡ ì§ìì ì² ííë ê²ê³Œ êŽë šíì¬ ë¬ŽììŽ êŽë šë ì§ ìë ì¬ëìŽ ììµëê¹?
ëë ìŽê²ì ì¡°ì¬íë€. ë묎 íë€ì§ ìì ê² ê°ìµëë€. ì°ëŠ¬ê° ìŽ êžžì ê°êž°ë¡ ê²°ì íë€ë©Ž êž°êºŒìŽ í볎íê² ìµëë€.
í 10.0.0 ëì í 9.1.0ì +1
ë§ì¹šëŽ distutils-sig ì€ë ë륌 ì ëë¡ ìœê³ êŽë š PR ë° í ë¡ (#4351, #4144, #4799 ë° êž°í)ì 볌 ìê°ìŽ ì게ìµëë€. ìŽì ì°ëŠ¬ê° pip 10ì ë°íí ìŽíë¡ ìê°í©ëë€. ê·žê²ìŽ ì°ëŠ¬ê° íŽìŒ í ìŒì ëë€. ë¶ë¶ì ìž PEP 518 ì§ì(9.1.0 ìì)ì ì¬ì©í©ëë€.
ìŽ ë²ì ë²ížì ëìŽê° ìŒì¹íŽìŒ í©ëë€.
ë²ëšž. :(
@ncoghlan ìŽì©ë©Ž ìŽ ëêžìŽ ë ìŽë ìëë¡ ë¯žëë¬ì¡ì ìë ììµëë€ -- https://github.com/pypa/pip/pull/4799#issuecomment -338416543
ê·žë ì§ ìì 겜ì°, ëë ê·žë° ì¢ ë¥ì ì€ì ì ìŽíŽíê³ ê·žê²ì ëíŽ ë ë§ìŽ ë°°ìž ì€ë¹ê° ëìŽ ìêž° ë묞ì ìëíì§ ìë ìŽì 륌 ì€ëª í ì ìë€ë©Ž ì¢ì ê²ì ëë€. :)
@pradyunsg ë¹ë ìºì ììŽëìŽì í¹ì 구íìŽêž° ë묞ì ëë¶ë¶ ìëíë€ê³ ìê°í©ëë€. ì¬êž°ìì ë€ë£šì§ ìë í ê°ì§ ìž¡ë©Žì ë¹ë ì¢ ìì± ë£šíì ëë€. "ìŽë¯ž ë¹ëíë €ë ê²ì ë¹ëíëŒë ìì²ì ë°ììµëë€"륌 ê°ì§íë ë°©ë²ìŽ ìêž° ë묞ì ëë€.
pipë ì¢ ìì± ë£ší륌 ë§ì ì²ëŒ íŽê²°í íìê° ììµëë€. ì€ì ë¡ ë¬Ží 룚íì ë€ìŽê°ë ê²ìŽ ìëëŒ ìŽë¥Œ ê°ì§íê³ ë°ê²¬íë ìŠì ì€íšíë©Ž ë©ëë€.
ì¢ ìì± ë£ší륌 ë¹ëíë ê²ì ë€ë£šì§ ììµëë€.
ë°ìŽë늬 ì ì© ë¹ë ì¢ ìì±ììë ë°ìíì§ ììµëê¹?
@pradyunsg ë§í¬ë 죌ìì ë¹ë ì¢
ìì±ì ëí ìì€ ë¹ë륌 íì©íë ë°©ë²ì ëí ê²ìŽììµëë€. ìŠ, ìí ì¢
ìì±ìŽ ì ì¬ì ìž ë¬žì ê° ëë€ë ì믞ì
ëë€. ë°ìŽë늬 ì¢
ìì±ìŽ íìí ê²œì° pip
ë ë¹ë¶ê° êž°ì¡Ž í ìºìì ìì¡Ží ì ììµëë€.
ì ë§ë€. ê°ì¬ íŽì! :)
ì ë ë¶ë¶ PEP 518 구íìŽ ë°ìŽë늬 ë¹ë ì¢ ìì±ìŒë¡ ì íëìŽ ìë pip 10ì ì°¬ì±í©ëë€(ëë pip í ìºììì ìŽë¯ž ì¬ì© ê°ë¥í 겜ì°).
ìì§ ì 첎 ì€ë ë륌 ìœì§ë ììì§ë§ ë°ìŽë늬 ë¹ë ì¢ ìì±ìŒë¡ ì ííë í ê°ì§ ë¶ìì©ì ë§ì 겜ì°ì ë¹ë depì C ì¢ ìì±ì ê°ë ê²ìŽ ~ë¶ê°ë¥íë€ë ì ì ì§ì íê³ ì¶ìµëë€. ì, Windows, macOS ë° ìŒë¶ Linux ë²ì ìë ë°ìŽë늬 í ìŽ ìì§ë§ ë€ììë ììµëë€.
ìŽë ì륌 ë€ìŽ 몚ë CFFI êž°ë° íë¡ì ížê° PEP 518ì ì¬ì©í ì ìê±°ë íŽë¹ íë«íŒìì ì ê±°í ì ììì ì믞í©ëë€.
ìŽê²ì ìŽë¯ž ì êž°ëìì ì ììµëë€! ëì€ì ìŽ ì€ë ë륌 ìœì ê²ì ëë€.
@dstufft ë§ìµëë€. ê·žë¬ë ì°ëŠ¬ê° ì ìíë ê²ì pip ìºì륌 ì¬ì©íë ê²ìŽ ìµì
ìŽëŒë ê²ì
ëë€. ë°ëŒì 뚌ì ë¹ë ì¢
ìì±ì pip wheel
ëë pip install
íë©Ž ìºìì ì ì¥ë©ëë€.
ìŽê²ì ìŽë¯ž ì êž°ëìì ì ììµëë€!
ìëì. :)
ìŽë ì륌 ë€ìŽ 몚ë CFFI êž°ë° íë¡ì ížê° PEP 518ì ì¬ì©í ì ìê±°ë íŽë¹ íë«íŒìì ì ê±°í ì ììì ì믞í©ëë€.
ë¬Œë¡ . :-(
ìŽ ë¬žì 륌 íŽê²°íë ë°©ë²ì PEP 518 ëìì ìµížìžìŒë¡ ë§ë€ ì ìë€ë ê²ì
ëë€. pyproject.toml
íìŒìŽ ììŒë©Ž 격늬 + ë¹ë í겜ì ì¬ì©íê³ ê·žë ì§ ììŒë©Ž setup.py
ì ì¬ì©íë íì¬ ëììŒë¡ íŽë°±í©ëë€.
ëì€ì ìŽ ì€ë ë륌 ìœì ê²ì ëë€.
ì ë°. :)
ëë Donaldì ëê°ì ë§ì íìµëë€. ìŽ ì€ë ëì ëí ëŽ ìŽíŽë ë°ìŽë늬 ì ì©ì pip 10ì ëíŽ êµ¬íí ìê°ìŽ ìêž° ë묞ì ìŒìì ìŽëŒë ê²ì ëë€. ë§ìµëê¹?
ëì ì구 ê²°ì ìŒë¡ ì ìë ê²œì° ë¬Œë¡ -1ì ëë€.
ëë Donaldì ëê°ì ë§ì íìµëë€. ìŽ ì€ë ëì ëí ëŽ ìŽíŽë ë°ìŽë늬 ì ì©ì pip 10ì ëíŽ êµ¬íí ìê°ìŽ ìêž° ë묞ì ìŒìì ìŽëŒë ê²ì ëë€. ë§ìµëê¹?
ë§ìµëë€. pip
ë ìì€ ì¢
ìì±ì ì§ìíŽìŒ íì§ë§ ìžë ¥ìŽ ë¶ì¡±í©ëë€.
ìŽ ë¬žì 륌 íŽê²°íë ë°©ë²ì PEP 518 ëìì ìµížìžìŒë¡ ë§ë€ ì ìë€ë ê²ì ëë€. pyproject.toml íìŒìŽ ìë ê²œì° ê²©ëŠ¬ + ë¹ë í겜ì ì¬ì©íì§ ììŒë©Ž setup.py륌 ì¬ì©íë íì¬ ëììŒë¡ íŽë°±í©ëë€.
ëë ìŽ ëêžì ë€ì ìœìê³ ì¬êž°ì ëìíì§ ìì ê²ì ëë€. PEP 518 ì§ìì ì í ì¬íìŽ ìëìŽìŒ í©ëë€(PEP 517곌 êŽë šë 구í ìŽì ë묞ì) IMHO, íì§ë§ ìŽë¬í íë«íŒìì íë¡ì ížë¥Œ ì ê±°í ì ììŽìŒ í©ëë€.
ë 구첎ì ìŒë¡ ë§íë©Ž, ì€ì¹íë €ë í¹ì íë¡ì ížê° PEP 518ì ì»ì ì ìëì§ ì¬ë¶ë¥Œ ê²°ì íŽìë ì ë©ëë€. ìŽë ë¹ë ì¢ ìì±ì í ë¡ ì¬ì©í ì ìëì§ ìëë©Ž ìºììì ì¬ì©í ì ìëì§ì ë°ëŒ ê²°ì ëìŽìŒ í©ëë€. ëí ë€ì곌 ê°ì ë©ìì§ë¥Œ ë±ìŽëŽë©Ž íŽë¹ íë«íŒììë PEP 518 ì§ìì íìë¡ ì€ì í ì ììµëë€.
Error: build dependency X is not in the pip cache. Run "pip install X" before installing Y.
ëŽ ìì ì êŽì ì ììœíë©Ž:
python -m pip wheel X Y Z
ëª
ë ¹ì ëŽë³ŽëŽë ê²ìŽ íì¬ë¡ìë ì ì í íŽê²° ë°©ë²ì
ëë€. ìŽë pipê° ì€ìë¡ ëšžì ííì ë¶êž°í ì ìëë¡ íêž° ë묞ì
ëë€.pyproject.toml
íìŒìŽ ìê±°ë 격늬ë ë¹ëê° ëª
ë ¹ì€ìì ëª
ìì ìŒë¡ ìì² ëì§ ìë í 격늬ë ë¹ëë ìì§ êž°ë³žê°ìŽ ìëìŽìŒ í©ëë€. ìŽë êž°ì¡Ž íë¡ì ížê° 격늬ëì§ ìì ëìì ììíêž° ë묞ì ìŽì ë²ì 곌ì ížíì± ë¬žì ì
ëë€. 격늬ë ë¹ë륌 ëŠŽëŠ¬ì€ ëë ë ê°ì ì¬ì©í ì ìê³ ì¬ì©ì± 묞ì ê° íŽê²°ëë©Ž ìŒë°ì ìŒë¡ êž°ë³žìŽ ë ì ììµëë€(ììì ìŒë¡ 격늬ë ë¹ë륌 ìì±íë ëì ì¬ì©í í¹ì ë¹ë í겜ì ì§ì íë ëª
ë ¹ì€ ìµì
ìŽ ìì ì ìì). ê²)@ncoghlan 죌ì ì¬í: Ʞ볞 ë¹ë ê²©ëŠ¬ê° ìë€ë ê²ì PEP 517ìŽ ììì ì믞í©ëë€(ì ìŽë ì ì ê·Œ ë°©ìììë) ìµì ë²ì ì setuptoolsë§ ì§ìíêž° ë묞ì 컎íší°). ì€ì ë¡ ëë PEP 517ì 구ííë ë° íìí ë žë ¥ì ìì ê·¹ì ìŒë¡ ìŠê°ìí¬ ê²ìŽêž° ë묞ì PEP 517ì ì ìŽë 1ë ì°êž°í ì ìë€ê³ ìê°í©ëë€(PEP 517 ë° ë¹PEP 517 ìœë íì).
ìŽë êž°ì¡Ž íë¡ì ížê° 격늬ëì§ ìì ëìì ììíêž° ë묞ì ìŽì ë²ì 곌ì ížíì± ë¬žì ì ëë€.
ëë¶ë¶ì ì¬ëë€ì pip install X
륌 ì€íí ë€ì pip install Y
륌 ì€ííë CI ì€í¬ëŠœížë¥Œ ê°ì§ê³ ììµëë€. ìŽë¬í íë¡ì ížë pypproject.toml
륌 ì¶ê°íŽìŒ í©ëë€. ê·žë¬ë pyproject.toml
륌 ì¶ê°íë ê²ì ê·žë ê² ë§ì ìì
ìŽ ìëë©° íìí ê²œì° ë¹ë 격늬륌 ë¹íì±ííë ëª
ë ¹ì€ íë귞륌 ì¶ê°í ì ììµëë€.
íë¡ì ížì pip 10ì pyproject.toml
ê° ììŒë©Ž ìµìí ê²œê³ ë¥Œ íìíŽìŒ í©ëë€(ìŽìšë PEP 517 ì§ììŽ ìì ê² ê°ìµëë€).
@xoviat "ì¡°ì í ìì
ìŽ ë§ì§ ìì ê²"ì ìŽì ë²ì 곌ì ížíì±ìŽ ìëíë ë°©ììŽ ìëëë€. ê·žë ë€ë©Ž pipë ì§êžê¹ì§ Ʞ볞 non-venv ì€ì¹ 몚ëžë¡ --user
ë¡ ì ííì ê²ì
ëë€. :)
PEP 517ìŽ ì§íëë í pyproject.toml
íìŒì ì¶ê° íì§ ìê³ ë íší€ì§ ê²ììë¡ì PEP 517ì ìì¡Ží ì ììŒë¯ë¡ setup.py
-only íë¡ì ížê° PEP 517 ì§ìì ë°ì§ ììë êŽì°®ìµëë€. Ʞ볞ì ìŒë¡.
ê²œê³ ë¥Œ ë±ìŽë êŽì°®ìê¹ì?
íë¡ì íž ì첎ë ì¢ ìì±ìŽ ë³ê²œëì§ ììëëŒë íì¬ ì ìëíë ë¹ëê° pipê° ì ê·žë ìŽëëìë€ë ìŽì ë¡ ê²œê³ ë¥Œ ëŽë±êž° ììíë€ë©Ž 묞ì ë¡ ë³Œ ê²ì ëë€.
PEP 518 ë° 517ì êŽë šë 몚ë ê²ììê° ê³ìíŽì setuptoolsìë§ ìì¡Žíë êž°ì¡Ž íë¡ì ížë¥Œ ì€ëš íì§ ìëë¡ ìëì ìŒë¡ ì€ê³ëììµëë€.
pip
ê° setuptools êž°ë° íë¡ì ížì 겜ì°ìë ëšìŒ PEP 518 ë¹ë 겜ë¡ë¡ ë€ì íµí©íë ê²ì 목íë¡ íë ê²ì ìë¯žê° ìì§ë§, ê·ž ìê°ì 격늬ë ë¹ëê° ëŠŽëŠ¬ì€ ëë ë ê°ì§ ê°ì¹ì ì€ì ì¬ì©ì 볞 í ì
ëë€. ê·žê²ë€ì ì í ì§ìíì§ ìë 첫 ë²ì§ž ë²ì ìì.
ëë Donaldì ëê°ì ë§ì íìµëë€. ìŽ ì€ë ëì ëí ëŽ ìŽíŽë ë°ìŽë늬 ì ì©ì pip 10ì ëíŽ êµ¬íí ìê°ìŽ ìêž° ë묞ì ìŒìì ìŽëŒë ê²ì ëë€. ë§ìµëê¹?
ë€. ì íí.
pipê° setuptools êž°ë° íë¡ì ížì 겜ì°ìë ëšìŒ PEP 518 ë¹ë 겜ë¡ë¡ ë€ì íµí©íë ê²ì 목íë¡ íë ê²ì ìŽì¹ì ë§ìµëë€. ê·žë€ì ì í ì§ìí©ëë€.
+1
2ê°ì 죌ì 늎늬ì€ì ê°ìŽ ìŽì 겜ë¡ë¥Œ ì ê±°íë ê²ì 목íë¡ íŽìŒ íë€ê³ ìê°í©ëë€. pipê° ìì íê³ ì ì í PEP 518 ì§ìì ë°ìŒë©Ž; ìŽì ë¹ë ë¡ì§ì ë ìŽì ì¬ì©íì§ ìê³ íì€ ì¬ì© ì€ì§ ì ì± ì ë°ëŒ ì ê±°íŽìŒ í©ëë€.
ëë Nickì ììœì ëìíê³ ...
구ííë ë° íìí ë žë ¥ì ììŽ í¬ê² ìŠê°íêž° ë묞ì ëë€.
ìëì. ì ë ìŽë¬í ë°©ììŒë¡ PEP 518ì 구ííë ë° í° ì¥ì ë¬ŒìŽ ìë€ê³ ìê°íì§ ììµëë€. https://github.com/pypa/pip/pull/4799#issuecomment -339219397ì ëíŽ pip ëŽìì ìŽê²ìŽ ìŽë»ê² 구íë ì ìëì§ì ëíŽ ì§§ì ì견ì ëšê²Œìµëë€.
ì°ëŠ¬ê° íê³ ì íë ê²ì ì¬ëë€ìê² ì€ëë ê²ìì ìë¡ìŽ ê²ìŒë¡ì 깚ëí ì íì ì ê³µíë ê²ì ëë€. ë°ëŒì íì¬ pip 9 ì€ì¹ ë¡ì§ì ë³ê²œíì§ ìì ìíë¡ ì ì§íŽìŒ í©ëë€. ìŽë Ʞ볞ì ìŒë¡ íì¬ ìííë 몚ë ìì ì ì íí ë°©ììŒë¡ ì§ìí©ëë€.
ì칎ìŽëžì pyproject.toml
íìŒì ë£ë ê²ì íší€ì§ê° ìë¡ìŽ íì€ì ì ííê³ ìë¡ìŽ ëìì ëí ì§ìì í
ì€íží ì©ìê° ììì ì믞í©ëë€. 격늬 ë° ë°ìŽë늬 ì ì© ë¹ëê° ìë ë¹ë í겜ì íµê³Œí©ëë€. - ì¢
ìì±(íì¬).
ìëì. ì ë ìŽë¬í ë°©ììŒë¡ PEP 518ì 구ííë ë° í° ì¥ì ë¬ŒìŽ ìë€ê³ ìê°íì§ ììµëë€.
ì¬êž°ìì PEP 517ì ëíŽ ë Œìí©ëë€. íŒëì ëë € ì£ì¡í©ëë€.
ë ìœë 겜ë¡ë¥Œ 몚ë íìžíë €ë©Ž í ì€ížë¥Œ ë ë² ì€ííŽìŒ í©ëë€. ì êžì, PEP 517ì ìë§ë ì°êž°ëìì ê²ì ëë€.
IMO,
pyproject.toml
ê° ìë ê²œì° ê²œê³ ë ë§€ì° ëì ìê°ì²ëŒ ë€ëŠœëë€. ê²°êµ, PyPIì ìë íë¡ì ížì 99%ë íì¬ pyproject.toml
ê° ììŒë©° ìµì¢
ì¬ì©ììê² ì묎ê²ë í ì ìë€ë ê²œê³ ë¥Œ ì€ížìŒë¡ ë³ŽëŒ ì ììµëë€(íë¡ì ížì 묞ì 륌 ë³Žê³ íë ê² ìžìë ). ëŽê° ëê°ë¥Œ ëì¹ê³ ììµëê¹?ëŽê° ëê°ë¥Œ ëì¹ê³ ììµëê¹?
ìëì.
ì²ììë PEP 518ë§ ì¬ì©íê³ 2ëšê³ë¡ 격늬륌 ì¶ê°íŽë êŽì°®ìµëë€.
ì¬ëë€ìŽ 격늬ë ë¹ëë¡ ì ííëë¡ íë ì¢ì ë°©ë²ìŽêž° ë묞ì PEP 518ì ìííê³ ê²©ëŠ¬ë¥Œ íšê» ë¹ëíŽìŒ íë€ê³ ìê°í©ëë€.
PEP 518ìŽë PEP 517 몚ë 격늬ë ë¹ë ê° íì íì§ ìì§ë§ PEP 517ì 걎ì í ìŽì ë¡ ê¶ì¥í©ëë€. https://www.python.org/dev/peps/pep-0517/#recommendations -for-build-frontends-non-normative
ë¡ì»¬ ë°ìŽë늬 ìí°í©íž ìºìê° ììŒë©Ž 격늬ë ë¹ë í겜ì ë¹ì€ì©ì ìŽì§ë§ ìŒëš ê·žë° í겜 ì€ íëê° ììŒë©Ž(íì¬ pip
ì²ëŒ) ë€ì곌 ê°ì ìŽì ë¡ íšì¬ ë ì€í ê°ë¥í©ëë€.
ëìì, 격늬ë ë¹ë í겜 ì ê²ììì ìì ìŽ ì¡°êž ë íìí©ëë€. ìŽë ë²ê·žê° ìë ë©íë°ìŽí°ê° ê²ìì ì ë¹ë륌 ì€ëšììŒ "ëŽ ë¹ë ì¢ ìì±ìŽ ìì í ì ìžëì§ ìììµëë€"ëŒê³ ëª ìì ìŒë¡ ë§íŽìŒ íë€ë ê²ì ì믞íêž° ë묞ì ëë€. ë¹ë륌 í©ëë€.
ë°ëŒì pyproject.toml
êž°ë° ë¹ë륌 ì²ìë¶í° 격늬íë ê²ì ìì°ì€ë¬ìŽ ì í ì§ì ì ì ê³µí©ëë€. ìëíë©Ž ì 첎 PEPë ë°íì ì¢
ìì±ê³Œ ë³ëë¡ ë¹ë ì¢
ìì±ì ëª
ííê³ ìŒêŽëê² ì ìžíë ë°©ë²ì ì ê³µíêž° ë묞ì
ëë€. ìŠ, setup.py
ìì ì ííë ì¬ëë€ì ìë§ë ê·žë° ì¢
ë¥ì ìŒì íë ê²ì êŽì¬ìŽ ìêž° ë묞ì ê·žë ê² íë ë°ë©Ž, ìë¡ìŽ íë¡ì ížë¥Œ ìíŽ ìë¡ ììíë ì¬ëë€ì íší€ì§ ëêµ¬ë¡ ìžíŽ ì ííŽìŒ íë ë ë€ë¥ž ê³ ëŠ¬ë¡ ì·šêží ê²ì
ëë€. ì íµíŽ.
ë°ëŒì ìœë륌 ìì±íêž° ì ì íìžíê³ ì¶ì ëª ê°ì§ ì¬íì ë€ì곌 ê°ìµëë€.
pyproject.toml
륌 íµíŽ ì íPEP 517ì ìì§ ì€ë¹ëì§ ììêž° ë묞ì pip 10ì ëí ì°šëšêž°ê° ë ì ììŒë©° ìŽ ìì ìì ëª íí 겜ë¡ê° ììµëë€(ììŒë¡ 겜ë¡ë ìì§ë§ ëª ííì§ ìì).
ìŽ ì€ë ë륌 ë¹ ë¥Žê² ìœì íë¿ ìëëŒ êµ¬í 묞ì 륌 ììœí @xoviat ì ì견 ì ëí ìëµìŒë¡ ì견곌 ì§ë¬žìŽ ììµëë€.
첫짞, íë° ê°ë¥ì±ìŽ ìë ì¬ê· 묞ì ì êŽë šíì¬ ìŒë°ì ìŒë¡ 몚ë ì¬ê· íšìë ë°ë³µ íšìë¡ "ë³í"ë ì ììµëë€. ê·ž ì ê·Œ ë°©ììŽ ë ë§ì ì ìŽë¥Œ ì ê³µíì¬ ì¬êž°ìì ëììŽ ë ì ìëì§ ê¶êží©ëë€.
ë짞, Python ëŽìì pip íšì륌 ížì¶íë ê²ê³Œ ë°ëë¡ êµ¬ë§€ë¥Œ í¬ê²©íë ê²ì 묎ìì ëê¹? ëŽë¶ API íšì륌 ìì±/늬í©í°ë§í ì ìë ìŽì ê° ë¬ŽììŽë ìŽë¥Œ íµíŽ ë¬ì±íë €ë 몚ë ìì ì ìíí ì ììµëê¹? ìŽë ížì¶ì ížì¶í ë ë ë§ì ì ì°ì±ì ì ê³µíŽìŒ í©ëë€(CLI 맀ê°ë³ìì ë¹êµíì¬). ìŽê²ì ëí ì 첎 íë¡ìžì€ì ìí륌 ë³Žë€ ìœê² ââêŽëŠ¬í ì ìëë¡ íì¬ ë ë§ì ì ìŽë¥Œ ì ê³µí ì ììµëë€.
ëŽë¶ API íšì륌 ìì±/늬í©í°ë§í ì ìë ìŽì ê° ë¬ŽììŽë ìŽë¥Œ íµíŽ ë¬ì±íë €ë 몚ë ìì ì ìíí ì ììµëê¹?
ë짞, Python ëŽìì pip íšì륌 ížì¶íë ê²ê³Œ ë°ëë¡ êµ¬ë§€ë¥Œ í¬ê²©íë ê²ì 묎ìì ëê¹?
ê·žê²ì ì°ëŠ¬ê° íì¬ ê°ì§ê³ ìì§ ìì ìê°ì ì°ë€. pip
ì ì¶ì ìŒì ìŽ ìŽë¯ž ëŠìŽì¡ìµëë€.
첫짞, íë° ê°ë¥ì±ìŽ ìë ì¬ê· 묞ì ì êŽë šíì¬ ìŒë°ì ìŒë¡ 몚ë ì¬ê· íšìë ë°ë³µ íšìë¡ "ë³í"ë ì ììµëë€.
ì ë ì¬ê·ë¥Œ ë°ëíë ì¬ëìŽ ìëëë€. ì ë íë¡ìžì€ ì¬ê·ë¥Œ ë°ëí©ëë€. 100% CPU(Pythonììë 20%)륌 ì¬ì©íë €ë ê²œì° êŽì°®ë€ê³ ìê°íì§ë§ ê¶ê·¹ì ìŒë¡ ì¬ì©ìë ìì êŽëŠ¬ì륌 ìŽê³ ìµë 15ê°ì íë¡ìžì€ë¥Œ ì¢ ë£í ì ììŽìŒ í©ëë€. ëìê² ì ì¬ì ìŒë¡ íë¡ìžì€ íë°ì ìŒìŒí¬ ì ìë ìí©ì ì©ë©í ì ììµëë€.
ê·žë ë€ê³ íŽì ìê°ì ë²ë ìŽì ì ëí ì§ë¬žìë ëµìŽ ëì§ ììµëë€. ëìŒí ìì ì ìííë ëŽë¶ API íšì륌 ë§ëë ê²ìŽ ìŽë €ìŽ ìŽì ë 묎ìì ëê¹?
ìŽìšë ìë§ ìììŽ í¹ì 묞ì 륌 íŽê²°íë€ë©Ž ìŽ ì ê·Œ ë°©ìì ë ìœê² ë§ë€ ì ìë í ê°ì§ ê°ë¥ì±ì íìí 몚ë ì 볎륌 ë ìœê² ì ë¬í ì ìëë¡ ê°ìž/ëŽë¶ CLI ëª ë ¹ì ìŒìì ìŒë¡ ë žì¶íë ê²ì ëë€(ì: ì§ë ¬íë Python ê°ì²ŽìŒ ìë ììµëë€). , ë±).
ê·žë ë€ê³ íŽì ìê°ì ë²ë ìŽì ì ëí ì§ë¬žìë ëµìŽ ëì§ ììµëë€. ëìŒí ìì ì ìííë ëŽë¶ API íšì륌 ë§ëë ê²ìŽ ìŽë €ìŽ ìŽì ë 묎ìì ëê¹?
ìœë€ê³ ìê°íìë©Ž ì§ííìžì. ë¹êŒ¬ë ë§ìŽ ìëëë€. 몚ë 묞ì 륌 íŽê²°í ì ìêž° ë묞ì ê³ì ì§ííìžì.
ìœì§ ìì ê² ê°ìì. ì ìŽë €ìŽì§ ìêž° ìíŽ ì§ë¬žë늜ëë€. (ë¹ì ìŽ ìê°ì ì ìœí ì ìë€ê³ ë§í ìŽíë¡ ë¹ì ìŽ ìŽê²ì ëíŽ ìê°íë€ê³ ê°ì í©ëë€.)
pkg_resources
ì ê°ì ìì¹ì ìºì ë묞ì ìŒë°ì ìŒë¡ íì íë¡ìžì€ ëŽë¶ìì ë³ëì pip ì€ì¹ê° íìí©ëë€(í늎 ì ìì).
ê·žë ë€ê³ pip
륌 ížì¶íŽìŒ íë ê²ì ìëì§ë§ CLI륌 íµíŽ ë°ìŽí°ë¥Œ ì§ë ¬ííë API륌 ë§ë€ê³ python -c "from pip._internals import coolapithing; coolapithing(sys.stdin.read())"
륌 ížì¶íê³ stdoutìì ë ë§ì ë°ìŽí°ë¥Œ ìœì ì ììµëë€. ìŽë¬í API륌 ì¬ì©íì¬ ì€íìŒë¡ ë³ííì¬ pip ížì¶ pip ížì¶ pip ížì¶ pip ížì¶ì ì¬ê· ì룚ì
ì ì ííë ê²ìŽ ê°ë¥í©ëë€(몚ë ì¬ê·ë ì€íìŒë¡ë ì€ëª
ë ì ìêž° ë묞ì), Ʞ볞ì ìŒë¡ ë¹ê³µê° API륌 ë§ëë ê²ì
ëë€. íë¡ìžì€ë¡ ížì¶ë©ëë€.
ëë ì¬ì í ìŽ ì€ë ë륌 ìœì ê³íì ëë€(ìµê·Œì ë§ì íìŽ íì íìµëë€!). ê·žë¬ë í ê°ì§ ë ì€ìí ì ì: ì°ëŠ¬ë ì€ì ë¡ ì¶ì ìŒì ìŽ ììŒë©° ìŽë€ 목í ë ì§ê° ìë ì€ë¹ê° ëë©Ž ì¶ìí©ëë€. ì°ëŠ¬ë ëëë¡ ì°ëŠ¬ê° ìžì ì¶ìíê³ ì¶ìì§ì ëí ìŒë°ì ìž ììŽëìŽë¥Œ ê°ì§ê³ ìì§ë§ ê·žê²ìŽ íì ë ê²ì ìëëë€.
ê¶ê·¹ì ìŒë¡ Pythonìë ìí©ìŽ íµì ë¶ë¥ ìíê° ëì§ ìëë¡ ìµë ì¬ê· ê¹ìŽê° ììµëë€. ì°ëŠ¬ê° ê·ž ì ê·Œ ë°©ììŒë¡ ê°ë€ë©Ž ê·žê²ì 구ííŽìŒ í ê²ì ëë€.
ì, ì€í êž°ë° ì ê·Œ ë°©ìì ì¬ì©íë©Ž ꜀ ê¹ìŽ ë€ìŽê°ë ê²ìŽ ë§€ì° íšìšì ì ëë€(ì¢ ìì± ë£šíê° í ì ìë ê²ë³Žë€ íšì¬ ë ê¹ì, ì륌 ë€ìŽ 묞ì ê·žëë¡ ëªšë íší€ì§ì ìì¡Žíê³ ì¬ì í êŽì°®ì ì ìë 묎ìžê°ë¥Œ ê°ì§ ì ìì), ê°ì¥ ì€ìí ê²ì í ìŒì 룚í륌 ê°ì§íë ê²ì ëë€.
룚í ê°ì§ë¥Œ ìííë ìë¹í ìì§íê³ ì¬ìŽ ë°©ë² ì€ íëë ì€íì í목 ìì ìíì ì ì€ì íê³ ìŽ ì íì ëë¬íë©Ž ë°ëì 룚í ìí©ì ìê³ ì€ë¥ê° ë°ìíŽìŒ íë€ê³ ë§íë ê²ì ëë€. ê·ž ëšì ì ë¬Œë¡ ë£šíê° ê°ë¥í í 빚늬 ê°ì§ëì§ ìê³ ë ê¹ì ë¹ë ì¢ ìì± ì²ŽìžìŽ ìë íší€ì§ë ì íìŽ ìëíì§ ìëë€ë ê²ì ëë€.
ìŒë°ì ìŒë¡ ë ëì ìµì (ì€í êž°ë° ì ê·Œ ë°©ìì ì¬ì©íë ê²œì° ì 첎 ì€íì ì¡ìžì€í ì ìêž° ë묞ì)ì ëšìí ì€íì ìííê³ ì€ì¹íë €ë íëª©ìŽ ìŽë¯ž ì€íì ì묎 ê³³ìë ìëì§ íìžíë ê²ì ëë€. ì°ëŠ¬ê° 룚íì ë¹ ì¡êž° ë묞ì ëžë ìŽí¬ ìì ë° ì€ë¥ê° ë°ìíìµëë€(ìŽ ì€ë¥ë ìµì¢ ì¬ì©ììê² ì ê³µëê±°ë íŽê²° íë¡ê·žëšì ë²ëžë§ëìŽ ê²°êµ ë€ë¥ž ë²ì ì ìëí ì ìì§ë§ íšì¬ ëë €ì§ ì ìì).
ê·žëŠ¬ê³ @cjerdonek ì ì§ë¬žì ì§ì ëëµíêž° ìíŽ: ìì¹ì ìŒë¡ ìŽê²ì ìŽë µì§ ììµëë€ . 묞ì 륌 ìŽë µê² ë§ëë ê²ì pip
ê° íì¬ ìëíë ë°©ìì í¬íšë ìí€í
ì² ê°ì ìŽë©° ê° ìì€ê° ë¹ëëë ìžê³ììë ë ìŽì ì¬ì€ìŽ ìëëë€. ì€ì¹ í겜ìì ì§ì ì€ííë ëì ì첎 격늬ë ë¹ë í겜ì ê°ì žìµëë€.
ìŠ, ëŽë¶ ìí€í
ì² ì íì ëìŽ íì¬ ìë ì€ìž ìœë륌 깚ë ìí ììŽ pip
ì êž°ì¡Ž ì¢
ìì± êŽëŠ¬ ë
ŒëŠ¬ë¥Œ ì¬ì¬ì©íë ê°ì¥ ì¬ìŽ ë°©ë²ì íì íë¡ìžì€ìì pipì ë€ë¥ž ìžì€íŽì€ë¥Œ ì€ííë ê²ì
ëë€. ìì¡Žì± ë£ší륌 ê°ì§íê³ ë¹ ì žëì€ì§ 못íë©Ž ë¹ë륌 ì€ííë ìì€í
ìŽ í¬í¬ ííì í°ížëŠŽ ì ìë€ë 결곌륌 ì ìžíê³ ë ëë¶ë¶ êŽì°®ìµëë€.
ëë ë°ë³µì /ì€í êž°ë° ì ê·Œ ë°©ììŒë¡ ë³ííê³ python -c "from pip._internals import coolapithing; coolapithing(sys.stdin.read())"
íšíŽì ì¬ì©íì¬ ëŽë¶ pip íšìë¡ ì
žë§íë€ë @dstufft ì ììŽëìŽë¥Œ ì¢ìí©ëë€. í ë¡ ì êž°ë°ìŒë¡ íì ë ê°ì¥ ê°ëšíê³ ê°ë ¥íŽ 볎ì
ëë€.
ìŽì ëí 첫 ë²ì§ž ëšê³ë ììëë ì
ë ¥ ë° ì¶ë ¥(ì ìŽë ì€ìŒì¹)ìŽ ìë ëšìŒ ì¬ê· Python íšìë¡ ê°ëší ì¬ê· ì ê·Œ ë°©ìì ëìž ë€ì ë°ë³µ ì ê·Œ ë°©ììŒë¡ ë²ì/ë³íí ì ìë€ê³ ìê°í©ëë€. ê·žëŠ¬ê³ ì, 방묞 ížì¶ì set
륌 ì ì§íì¬ ë£šíì ë°©ì§í ì ììµëë€. ìŽë íŽê²°íêž° ì¬ìŽ ìž¡ë©Ž ì€ íëìž ê² ê°ìµëë€.
ì¬ê·ì ì ê·Œ ë°©ìì ë°ë³µì ì ê·Œ ë°©ììŒë¡ ë³ííë ë°©ë²ì ëíŽ ì¡°êž ë ìŽíŽë³Žê³ ìê°íìµëë€. @xoviat ì PEP 518(PR #4799) ë¶ë¶ ìì ì ì¬ê·ì ìì ì ì°Ÿë ë° ëììŽ ëììµëë€(ìŒë¶ë ìŽë¯ž ìê³ ìì ê²ì ëë€). ê·žì ìœë 죌ìì ììµëë€.
# TODO: Use single process with recursion handling
ì¬êž°ì pip install ...
륌 ížì¶í©ëë€.
ëŽ ìê°ì ë€ì곌 ê°ì ë³ê²œìŒë¡ pip install
(ë¹ë ì¢
ìì±ì©)ì ë³íìŒë¡ íŽê²°í ì ìì ê² ê°ìµëë€.
ìŽë¬í ë°©ììŒë¡ ìµìì ë£šíž íë¡ìžì€ë ë¹ë ì¢ ìì±ì ížëŠ¬ë¥Œ ì ì§ì ìŒë¡ ìì±í ì ììµëë€. ê·žëŠ¬ê³ ììŽ ë°ê²¬ëë ëë¡ ì²ëŠ¬í ì ììµëë€. ììŽ ì²ëŠ¬ëë©Ž ìŽì ì ììŽ ìëìë ë žëê° ììŽ ëë ìì ëë€. ìŽ êµ¬íì ì¬ì©íë©Ž ìžì ë ì§ íì íë¡ìžì€ìì ìµë í ë²ì pip-installë§ ë°ìí©ëë€.
ììì ì ìí ê²ì ìœê°ì ë³íì íìí pip ëª
ë ¹/íì íë¡ìžì€ ížì¶ìŽ í볎 ì€ì¹ì íìí íì ì€ì¹ ížì¶ 목ë¡ì ë°í/ëŽë³ŽëŒ ì ìë€ë ê²ì
ëë€( pip get-subinstalls
ëë ëšìí pip subinstalls
ëª
ë ¹). ììì ì ìí ê²ê³Œì ì ìŒí ì°šìŽì ì ìŽ ëª
ë ¹ìŽ ë³Žê³ ì ë³Žë¡ ì íëë€ë ê²ì
ëë€. ì€ì ë¡ ì€ì¹ë¥Œ ìííì§ ììµëë€. ë°ëŒì 구ííë ê²ìŽ ë ê°ëšíê³ í
ì€ížíêž° ì¬ìž ì ììµëë€.
@cjerdonek ëë ê·ž ììŽëìŽì ìë¬Žë° ë¬žì ê° ìë€ê³ ëŽ ëë€. ê·žë¬ë ê¶ê·¹ì ìŒë¡ ëêµ°ê°ê° ê·žê²ì 구ííŽìŒ íë©°(ëŽ ìê°ì @pradyunsg ê° ìŽë² 죌ë§ì ìì ì í ê²ìŽëŒê³ ìê°í©ëê¹?) íì ê·žë ë¯ìŽ ë ë§ì ìŽë €ììŽ ë°ê²¬ë ì ììµëë€.
ëê° ì¬ëŒììµëë€. ë€ë¥ž ì¬ëìŽ ìŽê²ì ë°ëŠ¬ë¬ ê°ê³ ì¶ë€ë©Ž ëë ìë€.
묞ì . :)
ëë ëí @dstufft ì ììŽëìŽë¥Œ ì¢ìí©ëë€.
2017ë 10ì 29ìŒ ìŒììŒ 08:47 xoviat, [email protected] ìì ë€ì곌 ê°ìŽ ìŒìµëë€.
@cjerdonek https://github.com/cjerdonek ëë 묞ì ê° ìë€ê³ ëŽ ëë€.
ê·ž ìê°. ê·žë¬ë ê¶ê·¹ì ìŒë¡ ëêµ°ê°ê° ê·žê²ì 구ííŽìŒíë€ê³ ìê°í©ëë€.
@pradyunsg https://github.com/pradyunsg ë ëê° ìì ì íë €ê³ íìµëë€
ìŽë² 죌ë§?) ê·žëŠ¬ê³ ìžì ëì²ëŒ ë ë§ì ìŽë €ììŽ ë°ê²¬ë ì ììµëë€.â
ë¹ì ìŽ ìžêžëìêž° ë묞ì ìŽê²ì ë°ë ê²ì ëë€.ìŽ ìŽë©ìŒì ì§ì ëµì¥íê³ GitHubìì íìžíìžì.
https://github.com/pypa/pip/issues/4802#issuecomment-340234567 ëë ììê±°
ì€ë ë
https://github.com/notifications/unsubscribe-auth/ADH7SYImpWgJGg-DzQRcO_9hHfE6ZxEAks5sw-5RgaJpZM4QBdSg
.
ë€ì ëììì @dstufftê° ì ìí ì€í+ëŽë¶ ížì¶ ì ê·Œ ë°©ìì ê³ì ì§ííìê² ìµëê¹?
/ping @ncoghlan @pfmoore @xavfernandez
ì, ë¶íí©ëë€. ìŽê²ì ììŒë¡ ëìê°êž° ìíŽ ë¬ŽììŽë .
pip 10 늎늬ì€ì êŽë šíì¬ PEP 517 ë° PEP 518ì ì ì¥ì ììœí ì ìë ì¬ëìŽ ììµëê¹? 구첎ì ìŒë¡:
ëŽ ëëì ì°ëŠ¬ê° ëŠŽëŠ¬ì€ ì°šëšêž°ë¥Œ êž°ë€ëŠ¬ê³ ìì§ë§ PEP 517/518 ì§ìì ê°ê¹ìì pip 10ì ì°šëší ì ìë€ë ê²ì ëë€. ê·žë¬ë PEP 518 구íì ìŒë¶ë¥Œ ì ìžíê³ ë ì묎ë #4647ìì ìì íê³ ìë€ê³ ìê°íì§ ììµëë€.
í ê°ì§ ëìì íì¬ PEP 518 ì§ìì ì í ì¬íì 묞ìííê³ #4647ì ëŠŽëŠ¬ì€ ì°šëšìì ë€ìŽê·žë ìŽëíë ê²ì ëë€. ëë ê·žê²ìŽ ì€í ê°ë¥íì§ ìêž° ìíŽ ì¬ì© ì¬ë¡ì ëíŽ ì¶©ë¶í ìì§ ëª»í©ëë€.
ë°©êž ìŽ í ë¡ ì 볎ììµëë€. í¬í¬ ííì²ëŒ ìëíêž° ì¬ìŽ ë°ì¯€ êµ¬ìŽ ìŽêž° 구íì ëíŽ ì¬ê³Œíê³ ìê°ì ëŽìŽ ìŽë¥Œ ìŽíŽíê³ ë ëì ììŽëìŽë¥Œ ìê°íŽ ëž ëªšë ë¶ë€ê» ê°ì¬ë늜ëë€.
FWIW, ë¹ë ì구 ì¬íì ìíŽ ë°íŽë¥Œ ì€ì¹íë ê²ìŒë¡ ì ííë ê²ìŽ 첫 ë²ì§ž ë²ì ì ëíŽ ìì© ê°ë¥í ì 충ììŽ ë ê²ìŽëŒê³ ìê°í©ëë€.
ìŽê²ì ëí flit ìì²Žê° ë¹ë ì구 ì¬íìŽ ìëëë¡ ë¬žì 륌 ìì íŽìŒ íšì ìêž°ìíµëë€.
í¬í¬ ííì²ëŒ ìëíêž° ì¬ìŽ ë°ì¯€ êµ¬ìŽ ìŽêž° 구íì ëíŽ ì¬ê³Œí©ëë€.
ì¬ê³Œë íì ììµëë€. ëŽê° ë§íë¯ìŽ 첫 ë²ì§ž ìëìì ìŽë¬í 묞ì 륌 ììž¡í ì ììµëë€. ì°ëŠ¬ê° ì§êž ìê³ ìë ê²ì ìë©Žìë PRì 믞룚멎 ìŽë¬í ë Œìê° ë¯žë€ì¡ì ê²ì ëë€.
ë§ì€í°ê° íì¬ íŽì ê°ë¥í ìíì ëê¹?
IIUC, íì¬ë¡ìë ìì€í ì ííì ëì§ ì ììµëë€. ê·ž ë§ìµëê¹? ê·žë ë€ë©Ž ê·žë ì§ ìë€ê³ ìê°í©ëë€.
PEP 517 ë°/ëë PEP 518ì ì¬ì©í ì ìì ëê¹ì§ pip 10ì ì§ì°ìí€ë ê²ìŽ í©ë¹í ìê° ëšìë¡ ìëí ê°ë¥ì±ìŽ ììµëê¹?
ëŽ ìê°ì ì¬ìŽ (ëšêž°) ì룚ì ì ë¹ë ì¢ ìì±ì ìíŽ ë°íŽë¡ ì ííë ê²ì ëë€. ë€ì죌ì íë² íŽë³Žë €ê³ í©ëë€. ê·žê²ìŽ ì€íëì§ ìëë€ë©Ž ë§ì€í°ìì íì¬ PEP 518 ì§ìì ì ê±°íê³ 10.0.0ì ìëŒë êŽì°®ì ê²ì ëë€.
PEP 518 구íì ìŒë¶ë¥Œ ì ìžíê³ ë ì묎ë #4647ìì ìì íê³ ìë€ê³ ìê°íì§ ììµëë€.
ìì€ ë¹ë ì¢ ìì±ìŽ íì©ë PEP 518ì ìì í 구íì ì믞í©ëê¹?
ì, ê·žëŠ¬ê³ #4647ì ëíŽ -- ìì @xoviat ì ì€ëª
ì ë°ë¥Žë©Ž ìì íë €ë©Ž ìœë ë³ê²œ/ìŽë ë° ê°ì²Žì ìì ê¶/ê°ìì±(í¹í BuildEnvironment
)ìŽ íìíë©° ìŽë ì¬ìí ìŒìŽ ìëëë€.
ëë ê·žê²ì ë°íŽë¡ ì ííë ê²ìŽ ë€ì ì€ì ë³ê²œíë ê²ì²ëŒ ê°ëšíŽìŒ íë€ê³ ìê°í©ëë€.
ìê²:
finder.format_control = FormatControl(set(), set([':all:']))
ë ë²ì§ž íëìë ë°ìŽë늬ë¡ë§ ì°Ÿì ì ìë íší€ì§ ìžížê° ììŒë©° ':all:'
ë 몚ë íší€ì§ë¥Œ ì믞íë í¹ë³í 겜ì°ê° ììµëë€.
ì. íì§ë§ ê·žê²ë§ìŒë¡ë #4647ì íŽê²°í ì ììµëë€. ëíìŽ ìœë ì€ ìŽë ê²ë ê°ì§ ììµëë€.
íŽê²°ì¬ë¥Œ íµíŽ.
2017ë 12ì 2ìŒ í ììŒ 01:23 Thomas Kluyver [email protected] ìì ë€ì곌 ê°ìŽ ìŒìµëë€.
ìŽê²ì ë°íŽë¡ ì ííë ê²ì ìŽê²ì ë³ê²œíë ê²ë§ íŒ ê°ëšíŽìŒíë€ê³ ìê°í©ëë€.
ëŒìž:ìê²:
finder.format_control = FormatControl(set(), set([':all:']))
ë ë²ì§ž íëìë ë°ìŽë늬ë¡ë§ ì°Ÿì ì ìë íší€ì§ ìžížê° ììµëë€.
몚ë íší€ì§ë¥Œ ì믞íë ':all:'ì í¹ë³í 겜ì°.â
ë¹ì ìŽ ìžêžëìêž° ë묞ì ìŽê²ì ë°ë ê²ì ëë€.ìŽ ìŽë©ìŒì ì§ì ëµì¥íê³ GitHubìì íìžíìžì.
https://github.com/pypa/pip/issues/4802#issuecomment-348598368 ëë ììê±°
ì€ë ë
https://github.com/notifications/unsubscribe-auth/ADH7SUi0QMS3rr5Iba90XWZmFweGmqeBks5s8FlEgaJpZM4QBdSg
.
ë§ìì, ë€ë¥ž 묞ì ê° ë§ìŽ ììµëë€. ê·žë¬ë ê·žê²ì ê°ì¥ ìêží êŽì¬ì¬ëŒê³ ìê°íë í¬í¬ ââíí í ë¬ë¥Œ ë°©ì§íŽìŒ í©ëë€.
ëêµ°ê°ê° ëŽ ìë PRì ìžìíë €ë 겜ì°("PEP 518 묞ì ìì "),
ë¹ë ê²©ëŠ¬ê° ëì§ ìëë¡ ë³ê²œíë ê²ìŽ ìŽë µì§ ìììŒ í©ëë€.
pyproject.toml ììŽ íì±íë©ëë€. ë³í©ëì§ ìì ìë ìŽì
ìì€ìì ì¢
ìì±ì ì€ì¹íë ì§ìì ì€ëšíë€ë ê²ì
ëë€.
PEP 518. ê·žë¬ë ìŽì ì¬ëë€ì PEP 518ìŽ
pip 10ì ì í í¬íšëì§ ìì ê²œì° íŽë¹ PRì ë ì ìì©í ì ììµëë€. ë
ê°ìžì ìŒë¡ ê·žê²ì ì¹íží ìê°ìŽ ìì§ë§ ë€ë¥ž ì¬ëë€ì ë§ì ìë ììµëë€.
ëª ì€ë§ ë³ê²œíë©Ž ëë¯ë¡
(PEP 518 í
ì€ížì ì€íšíë ê²ì ì ìžíê³ ).
ì¬ì€, ë ëì íëšì ë°íì¬ pip ê°ë°ìê° ëŽ ì¡°ê±Žì ëìíë€ë©Ž 곧 PEP 517곌 518ì 몚ë 구íí ì©ìê° ììµëë€.
1ì 묞ì ê° ììµëë€. ëë 2ì ââëíŽ ìŽë 쪜ìŽë ì ížíì§ ììµëë€.
2017ë 12ì 3ìŒ ìŒììŒ 02:36 xoviat [email protected] ìì ë€ì곌 ê°ìŽ ìŒìµëë€.
ì¬ì€, ë ëì íëšì ë°íŽ ëë ë PEP륌 몚ë 구íí ì©ìê° ììµëë€.
pip ê°ë°ìê° ëŽ ì¡°ê±Žì ëìíë©Ž 곧 517 ë° 518:
- ì¢ ìì±ì ì²ìì ë°íŽììë§ ë°ìí©ëë€.
- pipë ìŽêž°ì ëŽë¶ ë¹ë ë°±ìë륌 ê°ìµëë€.
ê²°êµ ì ê±°ë©ëë€â
ë¹ì ìŽ ìžêžëìêž° ë묞ì ìŽê²ì ë°ë ê²ì ëë€.ìŽ ìŽë©ìŒì ì§ì ëµì¥íê³ GitHubìì íìžíìžì.
https://github.com/pypa/pip/issues/4802#issuecomment-348720096 ëë ììê±°
ì€ë ë
https://github.com/notifications/unsubscribe-auth/ADH7ST6riptZkYMap5Z5SstRf-VmE7eAks5s8bu5gaJpZM4QBdSg
.
ì°žê³ ë¡ ì¡°ê±Žì ììì ìŽì§ ìì§ë§ ìŽêž° 구íì ê°ë¥íê² íêž° ìí ê²ì ëë€. @pfmoore ìŽê±° êŽì°®ëì?
ëë "ëì ë ëì íëšì ë°íì¬ ... ëŽ ì¡°ê±Žì ëìí©ëë€"ëŒë ì ìì ìŽì¡°ì í¹í ížíì§ ììµëë€. ë€ë¥ž pip ê°ë°ìë€ìŽ ìŽ ì ìì êž°êºŒìŽ ë°ìë€ìžë€ë©Ž ìŽì륌 ì êž°íì§ ìê² ì§ë§ ê°ìžì ìŒë¡ 구í ìžë¶ ì¬íì ëí ì 첎 í ë¡ ì ë€ì ììí ìê°ìŽ ììµëë€. Ʞ볞ì ìŒë¡, ëë ìŽê²ì ëíŽ @dstufft ì @xavfernandez ìê² ë§¡êžž ê²ì ëë€( @pradyunsg ë ìŽë¯ž ê·žì 견íŽë¥Œ ì ìíìµëë€).
ì ìì ìŽì¡°ë ìŽêž° 구í ë°©ìì ëí 귌볞ì ìž ë¶ìŒì¹ë¡ ìžíŽ 구í ë°©ë²ìŽ íìëìêž° ë묞ì ëë€. ëë ë€ë¥ž 구í í ë¡ ìŒë¡ ëìŽê°êž°ë³Žë€ë ì§êž ìì¹ì ëìíê³ ì¶ìµëë€.
ëë ëí í€ìŽ ë§€ì° ížìíì§ ìë€ë ê²ì ì§ì í ê²ì
ëë€.
ê·ž í€ìŽ ì¬ì©ë ìŽì ì ëíŽ ì€ëª
í ìê°ìŽë ìëì§ê° ììµëë€.
ë±. ëŽ ëìì ê°ê²°í ëëµì ëí ëìŒí ìŽì .
ìë§ë ìžêží ê°ì¹ê° ìì ê²ì
ëë€. ì ë ë°ìŽëëŠ¬ë§ ë¹ë ì¢
ìì±ì
ì¥êž°ê°ìŽ ìë 첫 ë²ì§ž 구íì
ëë€. ìŽê²ì ì ì©ëì§ ììµëë€
ë°íì ì¢
ìì±
ë
Γ).
2017ë 12ì 3ìŒ ìŒììŒ, 23:37 xoviat, [email protected] ìì ë€ì곌 ê°ìŽ ìŒìµëë€.
ì ìì ìŽì¡°ë ë°©ë²ìŽ ìêž° ë묞ì ìë ê·žëë¡ì ëë€.
ì ëí 귌볞ì ìž ë¶ìŒì¹ë¡ ìžíŽ 구íìŽ ì€ëšëììµëë€.
ìŽêž° 구íì ë€ì곌 ê°ìµëë€. ëë ì°šëŒëŠ¬ ëìíë€.
ìì¹ì ìŽì ë€ë¥ž 구í í ë¡ ìŒë¡ ëìŽê°ëë€.â
ë¹ì ìŽ ìžêžëìêž° ë묞ì ìŽê²ì ë°ë ê²ì ëë€.ìŽ ìŽë©ìŒì ì§ì ëµì¥íê³ GitHubìì íìžíìžì.
https://github.com/pypa/pip/issues/4802#issuecomment-348802032 ëë ììê±°
ì€ë ë
https://github.com/notifications/unsubscribe-auth/ADH7ScUh-BveonoTxZ5FkkeSynFvoLb8ks5s8uNRgaJpZM4QBdSg
.
ìì§í ë§íŽì, ìŽê²ì pip 10ì ìŽë¬í êž°ë¥ì í¬íšíë ê²ê³Œ êŽë šìŽ ìêž° ë묞ì ê²ì묌ì ìŽì¡°ì ëíŽ ë ë Œìíêž° ìíŽ ë€ë¥ž ì¬ëì ìê°ì íšê³Œì ìŒë¡ ì¬ì©íì§ ìì ì ììµëë€. ê·žë¬ë ëŽ ì¡°ê±ŽìŽ @pfmoore ( ì묎ë ì¬êž°ì ìê°ì ì§ë¶íì§ ìëë€ë ì ì ê°ìí ë ê·žë¬í 볎ìŠì í ì ìë€ê³ íìí ì¬ë), @dstufft ëë @xavfernandez.
ë€ì ë§íì§ë§ 조걎ì ì ê°ìžì ìž ìê²¬ìŽ ìëëŒ êµ¬í ì€ì¬ì ëë€. ìŽë¬í 조걎ì ìííë©Ž 구íì ìœìí ì ììŒë¯ë¡ PRì ì€ë¹íë ë° ìê°ì í ì íê³ ì¬ëë€ìŽ diff륌 ìœê³ "ì€, ìŽ ì€ìŽ ì ì¬êž°ì ììµëê¹?"ëŒê³ 묻ë ìë¯žê° ììµëë€. ê·žë° ë€ì "ì€, ë³í©í ì ììµëê¹?" PRì 목ì ìŽ ì íí 묎ììžì§ì ëí ì€íŽê° ììêž° ë묞ì ëë€.
ë€ì í€ì ëìíìµëë€. ëŽ ìì ì ëšìí ë³ê²œ ì¬í[1]ì ë³í©íì§ ìì ê²ìŽë¯ë¡ ì¬êž°ì ëŽ ê²¬íŽë ê·žë€ì§ ì€ìíì§ ììµëë€.
[1] ë¶ëª í, ëë 구íì ë³Žì§ ìê³ ë§íë ê²ìŽë¯ë¡ ëŽ ìŽì ê° ìœë íì§ì ëí ì°ë €ì êŽë šìŽ ìë€ë ê²ìŽ ë¶ëª íꞰ륌 ë°ëëë€. ìœë륌 충ë¶í ìŽíŽíëì§ íìží ìê°ìŽ ìêž° ë묞ì ëë€. Ʞ볞ì ìŒë¡ ë³í©í ìì¬ê° ììµëë€.
@xoviat ììì ë Œìí ë°ë³µì ì ê·Œ ë°©ì곌 ì¬ê·ì ì ê·Œ ë°©ìì ëí 구í ê³íì 묎ìì ëê¹?
ëí ëª íí íêž° ìíŽ ë³í©í ì ìë PEP 517 ë° 518ì ë¶ë¶ 구íì 뚌ì ìë£í ë€ì ë³í©í ì ìë ì 첎 구íì ìë£íë€ë ë§ììŽìëê¹? ìëë©Ž ë¶ë¶ì ìž êµ¬íë§ íê² ë€ê³ ë§ìíìë 걎ê°ì, ìëë©Ž ë³í©ìŽ ë¶ê°ë¥í ìë ìë ìŽêž° ëšê³ë¥Œ íµíŽ ì 첎 구íì íê² ë€ê³ ë§ìíìë 걎ê°ì? (ëë ë¶ë¶ì ìŒë¡ ê·íì ì견 ìì "ì²ìì"ì "ê²°êµ"ìŽ ì믞íë ë°ë¥Œ ë ì ìŽíŽíë €ê³ ë žë ¥íê³ ììµëë€.)
첫 ë²ì§ž 조걎ì ì 첎 ì¬ê· 묞ì 륌 ì ê±°í©ëë€.
ëí ëª íí íêž° ìíŽ ë³í©í ì ìë PEP 517 ë° 518ì ë¶ë¶ 구íì 뚌ì ìë£í ë€ì ë³í©í ì ìë ì 첎 구íì ìë£íë€ë ë§ììŽìëê¹?
ëŽê° ë§íê³ ì íë ê²ì ë¶ë¶ 구íì ìë£í ê²ìŽëŒë ê²ì ëë€. ìŽê²ì ì¬ì© ì¬ë¡ì 95%ìì ìëí©ëë€. í¹í ì¢ ìì±ì ë°íŽê° ìê³ (ì§êžì ë§€ì° ìŒë°ì ì) ë§ì Linux/windows/OSX íë«íŒ(ëë€ì ì¬ì©ì)ì ìë 겜ì°ì ê·žë ìµëë€.
ìì í 구íì ìëëë€. ê·žë¬ë ë³í© ë¶ê°ë¥í PRì ì»ë ë°©ë²ì íì€ì ì€ìíê±°ë ì€ìíì§ ìë "ì ë¶ ìëë©Ž ì 묎" ì ê·Œ ë°©ìì ìëíë ê²ì ëë€.
ì 첎 구í ìë ê°ê° ë³ëì PRìŽ íìí ìë¹í ë¶ìŸí 묞ì 륌 ì ë ¬íŽìŒ íë€ë ì ì ìŒëì ëììì€. [1]
[1] https://github.com/btc1/bitcoin/pull/11#issuecomment -313843216
ìŽì ìŽ ë¬žì 륌 ë«ê² ìµëë€. ë¹ë ì¢ ìì±ìŒë¡ í ë§ ì§ìíë pip 10ì PEP 518ì ëí ìë¹ ì§ììŽ ììµëë€. ìì í ì§ìì ëíŽ ë Œìíêž° ìí ìë¡ìŽ 묞ì ì PEP 517 ì§ìì ëí ë ë€ë¥ž 묞ì 륌 ìŽê² ìµëë€(êŽë šë ê²œì° ì¬êž°ìì ìžì©).
íµì°°ë ¥ê³Œ ëìì 죌ì @ncoghlan @rgommers @cjerdonek ìê² ê°ì¬ë늜ëë€. PEP 518ì ìŽêž° 구íì ëíŽ @takluyver ìê² ê°ì¬í©ëë€. ìŽë¬í ë³ê²œì 구ííë ë° ëìì ì€ @xoviat (íì¬ @ghost ê° ëš)ìê² ê°ì¬í©ëë€. íì¬ ì§ìì ê°ì íë ë° ëìì 죌ì @benoit-pierreìê² ê°ì¬ë늜ëë€.
ì¶ì : 100ë²ì§ž ëêž! :ë°ë€:
ìŽ ì€ë ëë ë«í í ìµê·Œ íëìŽ ììêž° ë묞ì ìëìŒë¡ ì 게ìµëë€. êŽë š ë²ê·žì ëí ì 묞ì 륌 ì¬ììì€.
ê°ì¥ ì ì©í ëêž
pkg_resources
ì ê°ì ìì¹ì ìºì ë묞ì ìŒë°ì ìŒë¡ íì íë¡ìžì€ ëŽë¶ìì ë³ëì pip ì€ì¹ê° íìí©ëë€(í늎 ì ìì).ê·žë ë€ê³
pip
륌 ížì¶íŽìŒ íë ê²ì ìëì§ë§ CLI륌 íµíŽ ë°ìŽí°ë¥Œ ì§ë ¬ííë API륌 ë§ë€ê³python -c "from pip._internals import coolapithing; coolapithing(sys.stdin.read())"
륌 ížì¶íê³ stdoutìì ë ë§ì ë°ìŽí°ë¥Œ ìœì ì ììµëë€. ìŽë¬í API륌 ì¬ì©íì¬ ì€íìŒë¡ ë³ííì¬ pip ížì¶ pip ížì¶ pip ížì¶ pip ížì¶ì ì¬ê· ì룚ì ì ì ííë ê²ìŽ ê°ë¥í©ëë€(몚ë ì¬ê·ë ì€íìŒë¡ë ì€ëª ë ì ìêž° ë묞ì), Ʞ볞ì ìŒë¡ ë¹ê³µê° API륌 ë§ëë ê²ì ëë€. íë¡ìžì€ë¡ ížì¶ë©ëë€.ëë ì¬ì í ìŽ ì€ë ë륌 ìœì ê³íì ëë€(ìµê·Œì ë§ì íìŽ íì íìµëë€!). ê·žë¬ë í ê°ì§ ë ì€ìí ì ì: ì°ëŠ¬ë ì€ì ë¡ ì¶ì ìŒì ìŽ ììŒë©° ìŽë€ 목í ë ì§ê° ìë ì€ë¹ê° ëë©Ž ì¶ìí©ëë€. ì°ëŠ¬ë ëëë¡ ì°ëŠ¬ê° ìžì ì¶ìíê³ ì¶ìì§ì ëí ìŒë°ì ìž ììŽëìŽë¥Œ ê°ì§ê³ ìì§ë§ ê·žê²ìŽ íì ë ê²ì ìëëë€.