Pip: рдкреАрдИрдкреА 518 рдХреА рдУрд░

рдХреЛ рдирд┐рд░реНрдорд┐рдд 21 рдЕрдХреНрддреВре░ 2017  ┬╖  101рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: pypa/pip

рдореИрдВ рдЗрд╕ рд╕рдкреНрддрд╛рд╣ рдХреЗ рдЕрдВрдд рдореЗрдВ AWOL рд╣реВрдВ, рд▓реЗрдХрд┐рди рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВ рдЗрд╕реЗ рд╕рдордЭрддрд╛ рд╣реВрдВ, PEP 518 рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░рдиреЗ рдФрд░ рдЗрд╕реЗ рдкрд╛рдЗрдк рдореЗрдВ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдореИрдВрдиреЗ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдЦреЛрд▓рд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдпрд╣ рдкрддрд╛ рдирд╣реАрдВ рд▓рдЧрд╛ рд╕рдХрд╛ рдХрд┐ рдЪрд░реНрдЪрд╛ рдХрд╣рд╛рдБ рд╣реЛ рд░рд╣реА рд╣реИ, рдпрджрд┐ рдпрд╣ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЗрд╕реЗ рдПрдХ рд╣реА рд╕реНрдерд╛рди рдкрд░ рд░рдЦрдирд╛ рдЬреЛ pypa-dev/distutils-sig рдирд╣реАрдВ рд╣реИ, рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛?

auto-locked maintenance

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

pkg_resources рдЬреИрд╕реЗ рд╕реНрдерд╛рдиреЛрдВ рдореЗрдВ рдХреИрд╢ рдХреА рд╡рдЬрд╣ рд╕реЗ рдЖрдо рддреМрд░ рдкрд░ рдЙрдкрдкреНрд░реЛрд╕реЗрд╕ рдХреЗ рдЕрдВрджрд░ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдЕрд▓рдЧ рдкрд╛рдЗрдк рдЗрдВрд╕реНрдЯреЙрд▓ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ (рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореИрдВ рд╡рд╣рд╛рдВ рдЧрд▓рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реВрдВ)ред

рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ pip рдкрд░ рдХреЙрд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЖрдк рдПрдХ рдПрдкреАрдЖрдИ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рд╕реАрдПрд▓рдЖрдИ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдбреЗрдЯрд╛ рдХреЛ рдХреНрд░рдордмрджреНрдз рдХрд░рддрд╛ рд╣реИ рдФрд░ python -c "from pip._internals import coolapithing; coolapithing(sys.stdin.read())" рдкрд░ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИ рдФрд░ рд╕реНрдЯрдбрдЖрдЙрдЯ рд╕реЗ рдЕрдзрд┐рдХ рдбреЗрдЯрд╛ рдкрдврд╝рддрд╛ рд╣реИред рдкрд╛рдЗрдк рдХреЗ рдХреЙрд▓рд┐рдВрдЧ рдкрд┐рдкреНрд╕ рдХреЙрд▓рд┐рдВрдЧ рдкрд┐рдкреНрд╕ рдХреЙрд▓рд┐рдВрдЧ рдкрд┐рдкреНрд╕ рдХреЗ рдкреБрдирд░рд╛рд╡рд░реНрддреА рд╕рдорд╛рдзрд╛рди рдХреЛ рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реНрдЯреИрдХ рдореЗрдВ рдмрджрд▓рдирд╛ рд╕рдВрднрд╡ рд╣реЛрдЧрд╛ (рдХреНрдпреЛрдВрдХрд┐ рд╕рднреА рд░рд┐рдХрд░реНрд╕рди рдХреЛ рд╕реНрдЯреИрдХ рдХреЗ рд░реВрдк рдореЗрдВ рднреА рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ), рдЖрдк рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рдПрдХ рдирд┐рдЬреА рдПрдкреАрдЖрдИ рдмрдирд╛ рд░рд╣реЗ рд╣реЛрдВрдЧреЗ рдЬрд┐рд╕реЗ рдПрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред

рдореИрдВ рдЕрднреА рднреА рдЗрд╕ рдзрд╛рдЧреЗ рдХреЛ рдкрдврд╝рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣рд╛ рд╣реВрдВ (рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдХрддрд╛рдИ рдкреНрд▓реЗрдЯреЛрдВ рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рдерд╛!), рд▓реЗрдХрд┐рди рдПрдХ рдмрд╛рдд рдкрд░: рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд░рд┐рд▓реАрдЬ рд╢реЗрдбреНрдпреВрд▓ рдирд╣реАрдВ рд╣реИ, рд╣рдо рд░рд┐рд▓реАрдЬ рдХрд░рддреЗ рд╣реИрдВ рдЬрдм рдпрд╣ рдХрд┐рд╕реА рд▓рдХреНрд╖реНрдп рддрд┐рдерд┐ рдкрд░ рддреИрдпрд╛рд░ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рд╣рдо рдХрднреА-рдХрднреА рдХреБрдЫ рд╕рд╛рдорд╛рдиреНрдп рд╡рд┐рдЪрд╛рд░ рд░рдЦрддреЗ рд╣реИрдВ рдХрд┐ рд╣рдо рдХрдм рд░рд┐рд▓реАрдЬрд╝ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдХрднреА рдкрддреНрдерд░ рдореЗрдВ рд╕реЗрдЯ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред

рд╕рднреА 101 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

4799 рд╡рд╣ рдЬрдЧрд╣ рд╣реИ рдЬрд╣рд╛рдВ рдмрд╣реБрдд рдмрд╣рд╕ рд╣реЛ рд░рд╣реА рд╣реИред рдпрд╣ рдЬреНрдпрд╛рджрд╛рддрд░ рджреНрд╡рд╛рд░рд╛ рдкреНрд░реЗрд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛:

  1. рдореИрдВ рд╕рдордЭ рдЧрдпрд╛ рдерд╛ рдХрд┐ рдкреАрдИрдкреА 518 рд╕рдорд░реНрдерди рдХреЗ рд▓рд┐рдП рдПрдХрдорд╛рддреНрд░ рдмрдХрд╛рдпрд╛ рдЕрд╡рд░реЛрдзрдХ #4764 рдерд╛ (https://github.com/pypa/pip/pull/4144#issuecomment-302711736 рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ)
  2. рдлрд┐рд░ #4799 рдЖрдпрд╛, рдФрд░ рдореИрдВрдиреЗ рдЗрд╕реЗ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рджреЗрдЦрд╛ рдХрд┐ рдХреНрдпрд╛ рдореИрдВ @xoviat рджреНрд╡рд╛рд░рд╛ рдХрд┐рдП рдЬрд╛ рд░рд╣реЗ рд╕рднреА рдкреНрд░рдЧрддрд┐ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рд╕рдордЭ рд╕рдХрддрд╛ рд╣реВрдВред
  3. рдЙрд╕ рджреМрд░рд╛рди, #4647 рдПрдХ рд░рд┐рд▓реАрдЬ рдЕрд╡рд░реЛрдзрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдпрд╣ рдХрд╣рддреЗ рд╣реБрдП рд╕рд╛рдордиреЗ рдЖрдпрд╛ рдХрд┐ рдкреАрдИрдкреА 518 рд╕рдорд░реНрдерди рдЯреВрдЯ рдЧрдпрд╛ рдерд╛ред

рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдХрд┐ @xoviat #4799 рдореЗрдВ рдХреНрдпрд╛ рдХрд╣ рд░рд╣рд╛ рдерд╛, рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реЛ рдЧрдпрд╛ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдмрд┐рд▓реНрдб рд╡рд╛рддрд╛рд╡рд░рдг рдХреЗ рдкреБрдирд░рд╛рд╡рд░реНрддреА рднрд╡рди рдХреЗ рдЖрд╕рдкрд╛рд╕ рдХреБрдЫ рдореБрджреНрджреЗ рдереЗ (X рдХреЛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП Y рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдФрд░ Y рдХреЛ Z рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, ...) рд╣рд╛рд▓рд╛рдВрдХрд┐ I' рдореИрдВ рдЕрднреА рднреА рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реВрдВ рдХрд┐ рдХреНрдпрд╛ рдпреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдмрдЧ, рдЧрд╣рд░реА рдбрд┐рдЬрд╛рдЗрди рд╕рдорд╕реНрдпрд╛рдПрдВ, рдпрд╛ рдЦрд░рд╛рдм рдХреЛрдиреЗ рдХреЗ рдорд╛рдорд▓реЗ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рд╣рдо рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╕рдорд╕реНрдпрд╛ рдХреЗ рдмрд┐рдирд╛ рд╕реНрдердЧрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдирд┐рдЬреА рддреМрд░ рдкрд░, рдореИрдВ рдЙрд╕ рдмрд┐рдВрджреБ рдкрд░ рд╣реВрдВ рдЬрд╣рд╛рдВ рдореИрдВ рдЕрдкрдиреА рдЧрд╣рд░рд╛рдИ рд╕реЗ рдмрд╛рд╣рд░ рд╣реВрдВред рдореБрдЭреЗ рд╕рдордЭ рдирд╣реАрдВ рдЖ рд░рд╣рд╛ рд╣реИ рдХрд┐ @xviat рдХреЗ рдХреНрд░рд┐рдпрд╛рдиреНрд╡рдпрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВ, рдпрд╛ рдпрджрд┐ рд╣рдореЗрдВ рдЕрднреА рднреА #4764 рдХреЛ рдорд░реНрдЬ рдХрд░рдиреЗ рдФрд░ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП #4647 рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рди рд╣реА рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ #4647 рдХреЛ рдареАрдХ рдХрд░рдирд╛ рдХрд┐рддрдирд╛ рдЖрд╕рд╛рди рд╣реЛрдЧрд╛ ( @xoviat рдпрд╣ рдХрд╣ рд░рд╣рд╛ рд╣реИ рдХрд┐ #4647 рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдореЗрдВ #4799 рдХреЛ рдорд░реНрдЬ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдЕрдкрдиреА рд╕рдорд╕реНрдпрд╛рдПрдВ рд▓рд╛рддрд╛ рд╣реИ)ред

рдЗрд╕ рд╕рдкреНрддрд╛рд╣ рдХреЗ рдЕрдВрдд рдореЗрдВ рдЪрд░реНрдЪрд╛ рдХреЛ рдЖрдЧреЗ рдмрдврд╝рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдореЗрд░реЗ рдкрд╛рд╕ рд╕рдордп рдФрд░ рдКрд░реНрдЬрд╛ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЧрдИ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░ (рдХрдо рд╕реЗ рдХрдо рдереЛрдбрд╝реА рджреЗрд░ рдХреЗ рд▓рд┐рдП) рдЫреЛрдбрд╝рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВред рдореЗрд░реЗ рд▓рд┐рдП, рдореБрдЦреНрдп рдмрд┐рдВрджреБ рдпрд╣ рд╣реИ рдХрд┐ рд╣рдо рдкрд╛рдЗрдк 10 рдХреЗ рд▓рд┐рдП рдкреАрдИрдкреА 518 рд╕рдорд░реНрдерди рдХрд╛ рдПрдХ рд╕реНрд╡реАрдХрд╛рд░реНрдп рд╕реНрддрд░ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдореИрдВ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдХреЛрдИ рдореБрдЭреЗ рдпрд╣ рдорд╣рд╕реВрд╕ рдХрд░рд╛рдП рдХрд┐ рд╣рдо рд▓рдЧрднрдЧ рд╡рд╣рд╛рдВ рд╣реИрдВ, рдпрд╛ рд╣рдо рд╕рдкреНрддрд╛рд╣ рджреВрд░ рд╣реИрдВ, рддрд╛рдХрд┐ рдореИрдВ рд▓реЛрдЧреЛрдВ рдХреЛ рдЗрд╕ рдмрд╛рдд рд╕реЗ рдкрд░реЗрд╢рд╛рди рд╣реЛрдиреЗ рд╕реЗ рдмрдЪрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдкреАрдЖрдИрдкреА 10 рдЖ рд░рд╣рд╛ рд╣реИ, рддрднреА рдХрд╣реЗрдВ рдХрд┐ рдпрд╣ рдирдП рд╕рд╛рд▓ рддрдХ рдирд╣реАрдВ рд╣реЛрдЧрд╛ ...

рдПрдХ рдмрд╣реБрдд рд╣реА рдЙрдкрдпреЛрдЧреА рд╕рд╛рд░рд╛рдВрд╢ @pfmoore рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред

@ncoghlan @dstufft @xoviat рдХреНрдпрд╛ рд╣рдо рдХреГрдкрдпрд╛ рдпрд╣рд╛рдВ рдЪрд░реНрдЪрд╛ рд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ? рдЗрд╕реЗ рдмрдВрдж рдкреАрдЖрд░ рдкрд░ рдХрд░рдирд╛ рдореБрдЭреЗ рдЕрдЬреАрдм рд▓рдЧрддрд╛ рд╣реИред ._.

рдЬрд╝рд░реВрд░ред

@pradyunsg рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЗрд╕рдХреЗ рд▓рд┐рдП рд╕рдордп рдирд╣реАрдВ рд╣реИред рд▓реЗрдХрд┐рди рдЖрдк рдореЗрд░реА рддреБрд▓рдирд╛ рдореЗрдВ рдкреАрдЖрд░ рдХреЛ рд╕реНрд╡реАрдХреГрдд рдХрд░рдиреЗ рдореЗрдВ рдЕрдзрд┐рдХ рд╕рдлрд▓ рд░рд╣реЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдпрджрд┐ рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдореБрдЭреЗ рдЖрдкрдХреЛ рд╡рд░реНрддрдорд╛рди рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди, рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЗрд╕рдХреА рд╕рдВрднрд╛рд╡рд┐рдд рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрддрд╛рдХрд░ рдмрд╣реБрдд рдЦреБрд╢реА рд╣реЛрдЧреАред рдореИрдВ рд╕рдордЭрд╛рдКрдВрдЧрд╛ рдХрд┐ рдореИрдВрдиреЗ рдЗрди рд╕рдорд╕реНрдпрд╛рдУрдВ рдореЗрдВ рд╕реЗ рдХреБрдЫ (рд▓реЗрдХрд┐рди рд╕рднреА рдирд╣реАрдВ) рдХреЛ рдХреИрд╕реЗ рд╣рд▓ рдХрд┐рдпрд╛ рдФрд░ рдореЗрд░реЗ рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП (рдЬреЛ рдлрд┐рд░ рд╕реЗ, рдореИрдВ рдкреАрдИрдкреА 517 рдХреЗ рдмрд╛рдж рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдЕрдЧрд░ рдпрд╣ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ)ред рдореИрдВ рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ рдкрд░рд╡рд╛рд╣ рдирд╣реАрдВ рдХрд░рддрд╛ рдХрд┐ рдХреМрди рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдЬрдм рддрдХ рдпрд╣ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЖрдк AWOL рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдПрдХ рд╕рд╛рд░рд╛рдВрд╢ рд▓рд┐рдЦрдиреЗ рджреЗрдВ:

pip рдореЗрдВ рдПрдХ рд╡рд╕реНрддреБ рдкрджрд╛рдиреБрдХреНрд░рдо рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдЕрдзрд┐рдХрд╛рдВрд╢ рдкрд╛рдпрдерди рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдЖрдо рд╣реИред рдпрд╣ рд╕рдм рдХрдорд╛рдВрдб рд╢реБрд░реВ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд▓рд┐рдП рдирдП рд╕рдВрджрд░реНрдн рдмрдирд╛рддрд╛ рд╣реИ, рдЬреЛ рдХрдо рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд▓рд┐рдП рдирдП рд╕рдВрджрд░реНрдн рдмрдирд╛рддрд╛ рд╣реИред рдпрд╣ рдПрдХ рдкреЗрдбрд╝ рдХреА рддрд░рд╣ рд╣реИред

рдореИрдВ рдХрд┐рд╕реА рд╡рд╕реНрддреБ рдХреЗ "рджрд╛рдпрд░реЗ" рдХреЛ рдПрдХ рдкреНрд░рдХрд╛рд░ рдХреЗ рдЬреАрд╡рдирдХрд╛рд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реВрдБрдЧрд╛ред рдпрд╣ рд╡рд╣ рдЕрд╡рдзрд┐ рд╣реИ рдЬрдм рдХреЛрдИ рд╡рд╕реНрддреБ рдореМрдЬреВрдж рд╣реЛрддреА рд╣реИред рдЕрднреА, pip рдореЗрдВ PEP 518 рдХрд╛ рджрд╛рдпрд░рд╛ WheelBuilder рд╣реИред PEP 518 рд╡рд╛рддрд╛рд╡рд░рдг рдХреЛ bdist_wheel рдХреЗ рд▓рд┐рдП рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдлрд┐рд░ рдЙрд╕ рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ bdist_wheel рдЪрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рдкрд░реНрдпрд╛рд╡рд░рдг рдХреЛ рддреЛрдбрд╝ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рддреЛ рдЗрд╕рдореЗрдВ рджрд┐рдХреНрдХрдд рдХреНрдпрд╛ рд╣реИ? рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдкреАрдИрдкреА 518 рдкрд░реНрдпрд╛рд╡рд░рдг рдХрд╛ рджрд╛рдпрд░рд╛ setup.py рдкрд░ рд╕рднреА рдХреЙрд▓реЛрдВ рдХреЗ рджрд╛рдпрд░реЗ рдХреЗ рдмрд░рд╛рдмрд░ рдпрд╛ рдЙрд╕рд╕реЗ рдЕрдзрд┐рдХ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЕрдзрд┐рдХ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдЗрд╕реЗ рдПрдХ рдРрд╕реА рд╡рд╕реНрддреБ рдХреЛ рд╕рдорд╛рд╣рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬреЛ setup.py рдХреЙрд▓ рдХреА рдЕрд╡рдзрд┐ рдХреЗ рджреМрд░рд╛рди рдореМрдЬреВрдж рд╣реЛред рд╡рд╣ рд╡рд╕реНрддреБ рд╣реИ Requirement ред

рдЖрдкрдХреЗ рд╕рд╛рдордиреЗ рдкрд╣рд▓рд╛ рд╕реНрдкрд╖реНрдЯ рдирд┐рд░реНрдгрдп рдпрд╣ рд╣реЛрдЧрд╛: BuildEnvironment рдХрд╛ рд╕рдВрджрд░реНрдн рдХреНрдпрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ Requirement рдХрд┐рд╕реА рднреА рддрд░рд╣ рдПрдХ рдЕрдЪреНрдЫреА рдЬрдЧрд╣ рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣ рд╕рдВрджрд░реНрдн рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП IMHO рдХреА рд╕рдмрд╕реЗ рдЕрдЪреНрдЫреА рдЬрдЧрд╣ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ setup.py рдХреЛ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдпрджрд┐ рдФрд░ рдХреЗрд╡рд▓ Requirement рдореМрдЬреВрдж рд╣реИред

рдЖрдкрдХреЗ рд╕рд╛рдордиреЗ рдЖрдиреЗ рд╡рд╛рд▓реА рдЕрдЧрд▓реА рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ: рд╣рдо BuildEnvironment рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЛ рдХреИрд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╣реИрдВ? рд╣рдо рдХреЗрд╡рд▓ pip рддрдХ рдЦреЛрд▓ рд╕рдХрддреЗ рд╣реИрдВред рдФрд░ рдпрд╣реА рд╡рд╣ рдирд┐рд░реНрдгрдп рд╣реИ рдЬреЛ рдореВрд▓ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рд▓реЗрдХрд┐рди рдЗрд╕рдореЗрдВ рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реИ: pip рдХреЗ рдкрд╛рд╕ рдпрд╣ рдЬрд╛рдирдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдХрд┐рддрдиреЗ рд╢реЗрд▓ рдХреЙрд▓ рдХрд░ рд░рд╣рд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдкреНрд░рддреНрдпреЗрдХ pip рдЦреБрдж рдХреЛ рдлрд┐рд░ рд╕реЗ рдХреЙрд▓ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрджрд┐ pip рдмрд╣реБрдд рдЕрдзрд┐рдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рдЬрдиреНрдо рджреЗрддрд╛ рд╣реИ, рддреЛ рдкрд░рд┐рдкрддреНрд░ рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рд╕рд╛рде рджреБрд░реНрднрд╛рд╡рдирд╛рдкреВрд░реНрдг рд░реВрдк рд╕реЗ рдирд┐рд░реНрдорд┐рдд рдкреИрдХреЗрдЬ рдХрд┐рд╕реА рдХреЗ рдХрдВрдкреНрдпреВрдЯрд░ рдХреЛ рдХреНрд░реИрд╢ рдХрд░ рд╕рдХрддрд╛ рд╣реИред

рдПрдХ рдФрд░ рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рд╣рдореЗрдВ рдХреМрди рд╕реА рд╢реЗрд▓ рдХреЙрд▓ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП? рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрдкрдХреЗ рд╡рд┐рдЪрд╛рд░ рд╕реЗ рдЕрдзрд┐рдХ рдХрдард┐рди рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдХрдорд╛рдВрдб-рд▓рд╛рдЗрди рдкреИрд░рд╛рдореАрдЯрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдПрдХ рдкрд┐рдЯрд╛ рд╣реИ рдЬрд╣рд╛рдВ рдЖрдкрдХреЛ рд╡рд╣ рдХреЙрд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рддреЛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рдмрдЪреНрдЪреЗ рдХреЛ рджрд┐рдП рдЧрдП рдореВрд▓ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рдкрд╛рд╕ рдХрд░рдиреЗ рдореЗрдВ рдЖрдкрдХреЛ рдкрд░реЗрд╢рд╛рдиреА рд╣реЛред рдореВрд▓ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рд╕рдорд╛рдзрд╛рди рдореЗрдВ finder рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╢рд╛рдорд┐рд▓ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдЗрд╕рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛ рдЬрд╛рдирддреЗ рд╣реИрдВред

рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХреЗ рдкреНрд░рдмрдВрдзрдХ рд╡рд░реНрдЧ рдХреЗ рдмрд┐рдирд╛ рдЕрдкрдиреЗ рдЖрдк рдХреЛ рдПрдХ рдмрдЪреНрдЪреЗ рдХреЛ рдмрд╛рд╣рд░ рдирд┐рдХрд╛рд▓рдирд╛ рдЬреЛ рдмрдЪреНрдЪреЛрдВ рдХреЛ рдорд╛рд░ рд╕рдХрддрд╛ рд╣реИ рдЬрдм рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ ctrl + C рджрдмрд╛рддрд╛ рд╣реИ, рдпрд╣ рдЧрд▓рдд рдирд╣реАрдВ рд╣реИ, рдпрд╣ рджреБрд░реНрднрд╛рд╡рдирд╛рдкреВрд░реНрдг рд╣реИ, рдЦрд╛рд╕рдХрд░ рдЬрдм рдЖрдк рдирд╣реАрдВ рдЬрд╛рдирддреЗ рдХрд┐ рдЖрдкрдиреЗ рдХрд┐рддрдиреА рдкреНрд░рдХреНрд░рд┐рдпрд╛рдПрдВ рдкреИрджрд╛ рдХреА рд╣реИрдВред рдореИрдВ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рдирд╣реАрдВ рдЬрд╛рдирддрд╛ рдХрд┐ рдмрдЪреНрдЪреЗ рд╡рд░реНрддрдорд╛рди рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ рдорд░ рдЬрд╛рддреЗ рд╣реИрдВ (рдпрд╣ рдПрдлрдпреВрдбреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ), рд▓реЗрдХрд┐рди рдпрджрд┐ рд╡реЗ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╡рд░реНрддрдорд╛рди рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЖрдИрдПрдордПрдЪрдУ рдЧрд▓рдд рд╣реИ (рдЕрдиреНрдп рдЪрд┐рдВрддрд╛рдУрдВ рд╕реЗ рдЕрд▓рдЧ)ред

рдЙрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЗ рдХреБрдЫ рд╕рдВрднрд╛рд╡рд┐рдд рд╕рдорд╛рдзрд╛рди рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╣реИрдВ:

  1. рдпрджрд┐ рдЖрдк рдкреАрдИрдкреА 518 рдХреЛ рджрд░рд╡рд╛рдЬреЗ рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд╛рд▓рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреА рд╕рдмрд╕реЗ рдЕрдЪреНрдЫреА рд╢рд░реНрдд рд╢рд╛рдпрдж рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХреА рд▓реЙрдХрдлрд╛рдЗрд▓ рд╣реИ рдЬреЛ рдХреЗрд╡рд▓ 10 рддрд╛рд▓реЗ рддрдХ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИ рдпрд╛ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдкрд╛рдЗрдк рдЕрдирдВрдд рд░реВрдк рд╕реЗ рдЧреБрдгрд╛ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИред рдлрд┐рд░ рдЖрдк рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рддрд░реНрдХреЛрдВ рдХреЗ рд╕рд╛рде рдмрдЪреНрдЪреЗ рдХреЛ рд╕рдЯреАрдХ рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЛ рдкрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

  2. рдПрдХ рдЙрдЪрд┐рдд рд╕рдорд╛рдзрд╛рди, рдЬрд┐рд╕реЗ рдореИрдВ рдкреАрдИрдкреА 517 рдХреЗ рдмрд╛рдж рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рдПрдХ BuildEnvironmentManager рд╡рд░реНрдЧ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреЛ рд╕реАрдзреЗ install рдХрдорд╛рдВрдб рдореЗрдВ рдкреНрд░рд╛рд░рдВрдн рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реЛред BuildEnvironmentManager рдореЗрдВ рд╕рднреА рд╡рд╕реНрддреБрдУрдВ рдХрд╛ рд╕рдВрджрд░реНрдн рд╣реЛрдЧрд╛ ( RequirementPreparer , WheelBuilder , рдЖрджрд┐), рдФрд░ рдПрдХ рд╣реА рд╡рд┐рдзрд┐ рд╣реЛрдЧреА: get_build_environment(requirement_set) ред рдлрд┐рд░ рдЖрдк RequirementPreparer рдкрд░ рдПрдХ рд╡рд┐рдзрд┐ рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдХрд┐ set_build_environment_manager рдЬреИрд╕рд╛ рдХреБрдЫ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╡рд╣ рдмрд┐рд▓реНрдб рд╡рд╛рддрд╛рд╡рд░рдг рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░ рд╕рдХрддрд╛ рд╣реИред BuildEnvironmentManager рдПрдХ рд╣реА рд╡рд╛рддрд╛рд╡рд░рдг рдХреЗ рдХрдИ рдЙрдкрдпреЛрдЧреЛрдВ рдХрд╛ рднреА рдкрддрд╛ рд▓рдЧрд╛ рд╕рдХрддрд╛ рд╣реИ (рдЖрдорддреМрд░ рдкрд░ ['setuptools', 'wheel'] ) рдФрд░ рдПрдХ рд╣реА рд╡рд╛рддрд╛рд╡рд░рдг рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдпрджрд┐ рдЗрд╕рдХреА рдХрдИ рдмрд╛рд░ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рддрд╛рдХрд┐ рдЖрдкрдХреЛ рдЗрд╕реЗ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рди рд╣реЛ (рд╢реБрд░реВ рдореЗрдВ рдмрд╣реБрдд рд╕рд╛рдорд╛рдиреНрдп рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд╕рд╛рде pyproject.toml рдирд╣реАрдВ)ред рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ рд╕рд░реНрдХреБрд▓рд░ рд╕рдВрджрд░реНрднреЛрдВ (рддреБрдЪреНрдЫ рдирд╣реАрдВ) рдХреЛ рд╣рдЯрд╛рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдУрдУрдкреА рдбрд┐рдЬрд╝рд╛рдЗрди рднреА рд╣реЛрдВрдЧреЗред

@xoviat рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдЬрд╛рдирдмреВрдЭрдХрд░ рджреНрд╡реЗрд╖ рдХреЗ рдорд╛рдорд▓реЗ рдХреЛ рдХрд╡рд░ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдХреНрдпрд╛ рдореИрдВ рдпрд╣ рд╕реЛрдЪрдиреЗ рдореЗрдВ рд╕рд╣реА рд╣реВрдВ рдХрд┐ рдПрдХ рдмрд┐рд▓реНрдб рдХреИрд╢ (рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рддрдм рднреА рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдЬрдм --no-binary :all: рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛) рди рдХреЗрд╡рд▓ рдкреВрд░реНрдг рдХрд┐рдП рдЧрдП рдмрд┐рд▓реНрдб рдХреЛ рдЯреНрд░реИрдХ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХреЗ рд╕рд╛рде, рдмрд▓реНрдХрд┐ рдЗрд╕рдореЗрдВ рднреА -рдкреНрд░рдЧрддрд┐ рд╡рд╛рд▓реЗ, рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛрдВрдЧреЗ рдХрд┐ рдирд┐рд░реНрдорд╛рдг рдирд┐рд░реНрднрд░рддрд╛ рдЪрдХреНрд░ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЧрдпрд╛ рд╣реИ? рдпрд╣ рдЖрдкрдХреЗ рдкрд╣рд▓реЗ рд╕реБрдЭрд╛рд╡ рдХрд╛ рдПрдХ рдкреНрд░рдХрд╛рд░ рд╣реЛрдЧрд╛ (рд╕рдорд╡рд░реНрддреА рдкрд╛рдЗрдк рдЖрдордВрддреНрд░рдгреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдкрд░ рдПрдХ рдХреНрд░реЙрд╕-рдкреНрд░реЛрд╕реЗрд╕ рд╕реАрдорд╛), рд▓реЗрдХрд┐рди рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╕реБрдзрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛:

  1. рдорд╢реАрди рдкрд░ рдХреЗрд╡рд▓ рдПрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдПрдХ рд╣реА рдкреИрдХреЗрдЬ рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рд╣реИ
  2. рдПрдХ рд╢реАрд░реНрд╖ рд╕реНрддрд░ "рдмрд┐рд▓реНрдб рдЖрдИрдбреА" рд╣реИ рдЬреЛ рдкрд╛рдЗрдк рдХрд┐рд╕реА рднреА рдЙрдк-рдмрд┐рд▓реНрдб рдХреЗ рдкрд╛рд╕ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ рдЗрд╕реЗ рдкреИрджрд╛ рдХрд░рддрд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рд╢реАрд░реНрд╖ рд╕реНрддрд░ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рдкреАрдЖрдИрдбреА тАЛтАЛтАЛтАЛрдмрдирд╛рдП рдЬрд╛ рд░рд╣реЗ рдкреИрдХреЗрдЬ рдХреЗ рдирд╛рдо рдХреЗ рд╕рд╛рде рд╕рдВрдпреБрдХреНрдд)
  3. рдпрджрд┐ рдмрд┐рд▓реНрдб рдХреИрд╢ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕реА рднрд┐рдиреНрди рдмрд┐рд▓реНрдб рдЖрдИрдбреА рджреНрд╡рд╛рд░рд╛ рдХреБрдЫ рдмрдирд╛рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ, рддреЛ рдЙрд╕ рдмрд┐рд▓реНрдб рдХреЗ рд╕рдорд╛рдкреНрдд рд╣реЛрдиреЗ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗрдВ
  4. рдпрджрд┐ рдмрд┐рд▓реНрдб рдХреИрд╢ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдПрдХ рд╣реА рдмрд┐рд▓реНрдб рдЖрдИрдбреА рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХреБрдЫ рдмрдирд╛рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ, рддреЛ рд╕рд░реНрдХреБрд▓рд░ рдирд┐рд░реНрднрд░рддрд╛ рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рдиреЗ рдореЗрдВ рддреНрд░реБрдЯрд┐ рдХреЗ рд╕рд╛рде рдЬрдорд╛рдирдд рджреЗрдВ, рдФрд░ рдпрд╣ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ рдХрд┐ рдмрд┐рд▓реНрдб рдХреЛ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП --binary <name> рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА

pip рдХреЛ рднреА setuptools рдФрд░ wheel рдХреЛ setuptools рдФрд░ wheel рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рддрд░реНрдХ рд╕реЗ рдЫреВрдЯ рджреЗрдиреЗ рдХреЗ @pfmoore рдХреЗ рд╕реБрдЭрд╛рд╡ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред wheel рдмрд┐рд▓реНрдб рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ, рдЕрдиреНрдпрдерд╛ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдмрд┐рд▓реНрдб рдирд┐рд░реНрднрд░рддрд╛ рдЗрдВрдЬреЗрдХреНрд╢рди рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ рдкрд░рд┐рдкрддреНрд░ рдирд┐рд░реНрднрд░рддрд╛ рдкрд╣рдЪрд╛рди рддрд░реНрдХ рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХрд░реЗрдЧрд╛ред

OOP рдбрд┐рдЬрд╝рд╛рдЗрди рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рд╕реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдПрдХ рдмреБрд░рд╛ рд╡рд┐рдЪрд╛рд░ рдирд╣реАрдВ рд╣реИред рдпрд╣ рдкреАрдИрдкреА 518 рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдФрд░ рдмрд╕ рдПрдХ рд╕рд╛рде рдХреБрдЫ рд╣реИрдХ рдХрд░рдиреЗ рдХреЗ рдмреАрдЪ рдПрдХ рдордзреНрдпрд╡рд░реНрддреА рд╡рд┐рдХрд▓реНрдк рдХреА рддрд░рд╣ рд╣реИред

рдпрд╣ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдХрдВрдЯреЗрдирд░реАрдХреГрдд рд╡рд╛рддрд╛рд╡рд░рдг рдФрд░ рдХреНрд░реЛрдЯреНрд╕ рдХреЗ рд╕рд╛рде рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдмрд╛рддрдЪреАрдд рдХрд░реЗрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкрд╛рдпрдерди рд╕реНрддрд░ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЛ рдПрдХ-рджреВрд╕рд░реЗ рд╕реЗ рдЕрд▓рдЧ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рд╕реНрддрд░ рдХреЗ рдЯреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдВрдЧреЗ, рдЗрд╕рд▓рд┐рдП рдкрд╛рдЗрдк рдХреЛ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА рдХрд┐ рдХреИрд╕реЗ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдЙрдк-рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдП рдПрдХ рджреВрд╕рд░реЗ рдХрд╛ рд╕рд╣рдпреЛрдЧ рдХрд░реЗрдВред

@xoviat рдЙрдкрд░реЛрдХреНрдд рд╕рд╛рд░рд╛рдВрд╢ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдХрд╣рд╛ рдерд╛, рдореИрдВ рдЗрд╕ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдХреЛрдб рдХреА рдореЗрд░реА рд╕рдордЭ рдХреА рд╕реАрдорд╛ рддрдХ рдкрд╣реБрдВрдЪ рдЧрдпрд╛ рд╣реВрдВ, рдФрд░ рдЖрдкрдХреЗ рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рдиреЗ рдореБрдЭреЗ рдмрд╣реБрдд рдорджрдж рдХреА рд╣реИред

рдореИрдВрдиреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкрд╣рд▓реЗ #4144 рдХрд╛ рдХреЛрдб рдирд╣реАрдВ рджреЗрдЦрд╛ рдерд╛ред рдореИрдВрдиреЗ рдЕрднреА рдХрд┐рдпрд╛ рдФрд░ рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдирд╣реАрдВ рдЪрд╛рд╣рддрд╛ рдХрд┐ рд╡рд╣ рд╢рд┐рдкрд┐рдВрдЧ рд╣реЛред

PEP 518 рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдФрд░ рдмрд╕ рдПрдХ рд╕рд╛рде рдХреБрдЫ рд╣реИрдХ рдХрд░рдирд╛ред

рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдиреАрдЪреЗ рдЖрддрд╛ рд╣реИред рдкреАрдИрдкреА 518 рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдФрд░ рдареАрдХ рд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдПрдХ рдРрд╕рд╛ рдХрд╛рд░реНрдп рд╣реИ рдЬреЛ рдЕрдЧрд░ рд╣рдо рдЗрд╕ рддрд░рд╣ рд╕реЗ рдЬрд╛рддреЗ рд╣реИрдВ рддреЛ рдкреАрдЖрдИрдкреА 10 рдП (рдирд┐рд╖реНрдкрдХреНрд╖) рдмрд┐рдЯ рдореЗрдВ рджреЗрд░реА рд╣реЛ рд╕рдХрддреА рд╣реИред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣рд╛рдВ рдПрдХ рд╕реБрд░рдХреНрд╖рд┐рдд-рдЖрд╢ рдордзреНрдп рдореИрджрд╛рди рдХреЛ рдкрд╣рд┐рдпреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдмрд┐рд▓реНрдб-рдирд┐рд░реНрднрд░рддрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рдЗрд╕ рддрд░рд╣, рд╣рдо рд░рд┐рдХрд░реНрд╕рди рд╕рдорд╕реНрдпрд╛ рд╕реЗ рдмрдЪ рд╕рдХрддреЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдирд┐рд░реНрдорд╛рдг-рдирд┐рд░реНрднрд░рддрд╛ (рдФрд░ рдЙрдирдХреА рд╕рднреА рдирд┐рд░реНрднрд░рддрд╛рдУрдВ) рдХреЛ рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрдЧреАред

рдпрд╣ рдХреИрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ?

рдпрд╣ рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд рд╣реИ рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдПрдХ рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд рдкрд╣рд▓рд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЖрдк-рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ-рдЦреБрдж-рдореЗрдВ-рдж-рдкреИрд░-рдЕрдЧрд░-рдЖрдк-рд╕рд╛рд╡рдзрд╛рди рдкрд╣рд▓реЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╕реЗ рдмреЗрд╣рддрд░ рд╣реИред

рдкреАрдИрдкреА 518 рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдФрд░ рдареАрдХ рд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдПрдХ рдРрд╕рд╛ рдХрд╛рд░реНрдп рд╣реИ рдЬреЛ рдЕрдЧрд░ рд╣рдо рдЗрд╕ рддрд░рд╣ рд╕реЗ рдЬрд╛рддреЗ рд╣реИрдВ рддреЛ рдкреАрдЖрдИрдкреА 10 рдП (рдирд┐рд╖реНрдкрдХреНрд╖) рдмрд┐рдЯ рдореЗрдВ рджреЗрд░реА рд╣реЛ рд╕рдХрддреА рд╣реИред

рдЗрд╕рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж - рдпрд╣реА рдореЗрд░рд╛ рдбрд░ рдерд╛ред

рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЕрдм рдореИрдВ рдЙрд▓рдЭрди рдореЗрдВ рд╣реВрдВ , рдХреНрдпреЛрдВрдХрд┐ рдореИрдВрдиреЗ рд╕реЛрдЪрд╛ рдерд╛ рдХрд┐ рдХрдо рд╕реЗ рдХрдо рдЖрдВрд╢рд┐рдХ рдкреАрдИрдкреА 518 рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдорд╛рд╕реНрдЯрд░ рдореЗрдВ рдерд╛ред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВ рдЗрд╕реЗ рд╕рдордЭрддрд╛ рд╣реВрдВ #4647 рдорд╛рд╕реНрдЯрд░ рдореЗрдВ рдкреАрдИрдкреА 518 рд╕рдорд░реНрдерди рдореЗрдВ рдПрдХ рдмрдЧ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ - рддреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХреБрдЫ рд╣реИ , рдХреНрдпреЛрдВрдХрд┐ рдЬреЛ рдХреБрдЫ рднреА рд╣реИ рд╡рд╣ рд╕рд╣реА рдирд╣реАрдВ рд╣реИ ...

рддреЛ рд╣рдореЗрдВ рдХреБрдЫ рдХрд░рдирд╛ рд╣реИ, рдФрд░ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╡рд┐рдХрд▓реНрдк рд╣реИрдВ:

  1. рдЗрд╕ рд╕рдордп рд╣рдорд╛рд░реЗ рдкрд╛рд╕ PEP 518 рд╕рдорд░реНрдерди рдХреЗ рд▓рд┐рдП рдЬреЛ рдХреБрдЫ рднреА рд╣реИ, рдЙрд╕реЗ рдирд┐рдХрд╛рд▓ рджреЗрдВред
  2. рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЬреЛ рдХреБрдЫ рд╣реИ рдЙрд╕реЗ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░реЗрдВ рдФрд░ рдЖрдВрд╢рд┐рдХ рд╕рдорд░реНрдерди рднреЗрдЬреЗрдВред
  3. рдкреАрдИрдкреА 518 рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд▓рд╛рдЧреВ рдХрд░реЗрдВ рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рд╣рдо рдкрд┐рдк 10 рдЬрд╛рд░реА рдХрд░реЗрдВред

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдХрд╣рддреЗ рд╣реИрдВ (3) рдХрд╛ рдЕрд░реНрде рд╣реИ рдкрд╛рдЗрдк 10 рд╕реЗ рдкрд╣рд▓реЗ рдПрдХ рд▓рдВрдмреА рджреЗрд░реА рдФрд░ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЕрдиреНрдп рд╕реБрдзрд╛рд░ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЬрд╛рд░реА рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ (рдпреВрдирд┐рдХреЛрдб рдлрд┐рдХреНрд╕ рдПрдХ рд╣реЛрдиреЗ рдХреЗ рдирд╛рддреЗ рд╣рдо рдирд┐рдпрдорд┐рдд рд░реВрдк рд╕реЗ рдореБрджреНрджреЛрдВ рдХреЛ рдЦрддреНрдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ)ред рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЗрд╕рдХреЗ рд▓рд┐рдП рдЗрдЪреНрдЫреБрдХ рдирд╣реАрдВ рд╣реВрдВред рдЖрдкрдиреЗ (1) рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ, рдФрд░ рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдиреЗ рд╕реЛрдЪрд╛ рдерд╛ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХреЛрдИ рдкреАрдИрдкреА 518 рд╕рдорд░реНрдерди рдирд╣реАрдВ рдерд╛, рдпрд╛ рдЖрдкрдиреЗ рдорд╛рди рд▓рд┐рдпрд╛ рдерд╛ рдХрд┐ рдЗрд╕рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдирд╛ рдХреЛрдИ рд╡рд┐рдХрд▓реНрдк рдирд╣реАрдВ рдерд╛ред рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ, рдореБрдЭреЗ рдпрд╣ рд╡рд┐рдЪрд╛рд░ рдкрд╕рдВрдж рдирд╣реАрдВ рд╣реИ - рдпрд╣ рдПрдХ рдкрд┐рдЫрдбрд╝рд╛ рдХрджрдо рд╣реИ, рдФрд░ рдпрд╣ рдкреАрдИрдкреА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рдмрд╣реБрдд рд╣реА рдирдХрд╛рд░рд╛рддреНрдордХ рд╕рдВрджреЗрд╢ рднреЗрдЬрддрд╛ рд╣реИ, рдЕрдЧрд░ рдЗрд╕реЗ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИред рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдореЗрдВ рдЗрд╕реЗ рдЦрд╛рд░рд┐рдЬ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реНрдкрд╖реНрдЯ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

(2) рдХреЗ рд▓рд┐рдП рдЖрдкрдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡, рдХрд┐ рд╣рдо рдкреАрдИрдкреА 518 рдХрд╛ рдПрдХ рд╕рдВрд╕реНрдХрд░рдг рд╢рд┐рдк рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдХреЗрд╡рд▓ рдмрд┐рд▓реНрдб-рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╣рд┐рдпреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ (рд╣рдореЗрдВ рдЕрднреА рднреА # 4647 рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рдПрдХ рдмрд┐рд▓реНрдб рдирд┐рд░реНрднрд░рддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдПрдХ рдкрд╣рд┐рдпрд╛ рд╣реИ) рдЙрдЪрд┐рдд рд▓рдЧрддрд╛ рд╣реИ , рдЗрд╕ рдЕрд░реНрде рдореЗрдВ рдХрд┐ рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд╣реИред рдореЗрд░рд╛ рдореБрдЦреНрдп рдЖрд░рдХреНрд╖рдг рдпрд╣ рд╣реИ рдХрд┐ рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдпрд╣ рдкреНрд░рддрд┐рдмрдВрдз рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдХрд┐рддрдирд╛ рд╕рдорд╕реНрдпрд╛рдЧреНрд░рд╕реНрдд рд╣реЛрдЧрд╛ рдЬреЛ рдкреАрдИрдкреА 518 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред

рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдЬреЛ рдХреБрдЫ рднреА рдХрд░рддреЗ рд╣реИрдВ, рдЙрд╕рдореЗрдВ рдлрдВрд╕ рдЧрдП рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЖрдВрд╢рд┐рдХ рд╕рдорд░реНрдерди рдХреЗрд╡рд▓ рдкрд╣рд┐рдпреЛрдВ рдХреЛ рдХрд╡рд░ рдХрд░рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдмрд┐рд▓реНрдб рдирд┐рд░реНрднрд░рддрд╛ рдПрдХ рдЦрд░рд╛рдм рд▓реЙрдЯ рд╕реЗ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдХрд▓реНрдк рд╣реИ :-(

рдореЗрд░реЗ рдкреНрд░рд╢реНрди рдХреЗ рдЙрддреНрддрд░ рдореЗрдВ рдкреАрдИрдкреА рд▓реЗрдЦрдХ (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) рдХрд╛рдлреА рдирд┐рд╢реНрдЪрд┐рдд рдереЗ рдХрд┐ рдкреВрд░реНрдг рдкреАрдИрдкреА рд╕рдорд░реНрдерди рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рднреА рдирд┐рд░реНрдорд╛рдг рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЗрд╕реЗ рдХреЗрд╡рд▓ рдПрдХ рд╕реНрдЯреЙрдкрдЧреИрдк рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рд▓реЗрдХрд┐рди рдпрд╣ рдореИрдВ рдирд╣реАрдВ рд╣реВрдВ рдЬреЛ рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░ рд░рд╣рд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЬреЛ рдХреЛрдИ рднреА рдХрд░рддрд╛ рд╣реИ рдЙрд╕рдХреЗ рдлреИрд╕рд▓реЗ рдХреЗ рд╕рд╛рде рдЬрд╛рдиреЗ рдореЗрдВ рдореБрдЭреЗ рдЦреБрд╢реА рд╣реИред рдПрдХ рдЪреАрдЬ рдЬреЛ рдореИрдВрдиреЗ рдХреА рд╣реИ рд╡рд╣ рд╣реИ #4803 рдмрдирд╛рдирд╛ рдФрд░ рдЗрд╕реЗ рдПрдХ рд░рд┐рд▓реАрдЬ рдмреНрд▓реЙрдХрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░рдирд╛, рдПрдХ рдЕрдиреБрд╕реНрдорд╛рд░рдХ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐ рд╣рдореЗрдВ рджрд╕реНрддрд╛рд╡реЗрдЬ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рд╣рдо рдХреИрд╕реЗ рдХрд▓реНрдкрдирд╛ рд╕реЗ рд╡рд┐рдЪрд▓рд┐рдд рд╣реЛрддреЗ рд╣реИрдВ, рдпрджрд┐ рд╣рдореЗрдВ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛред

(рдФрд░ рдЗрд╕ рдореБрджреНрджреЗ рдХреЗ рд▓рд┐рдП рдСрдл-рдЯреЙрдкрд┐рдХ, рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рдореИрдВ рд╕реБрдЭрд╛рд╡ рджреЗ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдЬрдм рд╣рдо рдкреАрдИрдкреА 517 рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рд╣рдо рд╡рд╣реА рдЧрд▓рддрд┐рдпрд╛рдВ рдирд╣реАрдВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╛рд╡рдзрд╛рди рд╣реИрдВ? рдЖрдЗрдП рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рд╣рдо рдХреЛрдбрд┐рдВрдЧ рдореЗрдВ рдмрд╣реБрдд рдЧрд╣рд░рд╛рдИ рд╕реЗ рдкрд╣рд▓реЗ рд╕рднреА рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдкреНрд░рднрд╛рд╡реЛрдВ рдХреЛ рд╕рдордЭрддреЗ рд╣реИрдВ - рдореЗрд░реА рдкреНрд░рд╡реГрддреНрддрд┐ рдпрд╣ рд╣реИ рдХрд┐ рдкреАрдИрдкреА 517 рдкреАрдИрдкреА 518 рд╕реЗ рднреА рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рдбрд┐рдЬрд╛рдЗрди рд╕рдорд╕реНрдпрд╛ рд╣реЛрдиреЗ рдЬрд╛ рд░рд╣реА рд╣реИ ...)

рдЬрдм "рд╕реНрд░реЛрдд рд╕реЗ рд╕рдм рдХреБрдЫ рдмрдирд╛рдПрдВ" рдкрд░рд┐рдкреНрд░реЗрдХреНрд╖реНрдп рдХреА рдмрд╛рдд рдЖрддреА рд╣реИ, рддреЛ рдореИрдВ рдбрд┐рд╕реНрдЯреНрд░реЛрд╕ рд╕реЗ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдкрд░рд┐рдЪрд┐рдд рд╣реВрдВ, рдФрд░ рд╣рдо рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдирд┐рдпрдорд┐рдд рдкреИрдХреЗрдЬ рдмрд┐рд▓реНрдб рд╕реЗ "рдмрд┐рд▓реНрдбрд░ рдХреЛ рдмреВрдЯрд╕реНрдЯреНрд░реИрдкрд┐рдВрдЧ" рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдЕрд▓рдЧ рдХрд░рддреЗ рд╣реИрдВред рд╕реНрд░реЛрдд рд╕реЗ рдкреВрд░реНрдг рдСрдЯреЛ-рдмреВрдЯрд╕реНрдЯреНрд░реИрдкрд┐рдВрдЧ рдХрдард┐рди рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХреЛ рдЕрдВрдд рдореЗрдВ рдЕрдкрдиреЗ рд╕реА рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЛ рдмреВрдЯрд╕реНрдЯреНрд░реИрдк рдХрд░рдиреЗ рдЬреИрд╕реА рдЪреАрдЬреЗрдВ рдХрд░рдиреА рдкрдбрд╝рддреА рд╣реИрдВред

рддреЛ рдкреАрдЖрдИрдкреА рдХреЗ рд▓рд┐рдП, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХрд╣рдирд╛ рдЙрдЪрд┐рдд рд╣реИ рдХрд┐ рдмрд┐рд▓реНрдб рдирд┐рд░реНрднрд░рддрд╛ рд╣рдореЗрд╢рд╛ рд╡реНрд╣реАрд▓ рдлрд╛рдЗрд▓реЛрдВ рд╕реЗ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╣реЛрдЧреАред 10.x рдХреЗ рдмрд╛рдж рдЖрдк рдЬреЛ рдкрд░рд┐рд╢реЛрдзрди рдкреЗрд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд╡рд╣ рдПрдХ рдмрд┐рд▓реНрдб рдХреИрд╢ рд╣реИ рдЬреЛ рдирд┐рдпрдорд┐рдд рд╡реНрд╣реАрд▓ рдХреИрд╢ рд╕реЗ рдЕрд▓рдЧ рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ рдХреИрд╢ рдХреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЙрд╕рдореЗрдВ рд╕рднреА рдкрд╣рд┐рдпреЗ рдПрдХ рдирд┐рдпрдВрддреНрд░рд┐рдд рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдмрдирд╛рдП рдЧрдП рдереЗ, рди рдХрд┐ PyPI рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдП рдЧрдПред рдпрд╛ рдХреЛрдИ рдЕрдиреНрдп рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рд╕рд░реНрд╡рд░ред

рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ, рдореБрдЭреЗ рдпрд╣ рд╡рд┐рдЪрд╛рд░ рдкрд╕рдВрдж рдирд╣реАрдВ рд╣реИ - рдпрд╣ рдПрдХ рдкрд┐рдЫрдбрд╝рд╛ рдХрджрдо рд╣реИ, рдФрд░ рдпрд╣ рдкреАрдИрдкреА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рдмрд╣реБрдд рд╣реА рдирдХрд╛рд░рд╛рддреНрдордХ рд╕рдВрджреЗрд╢ рднреЗрдЬрддрд╛ рд╣реИ, рдЕрдЧрд░ рдЗрд╕реЗ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИред

рдЬрд░реВрд░реА рдирд╣реАрдВ рдХрд┐ рдореИрдВ рдЗрд╕рд╕реЗ рд╕рд╣рдордд рд╣реВрдВред рдкрд╛рдЗрдк рдХреЗ рд▓рд┐рдП рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИред рд▓реЗрдХрд┐рди рдкреАрдИрдкреА рдореЗрдВ рдмрддрд╛рдП рдЧрдП рдкрд╛рдЗрдк рдПрдХрдорд╛рддреНрд░ рдлреНрд░рдВрдЯ рдПрдВрдб рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ рдЬрд┐рд╕рдХрд╛ рд▓реЛрдЧ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рднрд╛рд╖рд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдХрд░реНрддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рд╣рдорд╛рд░рд╛ рдХрд╛рдо рд╣реИ, рдФрд░ рдкрд╛рдЗрдк рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдРрд╕реА рднрд╛рд╖рд╛ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд▓реЛрдЧ рдЕрдкрдиреЗ рдкрд╛рдпрдерди рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕ рдХреЛ рдкреИрдХреЗрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░рддреЗ рд╣реИрдВ, рддрд╛рдХрд┐ рдЗрди рд╕рднреА рдХрдард┐рди рдореБрджреНрджреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрдиреЗ рдХреЗ рдмрд┐рдирд╛ рдмрд┐рд▓реНрдб рд╕рд┐рд╕реНрдЯрдо рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рддрдирд╛ рд╕рдВрднрд╡ рд╣реЛ рд╕рдХреЗ рдЙрддрдирд╛ рдЖрд╕рд╛рди рд╣реЛ рд╕рдХреЗред рдЙрдирдХреЗ рд▓рд┐рдП рдпрд╣ рдХреЗрд╡рд▓ рдирд┐рд░реНрдмрд╛рдз рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдХреНрдпреЛрдВрдХрд┐ рд╣рдордиреЗ рдХрдбрд╝реА рдореЗрд╣рдирдд рдХреА рд╣реИред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣рд╛рдВ рдПрдХ рд╕реБрд░рдХреНрд╖рд┐рдд-рдЖрд╢ рдордзреНрдп рдореИрджрд╛рди рдХреЛ рдкрд╣рд┐рдпреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдмрд┐рд▓реНрдб-рдирд┐рд░реНрднрд░рддрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрд╣реА #4799 рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдЪрд╛рд╣реЗрдВ рддреЛ рдореИрдВ рдЙрд╕ рд╢рд╛рдЦрд╛ рдХреЛ рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдФрд░ рдлрд┐рд░ рдЖрдк рдЗрд╕реЗ рдлреЛрд░реНрдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдкреАрдЖрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдЬрдорд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

(2) рдХреА рдЪреАрдЬреЛрдВ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдкрдХреНрд╖ рдкрд░ рджреЛ рдЪреАрдЬреЗрдВ рдЕрднреА рднреА рдЦрдбрд╝реА рд╣реИрдВ - рдЬреИрд╕рд╛ рдХрд┐ @xoviat рдиреЗ рдКрдкрд░ рдмрддрд╛рдпрд╛ рдерд╛:

  1. рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рдХрд┐ рд╕рдмрдкреНрд░реЛрд╕реЗрд╕ рдХреИрд╕реЗ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рддрд░реНрдХ рдПрдЯ рдЕрд▓)
    рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

  2. рдХреМрди рд╕рд╛ рдкреИрдХреЗрдЬ рд╕рдВрд╕реНрдХрд░рдг рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рд╣реИред
    рдпрд╣ рд╢рд╛рдпрдж рдЙрд╕реА рдореВрд▓ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреИрд╕реЗ рд╣реЛрдЧрд╛, рдЗрд╕ рддрдереНрдп рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ рд╡рд░реНрддрдорд╛рди рд░рд┐рдЬрд╝реЙрд▓реНрд╡рд░ рдХреЛрдб рдЕрднреА рднреА pip._internal.operations.prepare рдореЗрдВ рдХреЛрдб рдХреЗ рд╕рд╛рде рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИред рдореИрдВ рдЗрд╕ рд╕рдкреНрддрд╛рд╣ рдЗрд╕ рдкрд░ рдЧреМрд░ рдХрд░реВрдВрдЧрд╛ред

рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдХрд┐рд╕рдХреЗ рдкрд╛рд╕ рдРрд╕рд╛ рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рд╣реЛрдЧрд╛ред


рдпрд╣ рдкреАрдИрдкреА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рдмрд╣реБрдд рд╣реА рдирдХрд╛рд░рд╛рддреНрдордХ рд╕рдВрджреЗрд╢ рднреЗрдЬрддрд╛ рд╣реИ, рдЕрдЧрд░ рдЗрд╕реЗ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИред

рд╢рд╛рдпрдж рдЗрд╕реЗ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рд╣реИред рдпрд╣ рд╕рд┐рд░реНрдл рдЗрддрдирд╛ рд╣реИ рдХрд┐ рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рдкреАрдЖрдИрдкреА рдХрд╛ рдХреЛрдбрдмреЗрд╕ рдЖрдЬ рд╣реИ, рдпрд╣ рдкрд╛рдЗрдк рдореЗрдВ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЧреИрд░-рддреБрдЪреНрдЫ рд╣реИ - рдЕрдЬреАрдм рдЬрдЧрд╣реЛрдВ рдкрд░ рд╕рд╛рдорд╛рди рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЕрдЧрд░ рдЗрд╕реЗ рд╕рд╛рдл рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдХрд╛рдлреА рдЫреЛрдЯрд╛ рд╣реЛрдЧрд╛ред

рдЖрдкрдиреЗ (1) рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ, рдФрд░ рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдиреЗ рд╕реЛрдЪрд╛ рдерд╛ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХреЛрдИ рдкреАрдИрдкреА 518 рд╕рдорд░реНрдерди рдирд╣реАрдВ рдерд╛, рдпрд╛ рдЖрдкрдиреЗ рдорд╛рди рд▓рд┐рдпрд╛ рдерд╛ рдХрд┐ рдЗрд╕рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдирд╛ рдХреЛрдИ рд╡рд┐рдХрд▓реНрдк рдирд╣реАрдВ рдерд╛ред

рдореИрдВрдиреЗ рдорд╛рди рд▓рд┐рдпрд╛ рдХрд┐ рдкреАрдЫреЗ рд╣рдЯрдирд╛ рдХреЛрдИ рд╡рд┐рдХрд▓реНрдк рдирд╣реАрдВ рд╣реИред

рдЕрдм рдЬрдм рдореИрдВ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрддрд╛ рд╣реВрдВ - рдкреАрдИрдкреА 518 рдХреЛ рдкреАрдЖрдИрдкреА 10 рдореЗрдВ рд╢рд┐рдк рдХрд░рдирд╛ рдХрд┐рддрдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ? рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЕрдЧрд░ рдЗрд╕реЗ рдЕрдЧрд▓реА рдмрдбрд╝реА рд░рд┐рд▓реАрдЬ рдХреЗ рд▓рд┐рдП рд╕реНрдердЧрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рддреЛ (рдЗрд╕ рд╕реНрдерд┐рддрд┐ рд╕реЗ рдЖрд╕рд╛рди рд░рд╛рд╕реНрддрд╛ рд╣реЛрдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛) рд╕реАрдзрд╛ рд╣реЛрдЧрд╛ рдФрд░ 517 + 518 рджреЛрдиреЛрдВ рдПрдХ рдмрдбрд╝реА рд░рд┐рд▓реАрдЬ рдореЗрдВ рдЙрддрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рдХрд╛рдлреА рд╕рд╛рдл-рд╕реБрдерд░рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдпрд╣ рдХрд╣рдиреЗ рд╡рд╛рд▓рд╛ рдирд╣реАрдВ рд░рд╣реВрдВрдЧрд╛ рдХрд┐ рдпрд╣ рд░рд╛рд╕реНрддрд╛ рдирд╣реАрдВ рд╣реИред

@dstufft @xavfernandez рд╡рд┐рдЪрд╛рд░?


@ncoghlan рдХрд╛ рдмрд┐рд▓реНрдб-рдХреИрд╢ рдХрд╛ рд╡рд┐рдЪрд╛рд░ рдореЗрд░реЗ рд▓рд┐рдП рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдЪрд╛рд░ рд▓рдЧрддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдореИрдВ рдЗрд╕рдХреЗ рд╕рднреА рдкреНрд░рднрд╛рд╡реЛрдВ рдХреЛ рд╕рдордЭрддрд╛ рд╣реВрдВред


рдпрджрд┐ рдЖрдк рдЪрд╛рд╣реЗрдВ рддреЛ рдореИрдВ рдЙрд╕ рд╢рд╛рдЦрд╛ рдХреЛ рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдФрд░ рдлрд┐рд░ рдЖрдк рдЗрд╕реЗ рдлреЛрд░реНрдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдкреАрдЖрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдЬрдорд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдореЗрд░реЗ рдкрд╛рд╕ рд╢рд╛рдпрдж рд╕рдордп рдирд╣реАрдВ рд╣реЛрдЧрд╛ рдФрд░ рдЕрдЧрд░ рдореИрдВ рдХрд░рддрд╛ рд╣реВрдВ рддреЛ рднреА рдореИрдВ рдХрд┐рд╕реА рдореМрдЬреВрджрд╛ рдХрд╛рдо рдХрд╛ рдкреБрди: рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рд▓реЗрдХрд┐рди рдЙрд╕ рд╢рд╛рдЦрд╛ рдХреЛ рдмрд╣рд╛рд▓ рдХрд░рдиреЗ рд╕реЗ рдЪреЛрдЯ рдирд╣реАрдВ рд▓рдЧ рд╕рдХрддреАред :)

рдореЗрд░рд╛ рдореБрдЦреНрдп рдЖрд░рдХреНрд╖рдг рдпрд╣ рд╣реИ рдХрд┐ рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдпрд╣ рдкреНрд░рддрд┐рдмрдВрдз рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдХрд┐рддрдирд╛ рд╕рдорд╕реНрдпрд╛рдЧреНрд░рд╕реНрдд рд╣реЛрдЧрд╛ рдЬреЛ рдкреАрдИрдкреА 518 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред

рд╣рдордиреЗ рдпрд╣ рд╕рдЯреАрдХ рдЪрд░реНрдЪрд╛ рдХреА рд╣реИ рд╕рд┐рд╡рд╛рдп рдЗрд╕рдХреЗ рдХрд┐ рдЖрдк рд╢рд╛рдпрдж рдЗрд╕реЗ рдЬрд╛рдирддреЗ рднреА рдирд╣реАрдВ рдереЗред рдпрд╣ рд╕реНрдерд┐рддрд┐ рд╕реНрдерд┐рддрд┐ X рд╣реИред рдирд┐рд░реНрдорд╛рдг рд╡рд╛рддрд╛рд╡рд░рдг рд╕реНрдерд╛рдкрд┐рдд рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЕрдВрдбреЗ_рдЗрдиреНрдлреЛ рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рд╕реНрдерд┐рддрд┐ рд╡рд╛рдИ (#4799) рд╣реИред

рд▓реЗрдХрд┐рди рдпрд╣ рдореИрдВ рдирд╣реАрдВ рд╣реВрдВ рдЬреЛ рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░ рд░рд╣рд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЬреЛ рдХреЛрдИ рднреА рдХрд░рддрд╛ рд╣реИ рдЙрд╕рдХреЗ рдлреИрд╕рд▓реЗ рдХреЗ рд╕рд╛рде рдЬрд╛рдиреЗ рдореЗрдВ рдореБрдЭреЗ рдЦреБрд╢реА рд╣реИред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ #4799 рдЯреЗрдмрд▓ рдкрд░ рд╡рд╛рдкрд╕ рдЖ рдЧрдпрд╛ рд╣реИ? рдЬрдм рддрдХ рдпрд╣ рд╕рднреА рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ рдкрд╛рд╕ рдХрд░рддрд╛ рд╣реИ рдФрд░ рд╡рд╣ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рд╡рд╣ рдХрд░рдиреЗ рдХрд╛ рджрд╛рд╡рд╛ рдХрд░рддрд╛ рд╣реИ?

рдЕрд░реНрдШ, рд╡реЗ рдПрдХреНрд╕ рдФрд░ рд╡рд╛рдИ рдореБрдЭреЗ рдлрд┐рд░ рд╕реЗ рдкрд░реЗрд╢рд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд╛рдкрд╕ рдЖрддреЗ рд╣реИрдВ: рдкрд▓рдХ: рд╣рд╛рдВ, рдореИрдВ рдХрд╣ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдореБрдЭреЗ 2 рдорд╛рдорд▓реЛрдВ рдХреА рд╕рд╛рдкреЗрдХреНрд╖ рд╕рдВрднрд╛рд╡рдирд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреЛрдИ рдЕрдиреБрднрд╡ рдирд╣реАрдВ рд╣реИред рдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдВ рдХрд┐ рдЖрдк рдХрд╣ рд░рд╣реЗ рд╣реИрдВ рдХрд┐ рдирд┐рд░реНрдорд╛рдг рдЖрд╡рд╢реНрдпрдХрддрд╛рдПрдВ рдЬреЛ рдкрд╣рд┐рдП рдирд╣реАрдВ рд╣реИрдВ рд╡реЗ рдХрд╛рдлреА рджреБрд░реНрд▓рдн рд╣реИрдВ рдХрд┐ рд╣рдо рдЙрд╕ рдорд╛рдорд▓реЗ рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдареАрдХ рд╣реИрдВред рддреЛ рдореВрд▓ рд░реВрдк рд╕реЗ рд╣рдорд╛рд░реЗ рдмреАрдЪ рдПрдХ "рдЗрдЯреНрд╕ рдУрдХреЗ" рдФрд░ рдПрдХ "рдкрддрд╛ рдирд╣реАрдВ" рд╡реЛрдЯ рдереЗред рдореИрдВ рдЗрд╕ рд╡рд┐рдХрд▓реНрдк рдХреЛ рдЕрд╡рд░реБрджреНрдз рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдмрд╕ рдпрд╣ рдХрд╣ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдореЗрд░реЗ рдЕрдВрддрд░реНрдЬреНрдЮрд╛рди рдХреА рд╕реАрдорд╛рдПрдВ рдХрд╣рд╛рдВ рд╣реИрдВред

@xviat рдореЗрд░реЗ рдХреБрдЫ рдкреНрд░рд╢реНрди рд╣реИрдВред рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рдЖрдк рдПрдХ рдирдпрд╛ рдкреАрдЖрд░ рдмрдирд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЙрдирдХрд╛ рдЬрд╡рд╛рдм рджреЗрдВрдЧреЗред :)

  • рдЖрдк рдпрд╣ рдХреИрд╕реЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ рдХрд┐ рдХреМрди рд╕реЗ рдкреИрдХреЗрдЬ рд╕реНрдерд╛рдкрд┐рдд рд╣реЛ рдЧрдП рд╣реИрдВ?
  • рдХреНрдпрд╛ рдЖрдк рдмрд╛рдЗрдирд░реА-рдУрдирд▓реА рдмрд┐рд▓реНрдб рдбрд┐рдкреЗрдВрдбреЗрдВрд╕реАрдЬрд╝ рддрдХ рд╕реАрдорд┐рдд рд░рд╣реЗрдВрдЧреЗ?

рдореИрдВрдиреЗ рдмрд╣реБрдд рд╕реА рд╡реИрдЬреНрдЮрд╛рдирд┐рдХ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд┐рдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдкрдХреНрд╖рдкрд╛рддреА рд╣реВрдВред рд▓реЗрдХрд┐рди рдореИрдВ рдкрд╣рд┐рдпрд╛ рдирд┐рд░реНрдорд╛рдг рдирд┐рд░реНрднрд░рддрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреА рдПрдХ рд╕реВрдЪреА рдХреЛ рдЦрд░рд╛рдм рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдФрд░ рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕реНрд░реЛрдд рдирд┐рд░реНрднрд░рддрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рд╕реЛрдЪ рд╕рдХрддрд╛ред рд╢рд╛рдпрдж рдореИрдВ рдЧрд▓рдд рд╣реВрдБред

@rgommers рдХреНрдпрд╛ рдЖрдк PEP 518 рдХреЗ рд╕рд╛рде рдареАрдХ рд░рд╣реЗрдВрдЧреЗ, рдпрджрд┐ рдпрд╣ рдЕрдЧрд▓реЗ рдкрд╛рдЗрдк рдореЗрдВ рд╣реЛрддрд╛ рддреЛ рдХреЗрд╡рд▓ рдкрд╣рд┐рдпреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрд▓рдмреНрдз рдмрд┐рд▓реНрдб рдирд┐рд░реНрднрд░рддрд╛ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛?

рдЖрдк рдпрд╣ рдХреИрд╕реЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ рдХрд┐ рдХреМрди рд╕реЗ рдкреИрдХреЗрдЬ рд╕реНрдерд╛рдкрд┐рдд рд╣реЛ рдЧрдП рд╣реИрдВ?

рд╕рдмрдкреНрд░реЛрд╕реЗрд╕ рдХреЛ рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреА рд╕реВрдЪреА рдмрд┐рд▓реНрдХреБрд▓ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдорд┐рд▓рддреА рд╣реИред рдЗрд╕ рддрд░рд╣ рдпрд╣ рд░рд┐рдЬрд╝реЙрд▓реНрд╡рд░ рд╕реЗ рд╣реЛрдХрд░ рдЬрд╛рддрд╛ рд╣реИред

рдХреНрдпрд╛ рдЖрдк рдмрд╛рдЗрдирд░реА-рдУрдирд▓реА рдмрд┐рд▓реНрдб рдбрд┐рдкреЗрдВрдбреЗрдВрд╕реАрдЬрд╝ рддрдХ рд╕реАрдорд┐рдд рд░рд╣реЗрдВрдЧреЗ?

рд╣рд╛рдБ, рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдкрд░реАрдХреНрд╖рдг xfailed рдерд╛ред рдкрд░реАрдХреНрд╖рдг рдореЗрдВ рдирд┐рд░реНрдорд╛рдг рдирд┐рд░реНрднрд░рддрд╛ рдПрдХ рдкрд╣рд┐рдпрд╛ рдирд╣реАрдВ рд╣реИред

рдЕрдм рдЬрдм рдореИрдВ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрддрд╛ рд╣реВрдВ - рдкреАрдИрдкреА 518 рдХреЛ рдкреАрдЖрдИрдкреА 10 рдореЗрдВ рд╢рд┐рдк рдХрд░рдирд╛ рдХрд┐рддрдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ? рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЕрдЧрд░ рдЗрд╕реЗ рдЕрдЧрд▓реА рдмрдбрд╝реА рд░рд┐рд▓реАрдЬ рдХреЗ рд▓рд┐рдП рд╕реНрдердЧрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рддреЛ (рдЗрд╕ рд╕реНрдерд┐рддрд┐ рд╕реЗ рдЖрд╕рд╛рди рд░рд╛рд╕реНрддрд╛ рд╣реЛрдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛) рд╕реАрдзрд╛ рд╣реЛрдЧрд╛ рдФрд░ 517 + 518 рджреЛрдиреЛрдВ рдПрдХ рдмрдбрд╝реА рд░рд┐рд▓реАрдЬ рдореЗрдВ рдЙрддрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рдХрд╛рдлреА рд╕рд╛рдл-рд╕реБрдерд░рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдпрд╣ рдХрд╣рдиреЗ рд╡рд╛рд▓рд╛ рдирд╣реАрдВ рд░рд╣реВрдВрдЧрд╛ рдХрд┐ рдпрд╣ рд░рд╛рд╕реНрддрд╛ рдирд╣реАрдВ рд╣реИред

рд╣рдо рдХреНрдпрд╛ рдорд╣рд╕реВрд╕ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рд╣рдо рдХрд┐рд╕реА рдХреЗ рдкрд╛рд╕ рдкреАрдИрдкреА 517 рдФрд░ 518 рдкреАрдЖрдИрдкреА 11 рдХреЗ рд▓рд┐рдП рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рд╣реИ? рдореИрдВ рдЖрд╢рд╛рд╡рд╛рджреА рдирд╣реАрдВ рд╣реВрдВред рдореБрдЭреЗ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╡реЗ рджреЛрдиреЛрдВ рдХрд╛рдо рдХреЗ рдмрдбрд╝реЗ рд╣рд┐рд╕реНрд╕реЗ рд╣реИрдВ, рдФрд░ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд░рд┐рдЬрд╝реЙрд▓реНрд╡рд░ рдХрд╛ рдХрд╛рдо рднреА рдЪрд▓ рд░рд╣рд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореИрдВ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╕реЗ рдЕрдзрд┐рдХ рд╕рдордп рддрдХ рдкреАрдЖрдИрдкреА 10 рдХреЛ рдмрдирд╛рдП рд░рдЦрдиреЗ рдХреЗ рдкрдХреНрд╖ рдореЗрдВ рдирд╣реАрдВ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдЬрдм рд╣рдо рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рдорд╛рдореВрд▓реА рд░рд┐рд▓реАрдЬ рдХреА рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдЬрд╛рд░реА рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдЕрдкрдиреА рд╕рднреА рдкреНрд░рдореБрдЦ рдлреАрдЪрд░ рдпреЛрдЬрдирд╛рдУрдВ рдХреЛ рдмрд╣рд╛рд╡ рджреЗрдиреЗ рдореЗрдВ рд╕рдорд╛рди рд░реВрдк рд╕реЗ рдЕрд╕рд╣рдЬ рд╣реЛрддреЗ рд╣реИрдВред

рдЗрд╕реЗ рджреВрд╕рд░реЗ рддрд░реАрдХреЗ рд╕реЗ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП, "рдЪрд▓реЛ рдПрдХ рдкрд╛рдЗрдк 10 рд░рд┐рд▓реАрдЬ рдХреЗ рд▓рд┐рдП рдЪрд▓рддреЗ рд╣реИрдВ" рдХрд╣рдиреЗ рд╕реЗ рдкреАрдИрдкреА 518 рдХрд╛рд░реНрдп рдкрд░ рдЧрддрд┐рд╡рд┐рдзрд┐ рдХрд╛ рдкреБрдирд░реБрддреНрдерд╛рди рд╣реБрдЖред рдЕрдЧрд░ рд╣рдо рдЗрд╕реЗ рдкрд┐рдк 10 рд╕реЗ рд╣рдЯрд╛ рджреЗрдВ, рддреЛ рдореИрдВ рдПрдХ рдХреЗ рд▓рд┐рдП рд░рд┐рд▓реАрдЬ рдХреЗ рд▓рд┐рдП рдЪреАрдЬреЛрдВ рдХреЛ рддреИрдпрд╛рд░ рдХрд░рдиреЗ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░реВрдВрдЧрд╛, рдФрд░ рдореБрдЭреЗ рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ рдкреАрдИрдкреА 518 рдлрд┐рд░ рд╕реЗ рдЧрддрд┐ рдЦреЛ рджреЗрддрд╛ рд╣реИред рдЪреАрдЬреЛрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рдЧрддрд┐рд╡рд┐рдзрд┐ рдореЗрдВ рд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрдпрд╛ рд╣реИ? @xoviat рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЙрд╕реЗ рд╣рдордореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдХреЛ рднреА рдЙрди рдореБрджреНрджреЛрдВ рдХреЛ рд╕рдордЭрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдиреЗ рдореЗрдВ рд╕рдорд╕реНрдпрд╛ рд╣реЛ рд░рд╣реА рд╣реИ рдЬрд┐рдирд╕реЗ рд╡рд╣ рдЕрдм рддрдХ рдЬреВрдЭ рд░рд╣рд╛ рд╣реИред рдореИрдВ рдЙрд╕реЗ рдлрд┐рд░ рд╕реЗ рдмрд┐рдирд╛ рдХрд┐рд╕реА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рдХрд╛рдо рдХрд░рдирд╛ рдирд╣реАрдВ рдЫреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рддрд╛ред

рд╣рдо рдЬреЛ рдХрд░ рд╕рдХрддреЗ рдереЗ, рд╡рд╣ "рдкрд╛рдЗрдк 9.1" рдЬрд╛рд░реА рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рддреИрдпрд╛рд░ рдХрд┐рдП рдЧрдП рд╡реГрджреНрдзрд┐рд╢реАрд▓ рд╕реБрдзрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде рд╣реИ, рдФрд░ 3 рдмрдбрд╝реА рдЯрд┐рдХрдЯ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рд┐рдП рд╕рдВрд╕реНрдХрд░рдг рд╕рдВрдЦреНрдпрд╛ "рдкрд╛рдЗрдк 10" рдЖрд░рдХреНрд╖рд┐рдд рдХрд░реЗрдВ рдЬреЛ рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдореЗрдВ рд╣реИрдВред рд▓реЗрдХрд┐рди рдЕрдЧрд░ рд╣рдо рдРрд╕рд╛ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдореИрдВ 2018 рдХреА рдкрд╣рд▓реА рддрд┐рдорд╛рд╣реА рдореЗрдВ рдПрдХ рдкрд╛рдЗрдк 10 рд░рд┐рд▓реАрдЬ рдХреЗ рд▓рд┐рдП рдкреНрд░рддрд┐рдмрджреНрдз рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП [1] рдХреЛрд╢рд┐рд╢ рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред рдореИрдВ рдПрдХ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд░реВрдк рдореЗрдВ рдЗрд╕рдХреЗ рд╕рд╛рде рдареАрдХ рд░рд╣реВрдВрдЧрд╛ред рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рдХрд┐рд╕реА рдХреЛ рдЗрд╕ рдмрд╛рдд рдХрд╛ рдЕрд╣рд╕рд╛рд╕ рд╣реИ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдорд╛рд╕реНрдЯрд░ рдореЗрдВ рдЖрдВрд╢рд┐рдХ рд╕рдорд░реНрдерди рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдореЗрдВ рдХреНрдпрд╛ рд╢рд╛рдорд┐рд▓ рд╣реЛрдЧрд╛? рдпрд╛ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХреНрдпрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХреА рд╕реАрдорд╛рдПрдВ рдХреНрдпрд╛ рд╣реИрдВ, рдЗрд╕рдХрд╛ рджрд╕реНрддрд╛рд╡реЗрдЬреАрдХрд░рдг рдХрд░рдиреЗ рдореЗрдВ (рддрд╛рдХрд┐ рд▓реЛрдЧ рдЗрд╕реЗ рдкреВрд░рд╛ рдорд╛рдирдХрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рди рдХрд░реЗрдВ, рдмрдЧреНрд╕ рдХреЛ рд╣рд┐рдЯ рдХрд░реЗрдВ рдФрд░ рдЙрди рдореБрджреНрджреЛрдВ рдХреЛ рдЙрдард╛рдПрдВ рдЬрд┐рдирдХрд╛ рд╣рдореЗрдВ рдЬрд╡рд╛рдм рджреЗрдирд╛ рд╣реИ "рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ рдЕрднреА рддрдХ рдкреВрд░реА рдирд╣реАрдВ рд╣реБрдИ рд╣реИ, рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рд▓реЗрдХрд┐рди рдкреАрдЖрдИрдкреА рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗрдВ 10")? рдХреНрдпрд╛ рд╣рдо рдХрд╛рдо рдХреЗ рдПрдХ рдмрдбрд╝реЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЛ рджреВрд╕рд░реЗ рдХрд╛рдо рдореЗрдВ рдмрджрд▓ рд░рд╣реЗ рд╣реИрдВ?

[1] рдЗрд╕ рд╣рдж рддрдХ рдХрд┐ рд╣рдо рдмреЗрд╣рдж рд╕реАрдорд┐рдд рд╕реНрд╡рдпрдВрд╕реЗрд╡реА рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЗ рд╕рд╛рде рдХреБрдЫ рднреА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рддрд┐рдмрджреНрдз рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рдЬреИрд╕рд╛ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЙрдкрд▓рдмреНрдз рд╣реИред

рдореИрдВрдиреЗ рдмрд╣реБрдд рд╕реА рд╡реИрдЬреНрдЮрд╛рдирд┐рдХ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд┐рдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдкрдХреНрд╖рдкрд╛рддреА рд╣реВрдБ

рдзрдиреНрдпрд╡рд╛рдж, рдХрднреА-рдХрднреА рд▓реЛрдЧреЛрдВ рдХреА рдкреГрд╖реНрдарднреВрдорд┐рдпреЛрдВ рдХреЛ рдЬрд╛рдирдирд╛ рдХрдард┐рди рд╣реЛрддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рд╡реИрдЬреНрдЮрд╛рдирд┐рдХ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реИрдВ, рддреЛ рдЗрд╕рд╕реЗ рдореЗрд░реА рдЪрд┐рдВрддрд╛рдПрдБ рдмрд╣реБрдд рдХрдо рд╣реЛ рдЬрд╛рддреА рд╣реИрдВред

рд╣рдо рдЬреЛ рдХрд░ рд╕рдХрддреЗ рдереЗ, рд╡рд╣ "рдкрд╛рдЗрдк 9.1" рдЬрд╛рд░реА рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рддреИрдпрд╛рд░ рдХрд┐рдП рдЧрдП рд╡реГрджреНрдзрд┐рд╢реАрд▓ рд╕реБрдзрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде рд╣реИ, рдФрд░ 3 рдмрдбрд╝реА рдЯрд┐рдХрдЯ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рд┐рдП рд╕рдВрд╕реНрдХрд░рдг рд╕рдВрдЦреНрдпрд╛ "рдкрд╛рдЗрдк 10" рдЖрд░рдХреНрд╖рд┐рдд рдХрд░реЗрдВ рдЬреЛ рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдореЗрдВ рд╣реИрдВред

рдореБрдЭреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкрд╕рдВрдж рд╣реИред рдкрд┐рдк 10.0.0 рдХреЗ рдмрдЬрд╛рдп рдкрд┐рдк 9.1.0 рдХреЗ рд▓рд┐рдП +1

рдореИрдВ 2018 рдХреА рдкрд╣рд▓реА рддрд┐рдорд╛рд╣реА рдореЗрдВ рдПрдХ рдкреАрдЖрдИрдкреА 10 рд░рд┐рд▓реАрдЬ рдХреЗ рд▓рд┐рдП рдкреНрд░рддрд┐рдмрджреНрдз [1] рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдореИрдВ рдПрдХ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд░реВрдк рдореЗрдВ рдЗрд╕рдХреЗ рд╕рд╛рде рдареАрдХ рд░рд╣реВрдВрдЧрд╛ред

рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рдмрд╣реБрдд рд╣реА рджрд┐рд▓рдЪрд╕реНрдк рджрд┐рдорд╛рдЧреА рд▓рд╣рд░ рдереА - 12 рдЕрдХреНрдЯреВрдмрд░ 2018 рдХреЛ рдкрд┐рдк 10 рд╕рд╛рд▓ рдХрд╛ рд╣реЛ рдЧрдпрд╛ред рдпрд╣ рдПрдХ рдкреАрдЖрдИрдкреА 10.0.0 рд░рд┐рд▓реАрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХрджрдо рд╕рд╣реА рддрд╛рд░реАрдЦ рд╣реЛрдЧреАред рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ рд╕рдордпрд░реЗрдЦрд╛ рд╣реИред рдореИрдВ рдпрд╣ рдирд╣реАрдВ рдХрд╣ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рд╣рдореЗрдВ рддрдм рддрдХ рд╡реНрд╣рд╛рдЗрдЯ-рд╡реНрд╣реЗрд▓ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдореЗрдВ рджреЗрд░реА рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдореЗрд░рд╛ рдХреБрдЫ рд╣рд┐рд╕реНрд╕рд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЪрд╛рд╣рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕рдВрд╕реНрдХрд░рдг рд╕рдВрдЦреНрдпрд╛ рдФрд░ рдЙрдореНрд░ рдХреА рдмрд╛рдд рднреА рдореЗрд▓ рдЦрд╛рдПред

рдореБрдЭреЗ рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ рдкреАрдИрдкреА 518 рдлрд┐рд░ рд╕реЗ рдЧрддрд┐ рдЦреЛ рджреЗрддрд╛ рд╣реИред

рдореИрдВ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬреЛ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рд╡рд╣ рдХрд░реВрдВрдЧрд╛ред рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ @xoviat рднреА рдЗрд╕рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИред :)

рдХреНрдпрд╛ рдХрд┐рд╕реА рдХреЛ рдЗрд╕ рдмрд╛рдд рдХрд╛ рдЕрд╣рд╕рд╛рд╕ рд╣реИ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдорд╛рд╕реНрдЯрд░ рдореЗрдВ рдЖрдВрд╢рд┐рдХ рд╕рдорд░реНрдерди рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдореЗрдВ рдХреНрдпрд╛ рд╢рд╛рдорд┐рд▓ рд╣реЛрдЧрд╛?

рдореБрдЭреЗ рдХрд▓ рдЗрд╕ рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓рдиреЗ рдореЗрдВ рдХреЛрдИ рдЖрдкрддреНрддрд┐ рдирд╣реАрдВ рд╣реЛрдЧреАред рдЪреВрдВрдХрд┐ @dstufft рдХреА #4144 рдкрд░ рд╕рдореАрдХреНрд╖рд╛ рдХреА рдЧрдИ рдереА, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рдкрд░ рдЙрдирдХрд╛ рдЗрдирдкреБрдЯ рдореВрд▓реНрдпрд╡рд╛рди рд╣реЛрдЧрд╛ред

рдиреЛрдЯ - рдореИрдВ @dstufft рдФрд░ @xavfernandez рд╕реЗ рд╕рд╣рдорддрд┐ рдХреЗ рдмрд┐рдирд╛ рдЪреАрдЬреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд░реВрдк рдореЗрдВ рдХрдареЛрд░ рдХреБрдЫ рднреА рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ - рддреЛ рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рдЙрдиреНрд╣реЗрдВ рднреА рдХреНрдпрд╛ рдХрд╣рдирд╛ рд╣реИред

@dstufft рдХреЗ рдкрд╛рд╕ рджрд┐рди рдореЗрдВ рдкрд░реНрдпрд╛рдкреНрдд рд╕рдордп рдирд╣реАрдВ рд╣реИред рдЙрд╕реЗ рдпрд╣ рднреА рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдЧреЛрджрд╛рдо рдиреАрдЪреЗ рди рдЬрд╛рдПред

рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рдЙрдирдХрд╛ рдХреНрдпрд╛ рдХрд╣рдирд╛ рд╣реИред

рд╣рд╛рдБ рдХреГрдкрдпрд╛ред :)

рдПрдХ рдпреВрдПрдХреНрд╕ рдкрд░рд┐рдкреНрд░реЗрдХреНрд╖реНрдп рд╕реЗ: "рднрд░реЛрд╕реЗрдордВрдж рдЯреНрд░рд╕реНрдЯ" рд╣рдорд▓реЗ рдХрд╛ рд╡реНрдпрд╛рдкрдХ рд░реВрдк рд╕реЗ рдореБрдХрд╛рдмрд▓рд╛ рдХрд░рдирд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рджрд░реНрджрдирд╛рдХ рд╣реИ [1], рдФрд░ рдЖрдкрдХреЛ рдмрд╣реБрдд рд╕реЗ рд▓реЛрдЧ рдорд┐рд▓реЗрдВрдЧреЗ рдЬреЛ рдХрд╣рддреЗ рд╣реИрдВ рдХрд┐ "рдореИрдВ рд╕реНрд░реЛрдд рд╕реЗ рд╕рдм рдХреБрдЫ рд╕рдВрдХрд▓рд┐рдд рдХрд░рддрд╛ рд╣реВрдВ" рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдРрд╕рд╛ рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ - рдХрд╣реАрдВ рдЙрдирдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рд╡рд╣рд╛рдВ рдПрдХ рдмреВрдЯрд╕реНрдЯреНрд░реИрдк рдЪрд░рдг рд╣реЛрдЧрд╛ рдЬрд╣рд╛рдВ рд╡реЗ рдХрд┐рд╕реА рдФрд░ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХрд┐рдП рдЧрдП рдмрд╛рдЗрдирд░реА рдкрд░ рднрд░реЛрд╕рд╛ рдХрд░рддреЗ рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рд░рдирдЯрд╛рдЗрдо рдкрд░реНрдпрд╛рд╡рд░рдг рдФрд░ рдЙрдирдХреЗ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдкреНрд░рджрд╛рддрд╛ рд╕реЗ рдЯреВрд▓рдЪреЗрди рдХрд╛ рдирд┐рд░реНрдорд╛рдг), рдпрд╛ рдлрд┐рд░ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдХреА рдкрд┐рдЫрд▓реА рдкреАрдврд╝реА рд╕реЗ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдлреЗрдбреЛрд░рд╛ рдХреЗ рдирдП рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдмрд┐рд▓реНрдбрд░реВрдЯреНрд╕ рдФрд░ рдЖрд░рдПрдЪрдИрдПрд▓ рдХреЛ рдлреЗрдбреЛрд░рд╛ рдФрд░ рдЖрд░рдПрдЪрдИрдПрд▓ рдХреЗ рдкрд┐рдЫрд▓реЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рд╕реЗ рд╡рд░реАрдпрддрд╛ рджреА рдЬрд╛рддреА рд╣реИ, рд╡реЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╢реБрд░реВ рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВ)ред рдпрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдХрд┐ рдПрдХ рд╕реНрд░реЛрдд-рдЖрдзрд╛рд░рд┐рдд рд▓рд┐рдирдХреНрд╕ рдбрд┐рд╕реНрдЯреНрд░реЛ рдЬреИрд╕реЗ рдЬреЗрдиреЗрдЯреВ рдПрдХ рдЗрдВрд╕реНрдЯреЙрд▓рд░ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ рддрд╛рдХрд┐ рдЖрдкрдХреЛ рд▓рд┐рдирдХреНрд╕ рдХрд░реНрдиреЗрд▓, рд╕реА рдХрдВрдкрд╛рдЗрд▓рд░, рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдбреНрд░рд╛рдЗрд╡рд░ рдЗрддреНрдпрд╛рджрд┐ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рдорд╛рд╣реМрд▓ рдорд┐рд▓ рд╕рдХреЗред

рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдкреАрдкреА 10 рдХреЗ рд▓рд┐рдП рдпрд╣ рдХрд╣рдирд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЙрдЪрд┐рдд рд╣реИ рдХрд┐ --no-binary :all: рдХреЗрд╡рд▓ рд░рдирдЯрд╛рдЗрдо рдирд┐рд░реНрднрд░рддрд╛рдУрдВ рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИ, рдирд┐рд░реНрднрд░рддрд╛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ ред рдпрджрд┐ рд▓реЛрдЧ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╕реНрд░реЛрдд рд╕реЗ рдЕрдкрдиреЗ рдмрд┐рд▓реНрдбрд░реВрдЯ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рд╡реЗ рдЕрднреА рднреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ - рдпрд╣ рд╕рд┐рд░реНрдл рдЗрддрдирд╛ рд╣реИ рдХрд┐ рдкрд╛рдЗрдк 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

рдФрд░ рдХрдИ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЗрдВрд╕реНрдЯреЙрд▓ рд╕рдореВрд╣реЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВ рдХреНрдпреЛрдВрдХрд┐ рдЙрдиреНрд╣реЗрдВ рдЙрд╕ рдмрд┐рдВрджреБ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдЬрд╣рд╛рдВ рдкрд╣рд▓реЗ рд╡реНрдпрдХреНрддрд┐ рдХреЛ рд╕реАрдкреАрдереЙрди рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХрд┐рд╕реА рдФрд░ рдЪреАрдЬ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ рдФрд░ рдХрд┐рд╕реА рднреА рдЧреИрд░-рдкрд╛рдпрдерди рдмрд┐рд▓реНрдб рдЯреВрд▓рдЪреЗрди рдХреЛ рдкреВрд░реНрд╡рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдЙрд╕ рдЕрд╡рдзрд╛рд░рдгрд╛ рдХрд╛ рдПрдХ рд╕рдВрднрд╛рд╡рд┐рдд рднрд╡рд┐рд╖реНрдп рдкреВрд░рдХ рдпрд╣ рд╣реЛрдЧрд╛ рдХрд┐ рд▓реЛрдЧреЛрдВ рдХреЛ --buildenv <path> рдХрд╣рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреА рдЬрд╛рдП рддрд╛рдХрд┐ рдХрд┐рд╕реА рднреА рдЖрд╡рд╢реНрдпрдХ рд╕реНрд░реЛрдд рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреВрд░реНрд╡-рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдмрд┐рд▓реНрдб рд╡рд╛рддрд╛рд╡рд░рдг рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗ, рдмрдЬрд╛рдп рдПрдХ рдЕрд▓рдЧ рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдирд┐рд░реНрдорд╛рдг рдХрд░рдиреЗ рдХреЗред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдореИрдВ рдЗрд╕реЗ рдкрд╛рдЗрдк 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 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реИ рдФрд░ рд╢рд╛рдпрдж рдЗрд╕рдореЗрдВ рдФрд░ рдЪреАрдЬреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдпрд╣ рдкреЗрдбрд╝ рдХреЗ рдирд┐рдЪрд▓реЗ рд╕рд┐рд░реЗ рдкрд░ рд╣реИ):

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()

рдФрд░ рд╕рдВрдЪрд╛рд▓рди рдореЗрдВ/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 (рддрд╛рдХрд┐ рдмрд┐рд▓реНрдб рд╡рд╛рддрд╛рд╡рд░рдг рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗ рдФрд░ рдЖрдкрдХреЛ рдкрддрд╛ рд╣реЛ рдХрд┐ рдПрдХ рд╣реА рд╡рд╕реНрддреБ рдореЗрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреНрдпрд╛ рдЕрдиреБрд░реЛрдз рдХрд┐рдП рдЧрдП рд╣реИрдВ) рдФрд░ рд╕рдм рдХреБрдЫ рдПрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдирд┐рд╣рд┐рдд рд╣реИ (рдЗрд╕рд▓рд┐рдП рд╕рдмрд╕реЗ рдЦрд░рд╛рдм рд╕реНрдерд┐рддрд┐ рдПрдХ рдЧрддрд┐рд░реЛрдз рд╣реИ)ред рдмреЗрд╢рдХ, рдЕрдиреНрдп рдзрд╛рдЧреЗ рдХреЗ рд▓рд┐рдП рд▓реЙрдЧрд┐рдВрдЧ рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА рд▓реЗрдХрд┐рди рдпрд╣ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИред

рдХреНрдпреВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдкреНрд░рд╢реНрди рдХрд╛ рдЙрддреНрддрд░ рджреЗрдирд╛ред рдХреНрдпреВ рдЖрдзрд╛рд░рд┐рдд рджреГрд╖реНрдЯрд┐рдХреЛрдг: рд╕рдорд╡рд░реНрддреА рдкрд░ рднрд░реЛрд╕рд╛ рдХрд░рдиреЗ рд╕реЗ рдмрдЪрдирд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╣реИред рдлреНрдпреВрдЪрд░реНрд╕, рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╛рдпрдерди 2.7 рдореЗрдВ https://pypi.org/project/futures/ рд╡рд┐рдХреНрд░реЗрддрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред

pip рдХреЛрдб рдЖрдзрд╛рд░ рдХреЛ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдЬрд╛рдиреЗ рдмрд┐рдирд╛, рдирд┐рд░реНрдорд╛рдг рдкрд░реНрдпрд╛рд╡рд░рдг рдкреНрд░рдмрдВрдзрди рдХреЛ рдПрдХ рд╣реА рд╕реНрдерд╛рди рдкрд░ рд╕рдореЗрдХрд┐рдд рдХрд░рдиреЗ рдХреА рдзрд╛рд░рдгрд╛ рдЕрднреА рднреА рдПрдХ рдЖрдХрд░реНрд╖рдХ рд╡рд┐рдХрд▓реНрдк рдХреА рддрд░рд╣ рд▓рдЧрддреА рд╣реИред

рдЙрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд▓рд┐рдП concurrent.futures рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред Future рд╕рд┐рд░реНрдл рдПрдХ рдЕрдзрд┐рдХ рд╡рд░реНрдгрдирд╛рддреНрдордХ рдЖрд╡рд░рдг рд╣реИред

рдХреЗрд╡рд▓ рдЖрджрд┐рдо рдЖрд╡рд╢реНрдпрдХ рдПрдХ рдХрддрд╛рд░ рд╣реИ: https://docs.python.org/2/library/queue.html

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдЗрди рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рдХреЗрд╡рд▓ BuildEnvironmentManager рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдореИрдВрдиреЗ рдмрд╣реБрдд рд╕реА рд╡реИрдЬреНрдЮрд╛рдирд┐рдХ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд┐рдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдкрдХреНрд╖рдкрд╛рддреА рд╣реВрдВред рд▓реЗрдХрд┐рди рдореИрдВ рдкрд╣рд┐рдпрд╛ рдирд┐рд░реНрдорд╛рдг рдирд┐рд░реНрднрд░рддрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреА рдПрдХ рд╕реВрдЪреА рдХреЛ рдЦрд░рд╛рдм рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдФрд░ рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕реНрд░реЛрдд рдирд┐рд░реНрднрд░рддрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рд╕реЛрдЪ рд╕рдХрддрд╛ред рд╢рд╛рдпрдж рдореИрдВ рдЧрд▓рдд рд╣реВрдБред

рдЦреИрд░, рдПрдХ рдХреЗ рд▓рд┐рдП рд╣рд░ OS рд╣реИ рдЬреЛ [Windows, macOS, Linux], IIRC рдирд╣реАрдВ рд╣реИ рдЬреЛ manylinux1 рджреНрд╡рд╛рд░рд╛ рдХрд╡рд░ рдирд╣реАрдВ рдХрд┐рдП рдЧрдП рд╣реИрдВред

@rgommers рдХреНрдпрд╛ рдЖрдк PEP 518 рдХреЗ рд╕рд╛рде рдареАрдХ рд░рд╣реЗрдВрдЧреЗ, рдпрджрд┐ рдпрд╣ рдЕрдЧрд▓реЗ рдкрд╛рдЗрдк рдореЗрдВ рд╣реЛрддрд╛ рддреЛ рдХреЗрд╡рд▓ рдкрд╣рд┐рдпреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрд▓рдмреНрдз рдмрд┐рд▓реНрдб рдирд┐рд░реНрднрд░рддрд╛ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛?

рдореЗрд░реА рдХреЙрд▓ рдирд╣реАрдВ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдпрд╣рд╛рдВ рдХрд┐рд╕реА рднреА рдХрджрдо рдХреЛ рдЖрдЧреЗ рдмрдврд╝рд╛рдиреЗ рдореЗрдВ рдЦреБрд╢реА рд╣реЛрдЧреАред рдкреАрдИрдкреА 518 рд╕рдорд░реНрдерди рд╡реИрд╕реЗ рднреА рд╡реИрдХрд▓реНрдкрд┐рдХ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдХреЗрд╡рд▓ рддрднреА рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдЬрдм рдкрд╣рд┐рдП рдЙрдкрд▓рдмреНрдз рд╣реЛрдВ (рдХрд╡рд░> 90% рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдореИрдВ рдХрд╣реВрдВрдЧрд╛) рдЕрднреА рднреА рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╕реБрдзрд╛рд░ рд╣реИред

рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдХрд┐ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдЬреЛ рдкреАрдИрдкреАрдЖрдИ рдкрд░ рдкрд╣рд┐рдпреЛрдВ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрддреЗ рд╣реИрдВ, рдЙрдирдХреЗ рдкрд╛рд╕ рдЕрднреА рднреА рдПрдХ рд╕реНрдерд╛рдиреАрдп рд╡реНрд╣реАрд▓ рдХреИрд╢ рд╣реЛрдЧрд╛, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рднрд▓реЗ рд╣реА рдкрд╛рдЗрдк рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдмреВрдЯрд╕реНрдЯреНрд░реИрдк рдЪреАрдЬреЛрдВ рдХреЛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдлрд┐рд░ рднреА рдпрд╣ рдЙрдиреНрд╣реЗрдВ рдкреНрд░рд┐рдВрдЯ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдХрд╣ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ "рдЗрди рдмрд┐рд▓реНрдб рдирд┐рд░реНрднрд░рддрд╛рдУрдВ рдХреЛ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ , рдФрд░ рдлрд┐рд░ рдпрд╣ рдХрд╛рдо рдХрд░реЗрдЧрд╛"ред

рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рдХрд┐рд╕реА рдХреЛ рдЗрд╕ рдмрд╛рдд рдХрд╛ рдЕрд╣рд╕рд╛рд╕ рд╣реИ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдорд╛рд╕реНрдЯрд░ рдореЗрдВ рдЖрдВрд╢рд┐рдХ рд╕рдорд░реНрдерди рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдореЗрдВ рдХреНрдпрд╛ рд╢рд╛рдорд┐рд▓ рд╣реЛрдЧрд╛?

рдореИрдВрдиреЗ рдЗрд╕ рдкрд░ рдЧреМрд░ рдХрд┐рдпрд╛; рдпрд╣ рдмрд╣реБрдд рдХрдард┐рди рдирд╣реАрдВ рд▓рдЧрддрд╛ред рдЕрдЧрд░ рд╣рдо рдЗрд╕ рддрд░рд╣ рд╕реЗ рдЬрд╛рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдореБрдЭреЗ рдЗрд╕рдХреЗ рд▓рд┐рдП рдкреАрдЖрд░ рдмрдирд╛рдиреЗ рдореЗрдВ рдЦреБрд╢реА рд╣реЛрдЧреАред

рдкрд┐рдк 10.0.0 рдХреЗ рдмрдЬрд╛рдп рдкрд┐рдк 9.1.0 рдХреЗ рд▓рд┐рдП +1

рдореБрдЭреЗ рдЕрдВрддрддрдГ рдбрд┐рд╕реНрдЯреБрдЯрд┐рд▓реНрд╕-рд╕рд┐рдЧ рдереНрд░реЗрдб рдХреЛ рдареАрдХ рд╕реЗ рдкрдврд╝рдиреЗ рдФрд░ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдкреАрдЖрд░ рдФрд░ рдЪрд░реНрдЪрд╛рдУрдВ рдХреЛ рджреЗрдЦрдиреЗ рдХрд╛ рд╕рдордп рдорд┐рд▓рд╛ (#4351, #4144, #4799 рдФрд░ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рдЕрдиреНрдп)ред рдЕрдм рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдордиреЗ рдкрд┐рдк 10 рдХреА рдШреЛрд╖рдгрд╛ рдХреА рд╣реИ; рд╣рдореЗрдВ рдпрд╣реА рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЖрдВрд╢рд┐рдХ PEP 518 рд╕рдорд░реНрдерди рдХреЗ рд╕рд╛рде -- рдирд╣реАрдВ 9.1.0ред

рдпрд╣ рд╕рдВрд╕реНрдХрд░рдг рд╕рдВрдЦреНрдпрд╛ рдФрд░ рдЙрдореНрд░ рдХреА рдмрд╛рдд рдореЗрд▓ рдЦрд╛рддреА рд╣реИ

рдмрдорд░ред :(

@ncoghlan рд╢рд╛рдпрдж рдпрд╣ рдЯрд┐рдкреНрдкрдгреА рд░рдбрд╛рд░ рдХреЗ рдиреАрдЪреЗ рдлрд┐рд╕рд▓ рдЧрдИ - https://github.com/pypa/pip/pull/4799#issuecomment -338416543

рдпрджрд┐ рдРрд╕рд╛ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рдЖрдк рд╕рдордЭрд╛ рд╕рдХреЗрдВ рдХрд┐ рдпрд╣ рдХреНрдпреЛрдВ рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдЙрд╕ рддрд░рд╣ рдХреЗ рд╕реЗрдЯрдЕрдк рдХреЛ рд╕рдордЭрддрд╛ рд╣реВрдВ рдФрд░ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдФрд░ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реВрдВред :)

@pradyunsg рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЬреНрдпрд╛рджрд╛рддрд░ рдХрд╛рдо рдХрд░реЗрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдмрд┐рд▓реНрдб рдХреИрд╢ рд╡рд┐рдЪрд╛рд░ рдХрд╛ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИред рдПрдХ рдкрд╣рд▓реВ рдЬреЛ рдЗрд╕реЗ рдХрд╡рд░ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рд╡рд╣ рдирд┐рд░реНрднрд░рддрд╛ рд▓реВрдк рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдореЗрдВ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ "рдореБрдЭреЗ рдЕрднреА рдХреБрдЫ рдРрд╕рд╛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рд╛ рдЧрдпрд╛ рдерд╛ рдЬрд┐рд╕реЗ рдореИрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдмрдирд╛рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ"ред

рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдкрд╛рдЗрдк рдХреЛ рдирд┐рд░реНрднрд░рддрд╛ рд▓реВрдк рдХреЛ рдЬрд╛рджреБрдИ рд░реВрдк рд╕реЗ рд╣рд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ - рдЗрд╕реЗ рдХреЗрд╡рд▓ рдЙрдиреНрд╣реЗрдВ рдкрд╣рдЪрд╛рдирдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдФрд░ рдЬреИрд╕реЗ рд╣реА рдпрд╣ рдПрдХ рдХреЛ рд╕реНрдкреЙрдЯ рдХрд░рддрд╛ рд╣реИ, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдЕрдирдВрдд рд▓реВрдк рдореЗрдВ рдЬрд╛рдиреЗ рдХреЗ рдмрдЬрд╛рдп рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред

рдЗрд╕рдореЗрдВ рдирд┐рд░реНрдорд╛рдг рдирд┐рд░реНрднрд░рддрд╛ рд▓реВрдк рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реИ,

рдпрд╣ рдмрд╛рдЗрдирд░реА-рдХреЗрд╡рд▓ рдирд┐рд░реНрдорд╛рдг рдирд┐рд░реНрднрд░рддрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдирд╣реАрдВ рд╣реЛрдЧрд╛?

@pradyunsg рд▓рд┐рдВрдХ рдХреА рдЧрдИ рдЯрд┐рдкреНрдкрдгреА рд╕реНрд░реЛрдд рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдереА, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдкрд░рд┐рдкрддреНрд░ рдирд┐рд░реНрднрд░рддрд╛ рдПрдХ рд╕рдВрднрд╛рд╡рд┐рдд рдЪрд┐рдВрддрд╛ рдмрди рдЬрд╛рддреА рд╣реИред рдпрджрд┐ рд╣рдореЗрдВ рдмрд╛рдЗрдирд░реА рдирд┐рд░реНрднрд░рддрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ pip рдлрд┐рд▓рд╣рд╛рд▓ рдореМрдЬреВрджрд╛ рд╡реНрд╣реАрд▓ рдХреИрд╢ рдкрд░ рднрд░реЛрд╕рд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИред

рдареАрдХ рд╣реИред рдзрдиреНрдпрд╡рд╛рдж! :)

рдореИрдВ рдЖрдВрд╢рд┐рдХ рдкреАрдИрдкреА 518 рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд╕рд╛рде рдПрдХ рдкреАрдЖрдИрдкреА 10 рдХреЗ рдкрдХреНрд╖ рдореЗрдВ рд╣реВрдВ рдЬреЛ рдХреЗрд╡рд▓ рдмрд╛рдЗрдирд░реА рдмрд┐рд▓реНрдб рдирд┐рд░реНрднрд░рддрд╛рдУрдВ рддрдХ рд╕реАрдорд┐рдд рд╣реИ (рдпрд╛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкрд╛рдЗрдк рд╡реНрд╣реАрд▓ рдХреИрд╢ рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реИ) рдпрджрд┐ рд╣рдо рдЗрд╕реЗ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░рддреЗ рд╣реИрдВред

рдореИрдВрдиреЗ рдЕрднреА рддрдХ рдкреВрд░рд╛ рдзрд╛рдЧрд╛ рдирд╣реАрдВ рдкрдврд╝рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рд╕рд┐рд░реНрдл рдпрд╣ рдмрддрд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдмрд╛рдЗрдирд░реА рдмрд┐рд▓реНрдб рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рд╕реАрдорд┐рдд рдХрд░рдиреЗ рдХрд╛ рдПрдХ рд╕рд╛рдЗрдб рдЗрдлреЗрдХреНрдЯ рдпрд╣ рд╣реЛрдЧрд╛ рдХрд┐ рдХрдИ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЖрдкрдХреЗ рдмрд┐рд▓реНрдб рдбрд┐рдкреЛ рдореЗрдВ рд╕реА рдирд┐рд░реНрднрд░рддрд╛ рд╣реЛрдирд╛ рдЕрд╕рдВрднрд╡ рд╣реИред рд╣рд╛рдБ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╡рд┐рдВрдбреЛрдЬрд╝, рдореИрдХрдУрдПрд╕ рдФрд░ рдХреБрдЫ рд▓рд┐рдирдХреНрд╕ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдкрд░ рдмрд╛рдЗрдирд░реА рд╡реНрд╣реАрд▓ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╣рдо рдРрд╕рд╛ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ:

  • рдХреЛрдИ рднреА рд▓рд┐рдирдХреНрд╕ рдЬреЛ рдЧреНрд▓рд┐рдмрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ (рдбреЙрдХрд░ рдХреЗ рдЕрдВрджрд░ рдЕрд▓реНрдкрд╛рдЗрди рд▓рд┐рдирдХреНрд╕ рдПрдХ рд▓реЛрдХрдкреНрд░рд┐рдп рд╣реИ)ред
  • рдХреЛрдИ рднреА *nix рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдЬреЛ Linux рдирд╣реАрдВ рд╣реИ, рдЬреИрд╕реЗ FreeBSD рдЖрджрд┐ред

рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реЛрдЧрд╛ рдХрд┐ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдХреЛрдИ рднреА CFFI рдЖрдзрд╛рд░рд┐рдд рдкрд░рд┐рдпреЛрдЬрдирд╛ рдпрд╛ рддреЛ PEP 518 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реЛрдЧреА рдпрд╛ рдЙрди рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдкрд░ рдЕрдирдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╣реЛрдЧреАред

рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдкрд╣рд▓реЗ рд╣реА рд▓рд╛рдпрд╛ рдЬрд╛ рдЪреБрдХрд╛ рд╣реЛ! рдореИрдВ рдЗрд╕ рдзрд╛рдЧреЗ рдХреЛ рдмрд╛рдж рдореЗрдВ рдкрдврд╝реВрдВрдЧрд╛ред

@dstufft рдпрд╣ рд╕рд╣реА рд╣реИред рд▓реЗрдХрд┐рди рд╣рдо рдЬреЛ рдкреНрд░рд╕реНрддрд╛рд╡ рджреЗ рд░рд╣реЗ рд╣реИрдВ рд╡рд╣ рдпрд╣ рд╣реИ рдХрд┐ рдкрд┐рдк рдХреИрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдПрдХ рд╡рд┐рдХрд▓реНрдк рд╣реИред рддреЛ рдЖрдк рдХреЗрд╡рд▓ pip wheel рдпрд╛ pip install рдЕрдкрдиреА рдмрд┐рд▓реНрдб рдирд┐рд░реНрднрд░рддрд╛ рдкрд╣рд▓реЗ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдлрд┐рд░ рдЙрдиреНрд╣реЗрдВ рдХреИрд╢ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдкрд╣рд▓реЗ рд╣реА рд▓рд╛рдпрд╛ рдЬрд╛ рдЪреБрдХрд╛ рд╣реЛ!

рдирд╣реАрдВред :)

рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реЛрдЧрд╛ рдХрд┐ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдХреЛрдИ рднреА CFFI рдЖрдзрд╛рд░рд┐рдд рдкрд░рд┐рдпреЛрдЬрдирд╛ рдпрд╛ рддреЛ PEP 518 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реЛрдЧреА рдпрд╛ рдЙрди рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдкрд░ рдЕрдирдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╣реЛрдЧреАред

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВред :-(

рдореЗрд░реЗ рджрд┐рдорд╛рдЧ рдореЗрдВ рдЗрд╕рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рдпрд╣ рд╣реЛрдЧрд╛ рдХрд┐ рд╣рдо рдкреАрдИрдкреА 518 рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдСрдкреНрдЯ-рдЗрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ - рдЕрдЧрд░ рдХреЛрдИ pyproject.toml рдлрд╝рд╛рдЗрд▓ рд╣реИ, рддреЛ рд╣рдо рдЕрд▓рдЧрд╛рд╡ + рдмрд┐рд▓реНрдб рд╡рд╛рддрд╛рд╡рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдЕрдиреНрдпрдерд╛ setup.py рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд╡рд░реНрддрдорд╛рди рд╡реНрдпрд╡рд╣рд╛рд░ рдкрд░ рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рддреЗ рд╣реИрдВ

рдореИрдВ рдЗрд╕ рдзрд╛рдЧреЗ рдХреЛ рдмрд╛рдж рдореЗрдВ рдкрдврд╝реВрдВрдЧрд╛ред

рдХрд░рдиреЗ рдХреА рдХреГрдкрд╛ рдХрд░реЗред :)

рдореЗрд░реА рдбреЛрдирд╛рд▓реНрдб рдЬреИрд╕реА рд╣реА рдЯрд┐рдкреНрдкрдгреА рдереА; рдЗрд╕ рд╕реВрддреНрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдореЗрд░реА рд╕рдордЭ рдпрд╣ рд╣реИ рдХрд┐ рдмрд╛рдЗрдирд░реА-рдУрдирд▓реА рдЕрд╕реНрдерд╛рдпреА рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕реЗ рдкрд╛рдЗрдк 10 рдХреЗ рд▓рд┐рдП рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рд╕рдордп рдирд╣реАрдВ рд╣реИред рд╕рд╣реА?

рдпрджрд┐ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдЗрд╕реЗ рд╕реНрдерд╛рдпреА рдирд┐рд░реНрдгрдп рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рддреЛ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ -1ред

рдореЗрд░реА рдбреЛрдирд╛рд▓реНрдб рдЬреИрд╕реА рд╣реА рдЯрд┐рдкреНрдкрдгреА рдереА; рдЗрд╕ рд╕реВрддреНрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдореЗрд░реА рд╕рдордЭ рдпрд╣ рд╣реИ рдХрд┐ рдмрд╛рдЗрдирд░реА-рдУрдирд▓реА рдЕрд╕реНрдерд╛рдпреА рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕реЗ рдкрд╛рдЗрдк 10 рдХреЗ рд▓рд┐рдП рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рд╕рдордп рдирд╣реАрдВ рд╣реИред рд╕рд╣реА?

рдпрд╣ рд╕рд╣реА рд╣реИред pip рдХреЛ рд╕реНрд░реЛрдд рдирд┐рд░реНрднрд░рддрд╛ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рд▓реЗрдХрд┐рди рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЬрдирд╢рдХреНрддрд┐ рдХреА рдХрдореА рд╣реИред

рдореЗрд░реЗ рджрд┐рдорд╛рдЧ рдореЗрдВ рдЗрд╕рдХрд╛ рддрд░реАрдХрд╛ рдпрд╣ рд╣реЛрдЧрд╛ рдХрд┐ рд╣рдо рдкреАрдИрдкреА 518 рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдСрдкреНрдЯ-рдЗрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ - рдЕрдЧрд░ рдХреЛрдИ pyproject.toml рдлрд╝рд╛рдЗрд▓ рд╣реИ, рддреЛ рд╣рдо рдЖрдЗрд╕реЛрд▓реЗрд╢рди + рдмрд┐рд▓реНрдб рдПрдирд╡рд╛рдпрд░рдирдореЗрдВрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдЕрдиреНрдпрдерд╛ setup.py рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд╡рд░реНрддрдорд╛рди рд╡реНрдпрд╡рд╣рд╛рд░ рдкрд░ рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рддреЗ рд╣реИрдВред

рдореИрдВрдиреЗ рдЗрд╕ рдЯрд┐рдкреНрдкрдгреА рдХреЛ рджреЛрдмрд╛рд░рд╛ рдкрдврд╝рд╛ рдФрд░ рдореИрдВ рдпрд╣рд╛рдВ рдЕрд╕рд╣рдордд рд╣реЛрдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВред рдкреАрдИрдкреА 518 рд╕рдорд░реНрдерди рд╡реИрдХрд▓реНрдкрд┐рдХ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, (рдкреАрдИрдкреА 517 рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛рд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП) рдЖрдИрдПрдордПрдЪрдУ, рд▓реЗрдХрд┐рди рдЗрди рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдкрд░ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рд╕реНрдерд╛рдкрдирд╛ рд░рджреНрдж рдирд╣реАрдВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред

рдЕрдзрд┐рдХ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдЖрдк рдЬрд┐рд╕ рд╡рд┐рд╢реЗрд╖ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рд╡рд╣ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдЖрдкрдХреЛ рдкреАрдИрдкреА 518 рдорд┐рд▓рддрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдЖрдкрдХреА рдмрд┐рд▓реНрдб рдирд┐рд░реНрднрд░рддрд╛ рдкрд╣рд┐рдпреЛрдВ рдпрд╛ рдХреИрд╢ рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реИ рдпрд╛ рдирд╣реАрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╣рдо рдЙрди рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдХреЗ рд▓рд┐рдП рдкреАрдИрдкреА 518 рд╕рдорд░реНрдерди рдХреЛ рдЕрдирд┐рд╡рд╛рд░реНрдп рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ, рд╕рд╛рде рд╣реА рдЕрдЧрд░ рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреА рддрд░рд╣ рдПрдХ рд╕рдВрджреЗрд╢ рдереВрдХрддреЗ рд╣реИрдВ:

Error: build dependency X is not in the pip cache. Run "pip install X" before installing Y.

рдореЗрд░реЗ рдЕрдкрдиреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЛ рд╕рд╛рд░рд╛рдВрд╢рд┐рдд рдХрд░рдирд╛:

  1. рдореИрдВ рд╕рдорд╕реНрдпрд╛ рдХреЗ рдХреБрдЫ рд╡рд░реНрдЧреЛрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрднрд░рддрд╛ рд▓реВрдк рдХрд╛ рдирд┐рд░реНрдорд╛рдг) рдХреЛ рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рдкрд╣рд▓реЗ рдЬрд╛рд░реА рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдореЗрдВ рдЕрд╕рдВрднрд╡ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╛рдЗрдк 10 рдореЗрдВ рдЕрд╕реНрдерд╛рдпреА рд╕реАрдорд╛ рдХреЗ рд░реВрдк рдореЗрдВ "рдмрд┐рд▓реНрдб рдирд┐рд░реНрднрд░рддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдирд┐рд░реНрдорд╛рдг рд╕рдорд░реНрдерди рдирд╣реАрдВ" рджреЗрдЦрддрд╛ рд╣реВрдВред рдкреНрд▓рдЧ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдмрд┐рд▓реНрдб рдмреИрдХрдПрдВрдб рд╕рдорд░реНрдерди рдХреЗ рднрд╡рд┐рд╖реНрдп рдХреЗ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдпреЛрдВ, рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд╕реНрд░реЛрдд рдмрд┐рд▓реНрдб рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдорд╛рдг рдХреА рдЕрдиреБрдорддрд┐ рджреЗ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрдмрдХрд┐ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рдХреЗ рдмрд╛рдж рдЙрддреНрдкрдиреНрди рд╣реЛрдиреЗ рд╡рд╛рд▓реА рдирдИ рд╕рдорд╕реНрдпрд╛рдУрдВ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рдЙрдкрд╛рдп рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред
  2. рдПрдХ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рдореЗрдВ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ python -m pip wheel X Y Z рдХрдорд╛рдВрдб рдХреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд░реВрдк рд╕реЗ рдмрд┐рд▓реНрдб рдХреЛ рдЪрд▓рд╛рдП рдмрд┐рдирд╛ рдЙрддреНрд╕рд░реНрдЬрд┐рдд рдХрд░рдирд╛ рдЕрднреА рдХреЗ рд▓рд┐рдП рдПрдХ рдкрд░реНрдпрд╛рдкреНрдд рд╕рдорд╛рдзрд╛рди рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдкрд╛рдЗрдк рдЕрдирдЬрд╛рдиреЗ рдореЗрдВ рдПрдХ рдорд╢реАрди рдХреЛ рдмрдо рд╕реЗ рдЙрдбрд╝рд╛ рдирд╣реАрдВ рд╕рдХрддрд╛ рд╣реИред
  3. рдЖрдЗрд╕реЛрд▓реЗрдЯреЗрдб рдмрд┐рд▓реНрдб рд╢рд╛рдпрдж рдЕрднреА рддрдХ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬрдм рддрдХ рдХрд┐ рдмрдирд╛рдП рдЬрд╛ рд░рд╣реЗ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡реНрд╣реАрд▓ рдореЗрдВ pyproject.toml рдлрд╝рд╛рдЗрд▓ рди рд╣реЛ, рдпрд╛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдмрд┐рд▓реНрдб рдХреЛ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рд╕реЗ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЕрдиреБрд░реЛрдз рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдПрдХ рдкрд┐рдЫрдбрд╝рд╛ рд╕рдВрдЧрддрддрд╛ рдореБрджреНрджрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдореМрдЬреВрджрд╛ рдкрд░рд┐рдпреЛрдЬрдирд╛рдПрдВ рдЧреИрд░-рдкреГрдердХ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░ рд░рд╣реА рд╣реИрдВред рдПрдХ рдмрд╛рд░ рд░рд┐рд▓реАрдЬ рдпрд╛ рджреЛ рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ-рдЕрд▓рдЧ рдмрд┐рд▓реНрдб рдЙрдкрд▓рдмреНрдз рд╣реЛ рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж, рдФрд░ рдЙрдирдХреЗ рд╕рд╛рде рдХрд┐рд╕реА рднреА рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХреЗ рдореБрджреНрджреЛрдВ рдкрд░ рдХрд╛рдо рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рд╡реЗ рдЖрдо рддреМрд░ рдкрд░ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдмрди рд╕рдХрддреЗ рд╣реИрдВ (рд╢рд╛рдпрдж рдПрдХ рд╡рд┐рд╢реЗрд╖ рдирд┐рд░реНрдорд╛рдг рд╡рд╛рддрд╛рд╡рд░рдг рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рд╡рд┐рдХрд▓реНрдк рдХреЗ рд╕рд╛рде рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд░реВрдк рд╕реЗ рдкреГрдердХ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд╛рд▓реЗ)

@ncoghlan рдмрд╕ рдЖрдкрдХреЛ рдПрдХ рд╣реЗрдб-рдЕрдк рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП: рдХреЛрдИ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдмрд┐рд▓реНрдб рдЕрд▓рдЧрд╛рд╡ рдХрд╛ рдорддрд▓рдм рдХреЛрдИ рдкреАрдИрдкреА 517 рдирд╣реАрдВ рд╣реИ (рдХрдо рд╕реЗ рдХрдо рдореЗрд░реЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд╕рд╛рде) рдХреНрдпреЛрдВрдХрд┐ рд╕реЗрдЯрдЕрдкрдЯреВрд▓ рдХрд╛ рдХреЗрд╡рд▓ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдЗрд╕рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ (рд╣рдореЗрдВ рдПрдХ рдирдпрд╛ рд╕реЗрдЯрдкреВрд▓ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рднрд▓реЗ рд╣реА рд╡реНрдпрдХреНрддрд┐ рдкрд░ рдХреНрдпрд╛ рд╣реИ рд╕рдВрдЧрдгрдХ)ред рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдкреАрдИрдкреА 517 рдореЗрдВ рдХрдо рд╕реЗ рдХрдо рдПрдХ рд╡рд░реНрд╖ рдХреА рджреЗрд░реА рд╣реЛ рд╕рдХрддреА рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдирд╛рдЯрдХреАрдп рд░реВрдк рд╕реЗ рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдкреНрд░рдпрд╛рд╕реЛрдВ рдХреА рдорд╛рддреНрд░рд╛ рдореЗрдВ рд╡реГрджреНрдзрд┐ рдХрд░реЗрдЧрд╛ (рдкреАрдИрдкреА 517 рдФрд░ рдЧреИрд░-рдкреАрдИрдкреА 517 рдХреЛрдб рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ)ред

рдпрд╣ рдПрдХ рдкрд┐рдЫрдбрд╝рд╛ рд╕рдВрдЧрддрддрд╛ рдореБрджреНрджрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдореМрдЬреВрджрд╛ рдкрд░рд┐рдпреЛрдЬрдирд╛рдПрдВ рдЧреИрд░-рдкреГрдердХ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░ рд░рд╣реА рд╣реИрдВред

рдЕрдзрд┐рдХрд╛рдВрд╢ рд▓реЛрдЧреЛрдВ рдХреЗ рдкрд╛рд╕ рд╕реАрдЖрдИ-рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реИрдВ рдЬреЛ pip install X рдЪрд▓рддреА рд╣реИрдВ рдФрд░ рдлрд┐рд░ pip install Y рдЪрд▓рддреА рд╣реИрдВред рдЗрди рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдПрдХ pypproject.toml рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛ред рд▓реЗрдХрд┐рди pyproject.toml рдЬреЛрдбрд╝рдирд╛ рдЗрддрдирд╛ рдХрд╛рдо рдирд╣реАрдВ рд╣реИ, рдФрд░ рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рддреЛ рд╣рдо рдмрд┐рд▓реНрдб рдЕрд▓рдЧрд╛рд╡ рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдзреНрд╡рдЬ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред

рдЕрдЧрд░ рдХрд┐рд╕реА рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдкрд╛рдЗрдк 10 рдореЗрдВ pyproject.toml рдирд╣реАрдВ рд╣реИ рддреЛ рд╣рдореЗрдВ рдХрдо рд╕реЗ рдХрдо рдПрдХ рдЪреЗрддрд╛рд╡рдиреА рджреЗрдиреА рдЪрд╛рд╣рд┐рдП (рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдкреАрдИрдкреА 517 рд╕рдорд░реНрдерди рд╡реИрд╕реЗ рднреА рдирд╣реАрдВ рд╣реЛрдиреЗ рд╡рд╛рд▓рд╛ рд╣реИ)ред

@xviat "рдпрд╣ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрддрдирд╛ рдХрд╛рдо рдирд╣реАрдВ рд╣реЛрдЧрд╛" рдпрд╣ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдкрд┐рдЫрдбрд╝рд╛ рд╕рдВрдЧрддрддрд╛ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддреА рд╣реИред рдпрджрд┐ рдРрд╕рд╛ рд╣реЛрддрд╛, рддреЛ рдкрд╛рдЗрдк рдЕрдм рддрдХ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдЧреИрд░-рд╡реЗрдирд╡ рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдореЙрдбрд▓ рдХреЗ рд░реВрдк рдореЗрдВ --user рдкрд░ рд╕реНрд╡рд┐рдЪ рд╣реЛ рдЬрд╛рддрд╛ :)

рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛрдкреАрдИрдкреА 517 рдХреА рдмрд╛рдд рд╣реИ, рддреЛ рдЖрдк pyproject.toml рдлрд╛рдЗрд▓ рдХреЛ рдЬреЛрдбрд╝реЗ рдмрд┐рдирд╛ рдкреИрдХреЗрдЬ рдкреНрд░рдХрд╛рд╢рдХ рдХреЗ рд░реВрдк рдореЗрдВ рдкреАрдИрдкреА 517 рдкрд░ рдирд┐рд░реНрднрд░ рдирд╣реАрдВ рд░рд╣ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдареАрдХ рд╣реИ рдЕрдЧрд░ setup.py -рдХреЗрд╡рд▓ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЛ рдкреАрдИрдкреА 517 рд╕рдорд░реНрдерди рдирд╣реАрдВ рдорд┐рд▓рддрд╛ рд╣реИ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗред

рдХреНрдпрд╛ рдЖрдк рдЪреЗрддрд╛рд╡рдиреА рджреЗрдиреЗ рд╕реЗ рдареАрдХ рд╣реЛрдВрдЧреЗ?

рдореИрдВ рдЗрд╕реЗ рдПрдХ рд╕рдорд╕реНрдпрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рджреЗрдЦреВрдВрдЧрд╛ рдпрджрд┐ рдХреЛрдИ рдирд┐рд░реНрдорд╛рдг рдЬреЛ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдХреЗрд╡рд▓ рдПрдХ рдЪреЗрддрд╛рд╡рдиреА рдереВрдХрдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдкрд╛рдЗрдк рдХреЛ рдЕрдкрдЧреНрд░реЗрдб рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рднрд▓реЗ рд╣реА рди рддреЛ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдФрд░ рди рд╣реА рдЗрд╕рдХреА рдХреЛрдИ рдирд┐рд░реНрднрд░рддрд╛ рдмрджрд▓ рдЧрдИ рд╣реЛред

рдкреАрдИрдкреА 518 рдФрд░ 517 рдХреЛ рдЬрд╛рдирдмреВрдЭрдХрд░ рдореМрдЬреВрджрд╛ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╢реВрдиреНрдп рд╡реНрдпрд╡рдзрд╛рди рдкреИрджрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЬрд┐рд╕рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╕рднреА рдкреНрд░рдХрд╛рд╢рдХ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕реЗрдЯрдЕрдк рдЯреВрд▓ рдкрд░ рдирд┐рд░реНрднрд░ рдереЗред

рдпрд╣ pip рдХреЗ рд▓рд┐рдП рдПрдХ рдПрдХрд▓ рдкреАрдИрдкреА 518 рдмрд┐рд▓реНрдб рдкрде рдХреЛ рд╕реЗрдЯрдкреНрдЯреВрд▓ рдЖрдзрд╛рд░рд┐рдд рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рднреА рд╕рдореЗрдХрд┐рдд рдХрд░рдиреЗ рдХреЗ рдЙрджреНрджреЗрд╢реНрдп рд╕реЗ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рд▓рд┐рдП рд╕рдордп рдЕрд▓рдЧ-рдЕрд▓рдЧ рдмрд┐рд▓реНрдбреЛрдВ рдХреЗ рд░рд┐рд▓реАрдЬ рдпрд╛ рджреЛ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдЙрдкрдпреЛрдЧ рдХреЗ рдмрд╛рдж рджреЗрдЦрд╛ рдЧрдпрд╛ рд╣реИ, рдирд╣реАрдВ рдкрд╣рд▓реЗ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдЬреЛ рдЙрдирдХрд╛ рдмрд┐рд▓реНрдХреБрд▓ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред

рдореЗрд░реА рдбреЛрдирд╛рд▓реНрдб рдЬреИрд╕реА рд╣реА рдЯрд┐рдкреНрдкрдгреА рдереА; рдЗрд╕ рд╕реВрддреНрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдореЗрд░реА рд╕рдордЭ рдпрд╣ рд╣реИ рдХрд┐ рдмрд╛рдЗрдирд░реА-рдУрдирд▓реА рдЕрд╕реНрдерд╛рдпреА рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕реЗ рдкрд╛рдЗрдк 10 рдХреЗ рд▓рд┐рдП рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рд╕рдордп рдирд╣реАрдВ рд╣реИред рд╕рд╣реА?

рд╣рд╛рдВред рдмрд┐рд▓реНрдХреБрд▓ред


рдпрд╣ рдкрд╛рдЗрдк рдХреЗ рд▓рд┐рдП рдПрдХ рдПрдХрд▓ рдкреАрдИрдкреА 518 рдмрд┐рд▓реНрдб рдкрде рдХреЛ рд╕реЗрдЯрдкреНрдЯреВрд▓ рдЖрдзрд╛рд░рд┐рдд рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рднреА рд╕рдореЗрдХрд┐рдд рдХрд░рдиреЗ рдХреЗ рдЙрджреНрджреЗрд╢реНрдп рд╕реЗ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рд▓рд┐рдП рд╕рдордп рдЕрд▓рдЧ-рдЕрд▓рдЧ рдмрд┐рд▓реНрдбреЛрдВ рдХреЗ рд░рд┐рд▓реАрдЬ рдпрд╛ рджреЛ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдЙрдкрдпреЛрдЧ рдХреЗ рдмрд╛рдж рд╣реИ, рдкрд╣рд▓реЗ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдирд╣реАрдВ рдЙрдирдХрд╛ рдмрд┐рд▓реНрдХреБрд▓ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВред

+1

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдореЗрдВ 2 рдкреНрд░рдореБрдЦ рд░рд┐рд▓реАрдЬ рдХреА рддрд░рд╣ рдкреБрд░рд╛рдиреЗ рд░рд╛рд╕реНрддреЗ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХрд╛ рд▓рдХреНрд╖реНрдп рд░рдЦрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЬрдм рдкрд╛рдЗрдк рднреВрдорд┐ рдкреВрд░реНрдг рдФрд░ рдЙрдЪрд┐рдд рдкреАрдИрдкреА 518 рд╕рдорд░реНрдерди; рд╣рдореЗрдВ рдкреБрд░рд╛рдиреЗ рдирд┐рд░реНрдорд╛рдг рддрд░реНрдХ рдХреЛ рд╣рдЯрд╛ рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдЗрд╕реЗ рдорд╛рдирдХ рдмрд╣рд┐рд╖реНрдХрд░рдг рдиреАрддрд┐ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╣рдЯрд╛ рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдореИрдВ рдирд┐рдХ рдХреЗ рд╕рд╛рд░рд╛рдВрд╢ рд╕реЗ рд╕рд╣рдордд рд╣реВрдВ рдФрд░...

рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдкреНрд░рдпрд╛рд╕реЛрдВ рдХреА рдорд╛рддреНрд░рд╛ рдореЗрдВ рдирд╛рдЯрдХреАрдп рд░реВрдк рд╕реЗ рд╡реГрджреНрдзрд┐ рдХрд░реЗрдЧрд╛

рдирд╣реАрдВ, рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдкреАрдИрдкреА 518 рдХреЛ рдЗрд╕ рддрд░рд╣ рд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рд╕реЗ рдХреЛрдИ рдмрдбрд╝реА рд╕рдбрд╝рдХ рдмреНрд▓реЙрдХ рд╣реЛ рдЧрдИ рд╣реИ; рдореИрдВрдиреЗ https://github.com/pypa/pip/pull/4799#issuecomment -339219397 рдкрд░ рдПрдХ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдЯрд┐рдкреНрдкрдгреА рдХреА рдХрд┐ рдЗрд╕реЗ рдкрд╛рдЗрдк рдХреЗ рднреАрддрд░ рдХреИрд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред


рд╣рдо рдЬреЛ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рд╡рд╣ рд▓реЛрдЧреЛрдВ рдХреЛ рдкреБрд░рд╛рдиреЗ рд╕реЗ рдирдП рдореЗрдВ рд╕реНрд╡рдЪреНрдЫ рд╕рдВрдХреНрд░рдордг рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╣рдореЗрдВ рд╡рд░реНрддрдорд╛рди рдкрд╛рдЗрдк 9 рдЗрдВрд╕реНрдЯрд╛рд▓ рд▓реЙрдЬрд┐рдХ рдХреЛ рдЕрдкрд░рд┐рд╡рд░реНрддрд┐рдд рд░рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ - рдЬреЛ рдореВрд▓ рд░реВрдк рд╕реЗ рд╣рд░ рдЙрд╕ рдЪреАрдЬ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░реЗрдЧрд╛ рдЬреЛ рд╣рдо рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдареАрдХ рдЙрд╕реА рддрд░рд╣ рд╕реЗ рдХрд░рддреЗ рд╣реИрдВ рдЬреИрд╕реЗ рд╣рдо рдХрд░рддреЗ рд╣реИрдВред

рд╕рдВрдЧреНрд░рд╣ рдореЗрдВ pyproject.toml рдлрд╝рд╛рдЗрд▓ рдбрд╛рд▓рдиреЗ рдХрд╛ рдЕрд░реНрде рдпрд╣ рд╣реЛрдЧрд╛ рдХрд┐ рдкреИрдХреЗрдЬ рдирдП рдорд╛рдирдХ рдХреЛ рдЪреБрди рд░рд╣рд╛ рд╣реИ рдФрд░ рдирдП рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИ - рдЕрд▓рдЧрд╛рд╡ рдФрд░ рдмрд╛рдЗрдирд░реА-рдУрдирд▓реА рдмрд┐рд▓реНрдб рдХреЗ рд╕рд╛рде рдмрд┐рд▓реНрдб рд╡рд╛рддрд╛рд╡рд░рдг рд╕реЗ рдЧреБрдЬрд░рдирд╛ -рдирд┐рд░реНрднрд░рддрд╛ (рдЕрднреА рдХреЗ рд▓рд┐рдП)ред

рдирд╣реАрдВ, рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдкреАрдИрдкреА 518 рдХреЛ рдЗрд╕ рддрд░рд╣ рд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рд╕реЗ рдХреЛрдИ рдмрдбрд╝реА рд╕рдбрд╝рдХ рдмреНрд▓реЙрдХ рд╣реЛ рдЧрдИ рд╣реИ;

рдкреАрдИрдкреА 517 рдкрд░ рдпрд╣рд╛рдВ рдЪрд░реНрдЪрд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдЧрд▓рддрдлрд╣рдореА рдХреЗ рд▓рд┐рдП рдЦреЗрдж рд╣реИред

рджреЛрдиреЛрдВ рдХреЛрдб рдкрдереЛрдВ рдХреА рдЬрд╛рдВрдЪ рдХреЗ рд▓рд┐рдП рд╣рдореЗрдВ рджреЛ рдмрд╛рд░ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдиреЗ рд╣реЛрдВрдЧреЗред рдЖрд╣ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдкреАрдИрдкреА 517 рд╢рд╛рдпрдж рдЖрд╕реНрдердЧрд┐рдд рд╣реИред

рдЖрдИрдПрдордУ,

  1. рдЪреЗрддрд╛рд╡рдиреА рдЕрдЧрд░ рдХрд┐рд╕реА рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ pyproject.toml рдирд╣реАрдВ рд╣реИ рддреЛ рдпрд╣ рдмрд╣реБрдд рдмреБрд░рд╛ рд╡рд┐рдЪрд╛рд░ рд▓рдЧрддрд╛ рд╣реИред рдЖрдЦрд┐рд░рдХрд╛рд░, рдкреАрдИрдкреАрдЖрдИ рдкрд░ 99% рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рд╡рд░реНрддрдорд╛рди рдореЗрдВ pyproject.toml рдирд╣реАрдВ рд╣реИ, рдФрд░ рд╣рдо рдЕрдВрддрд┐рдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдЪреЗрддрд╛рд╡рдиреА рдХреЗ рд╕рд╛рде рд╕реНрдкреИрдо рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╡реЗ рдХреБрдЫ рднреА рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рд╕рдорд╕реНрдпрд╛ рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛) )ред рдХреНрдпрд╛ рдореИрдВ рдХреБрдЫ рднреВрд▓ рд░рд╣рд╛ рд╣реВрдБ?
  2. рдореБрдЭреЗ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдкреАрдИрдкреА 518 рдореЗрдВ рдмрд┐рд▓реНрдб рдЕрд▓рдЧрд╛рд╡ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдпрд╣ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдкреАрдЖрдИрдкреА рдХреБрдЫ рд╕рдордп рдХреЗ рд▓рд┐рдП рд╢рд╛рдорд┐рд▓ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдкреАрдИрдкреА 518 рд╕рдорд░реНрдерди рд╕реЗ рдЬреБрдбрд╝рд╛ рдирд╣реАрдВ рд╣реИ, рд╕рдВрдпреЛрдЧ рддрдереНрдп рдХреЛ рдЫреЛрдбрд╝рдХрд░ рдХрд┐ рд╡рд╣реА рдкреАрдЖрд░ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рджреЛрдиреЛрдВ (AFAIR)ред рдЗрд╕рд▓рд┐рдП рдЕрдЧрд░ рдмрд┐рд▓реНрдб рдЖрдЗрд╕реЛрд▓реЗрд╢рди рд╣рдореЗрдВ рдпрд╣рд╛рдВ рд╕рдорд╕реНрдпрд╛ рджреЗ рд░рд╣рд╛ рд╣реИ, рддреЛ рдореИрдВ рд╢реБрд░реБрдЖрдд рдореЗрдВ рд╕рд┐рд░реНрдл рдкреАрдИрдкреА 518 рд░рдЦрдиреЗ рдФрд░ рдЪрд░рдг 2 рдХреЗ рд░реВрдк рдореЗрдВ рдЖрдЗрд╕реЛрд▓реЗрд╢рди рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд╕рд╛рде рдареАрдХ рд╣реВрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдореИрдВ рдЪреАрдЬреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдпрд╣ рдирд┐рд░реНрдгрдп рдЫреЛрдбрд╝ рджреВрдВрдЧрд╛ред

рдХреНрдпрд╛ рдореИрдВ рдХреБрдЫ рднреВрд▓ рд░рд╣рд╛ рд╣реВрдБ?

рдирд╣реАрдВред

рдореИрдВ рд╢реБрд░реБрдЖрдд рдореЗрдВ рд╕рд┐рд░реНрдл рдкреАрдИрдкреА 518 рдХреЗ рд╕рд╛рде рдареАрдХ рд╣реВрдВ, рдФрд░ рдЪрд░рдг 2 рдХреЗ рд░реВрдк рдореЗрдВ рдЕрд▓рдЧрд╛рд╡ рдХреЛ рдЬреЛрдбрд╝ рд░рд╣рд╛ рд╣реВрдВред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдореЗрдВ рдкреАрдИрдкреА 518 рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдПрдХ рд╕рд╛рде рдЕрд▓рдЧрд╛рд╡ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдПрдХ рдЕрдЪреНрдЫрд╛ рддрд░реАрдХрд╛ рд╣реИ рдХрд┐ рд▓реЛрдЧ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдмрд┐рд▓реНрдб рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░реЗрдВред

рдЬрдмрдХрд┐ рди рддреЛ рдкреАрдИрдкреА 518 рдФрд░ рди рд╣реА рдкреАрдИрдкреА 517 рдХреЛ рдкреГрдердХ рдмрд┐рд▓реНрдб рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдкреАрдИрдкреА 517 рдЙрдиреНрд╣реЗрдВ рдзреНрд╡рдирд┐ рдХрд╛рд░рдгреЛрдВ рд╕реЗ рдЕрдиреБрд╢рдВрд╕рд╛ рдХрд░рддрд╛ рд╣реИ: https://www.python.org/dev/peps/pep-0517/#recommendations -for-build-frontends-non-normative

рд╕реНрдерд╛рдиреАрдп рдмрд╛рдЗрдирд░реА рдЖрд░реНрдЯрд┐рдлреИрдХреНрдЯ рдХреИрд╢ рдХреЗ рдмрд┐рдирд╛, рдкреГрдердХ рдирд┐рд░реНрдорд╛рдг рд╡рд╛рддрд╛рд╡рд░рдг рдЕрд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдПрдХ рдмрд╛рд░ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЙрдирдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ (рдЬреИрд╕рд╛ рдХрд┐ pip рдЕрдм рдХрд░рддрд╛ рд╣реИ), рд╡реЗ рдХрд╣реАрдВ рдЕрдзрд┐рдХ рд╡реНрдпрд╡рд╣рд╛рд░реНрдп рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐:

  1. рдЕрдзрд┐рдХрд╛рдВрд╢ рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдкрд░, рдЖрдкрдХреЛ рдкрд╣рд▓реА рдмрд╛рд░ рдореЗрдВ рд╕реЛрд░реНрд╕ рдмрд┐рд▓реНрдб рдХрд░рдиреЗ рдХреА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрдЧреА
  2. рдЬрдм рдЖрдкрдХреЛ рд╕реНрд░реЛрдд рдирд┐рд░реНрдорд╛рдг рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рддреЛ рдЖрдк рдЖрдорддреМрд░ рдкрд░ рдХреИрд╢ рд╕реЗ рдмрд┐рд▓реНрдб рд╡рд╛рддрд╛рд╡рд░рдг рд╕реЗрдЯ рдХрд░ рд░рд╣реЗ рд╣реЛрдВрдЧреЗ

рд╕рд╛рде рд╣реА, рдЕрд▓рдЧ-рдЕрд▓рдЧ рдирд┐рд░реНрдорд╛рдг рдкрд░рд┐рд╡реЗрд╢реЛрдВ рдХреЛ рдкреНрд░рдХрд╛рд╢рдХреЛрдВ рд╕реЗ рдереЛрдбрд╝рд╛ рдЕрдзрд┐рдХ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЙрдирдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдмрдЧреНрдЧреА рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд╢рдХ рдХреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЛ рдЗрд╕ рддрд░рд╣ рд╕реЗ рддреЛрдбрд╝ рджреЗрдЧрд╛ рдЬрд┐рд╕рд╕реЗ рдЙрдиреНрд╣реЗрдВ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ "рдореЗрд░реА рдмрд┐рд▓реНрдб рдирд┐рд░реНрднрд░рддрд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдШреЛрд╖рд┐рдд рдирд╣реАрдВ рдХреА рдЧрдИ" рдХрд╣рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдПрдХ рдирд┐рд░реНрдорд╛рдг рдХрд░реЛред

рдЗрд╕рд▓рд┐рдП pyproject.toml рдЖрдзрд╛рд░рд┐рдд рдмрд┐рд▓реНрдб рдХреЛ рд╢реБрд░реБрдЖрдд рд╕реЗ рдЕрд▓рдЧ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдПрдХ рдкреНрд░рд╛рдХреГрддрд┐рдХ рд╕реНрд╡рд┐рдЪрд┐рдВрдЧ рдкреЙрдЗрдВрдЯ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╕рдВрдкреВрд░реНрдг рдкреАрдИрдкреА рд░рдирдЯрд╛рдЗрдо рдирд┐рд░реНрднрд░рддрд╛ рд╕реЗ рдЕрд▓рдЧ рдмрд┐рд▓реНрдб рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдФрд░ рд▓рдЧрд╛рддрд╛рд░ рдШреЛрд╖рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ setup.py рд╕реЗ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд▓реЛрдЧ рд╕рдВрднрд╡рддрдГ рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рдЙрд╕ рддрд░рд╣ рдХрд╛ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдкрд░рд╡рд╛рд╣ рдХрд░рддреЗ рд╣реИрдВ, рдЬрдмрдХрд┐ рдирдИ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдирдП рд╕рд┐рд░реЗ рд╕реЗ рдЖрдиреЗ рд╡рд╛рд▓реЗ рд▓реЛрдЧ рдЗрд╕реЗ рдПрдХ рдФрд░ рдШреЗрд░рд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдиреЗрдВрдЧреЗ рдХрд┐ рдкреИрдХреЗрдЬрд┐рдВрдЧ рдЯреВрд▓реАрдВрдЧ рдЙрдиреНрд╣реЗрдВ рдХреВрджрдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╛рдзреНрдп рдХрд░рддрд╛ рд╣реИ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗред

рдЗрд╕рд▓рд┐рдП, рдХреЛрдб рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдиреАрдЪреЗ рдЖрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдореИрдВ рдмрд╕ рдХреБрдЫ рдЪреАрдЬреЛрдВ рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ:

  • рдкреАрдИрдкреА 517 рд╕рдорд░реНрдерди рдкрд╛рдЗрдк 10 рдХреЗ рд▓рд┐рдП рдЕрд╡рд░реЛрдзрдХ рдирд╣реАрдВ рд╣реИ
  • рдкреАрдИрдкреА 518 рдкрд┐рдк 10 рдореЗрдВ

    • pyproject.toml . рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдСрдкреНрдЯ-рдЗрди рдХрд░реЗрдВ

    • рдХреЗрд╡рд▓ рдмрд╛рдЗрдирд░реА-рдХреЗрд╡рд▓ рдмрд┐рд▓реНрдб-рдирд┐рд░реНрднрд░рддрд╛ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ

    • рдкреГрдердХ рдирд┐рд░реНрдорд╛рдг

рдкреАрдИрдкреА 517 рдкрд╛рдЗрдк 10 рдХреЗ рд▓рд┐рдП рдЕрд╡рд░реЛрдзрдХ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЕрднреА рддрдХ рддреИрдпрд╛рд░ рдирд╣реАрдВ рд╣реИ, рдФрд░ рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░ рдЖрдЧреЗ рдХреЛрдИ рд╕реНрдкрд╖реНрдЯ рд░рд╛рд╕реНрддрд╛ рдирд╣реАрдВ рд╣реИ (рдЖрдЧреЗ рдХрд╛ рд░рд╛рд╕реНрддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ)ред

рдореЗрд░реЗ рдкрд╛рд╕ @xoviat рдХреА рдЯрд┐рдкреНрдкрдгреА рдХреЗ рдЬрд╡рд╛рдм рдореЗрдВ рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдФрд░ рдкреНрд░рд╢реНрди рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЪреБрдиреМрддрд┐рдпреЛрдВ рдХрд╛ рд╕рд╛рд░рд╛рдВрд╢ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рд╕рд╛рде рд╣реА рдЗрд╕ рдзрд╛рдЧреЗ рдХреЛ рдЬрд▓реНрджреА рд╕реЗ рдкрдврд╝рдиреЗ рдХреЗ рдмрд╛рдж рднреАред

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ рдЙрдбрд╝рдиреЗ рд╡рд╛рд▓реА рдЪреАрдЬреЛрдВ рдХреЗ рд░рд┐рдХрд░реНрд╕рди рдореБрджреНрджреЗ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ, рдЖрдо рддреМрд░ рдкрд░ рдХрд┐рд╕реА рднреА рдкреБрдирд░рд╛рд╡рд░реНрддреА рдХрд╛рд░реНрдп рдХреЛ рдПрдХ рдкреБрдирд░рд╛рд╡рд░реНрддрдХ рдХреЗ рд▓рд┐рдП "рдЕрдиреБрд╡рд╛рджрд┐рдд" рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдореИрдВ рд╕реЛрдЪ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдХреНрдпрд╛ рд╡рд╣ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдЕрдзрд┐рдХ рдирд┐рдпрдВрддреНрд░рдг рдкреНрд░рджрд╛рди рдХрд░рдХреЗ рдпрд╣рд╛рдВ рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реИред

рджреВрд╕рд░рд╛, рдкрд╛рдЗрдерди рдХреЗ рднреАрддрд░ рд╕реЗ рдкрд╛рдЗрдк рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд╡рд┐рд░реЛрдз рдореЗрдВ рд╢реЗрд▓рд┐рдВрдЧ рдЖрдЙрдЯ рдХреНрдпрд╛ рдЦрд░реАрджрддрд╛ рд╣реИ? рдХреНрдпрд╛ рдХреЛрдИ рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдПрдХ рдЖрдВрддрд░рд┐рдХ рдПрдкреАрдЖрдИ рдлрд╝рдВрдХреНрд╢рди рдирд╣реАрдВ рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХрд╛/рд░реАрдлреИрдХреНрдЯрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдЬреЛ рднреА рд╢реЗрд▓рд┐рдВрдЧ рдЖрдЙрдЯ рд╣рд╛рд╕рд┐рд▓ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реИ рд╡рд╣ рдХрд░реЗрдЧрд╛? рдХреЙрд▓ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╕рдордп (рд╕реАрдПрд▓рдЖрдИ рдорд╛рдкрджрдВрдбреЛрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ) рдЕрдзрд┐рдХ рд▓рдЪреАрд▓рд╛рдкрди рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ рд╕рдордЧреНрд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рдЕрдзрд┐рдХ рдЖрд╕рд╛рдиреА рд╕реЗ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдХрд░ рдЕрдзрд┐рдХ рдирд┐рдпрдВрддреНрд░рдг рднреА рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддрд╛ рд╣реИред

рдХреНрдпрд╛ рдХреЛрдИ рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдПрдХ рдЖрдВрддрд░рд┐рдХ рдПрдкреАрдЖрдИ рдлрд╝рдВрдХреНрд╢рди рдирд╣реАрдВ рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХрд╛/рд░реАрдлреИрдХреНрдЯрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдЬреЛ рднреА рд╢реЗрд▓рд┐рдВрдЧ рдЖрдЙрдЯ рд╣рд╛рд╕рд┐рд▓ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реИ рд╡рд╣ рдХрд░реЗрдЧрд╛?

рджреВрд╕рд░рд╛, рдкрд╛рдЗрдерди рдХреЗ рднреАрддрд░ рд╕реЗ рдкрд╛рдЗрдк рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд╡рд┐рд░реЛрдз рдореЗрдВ рд╢реЗрд▓рд┐рдВрдЧ рдЖрдЙрдЯ рдХреНрдпрд╛ рдЦрд░реАрджрддрд╛ рд╣реИ?

рдпрд╣ рд╕рдордп рдЦрд░реАрджрддрд╛ рд╣реИ рдЬреЛ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдирд╣реАрдВ рд╣реИред pip рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЗрд╕рдХреЗ рд░рд┐рд▓реАрдЬ рд╢реЗрдбреНрдпреВрд▓ рд╕реЗ рдкреАрдЫреЗ рд╣реИред

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ рдЙрдбрд╝рдиреЗ рд╡рд╛рд▓реА рдЪреАрдЬреЛрдВ рдХреЗ рд░рд┐рдХрд░реНрд╕рди рдореБрджреНрджреЗ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ, рдЖрдо рддреМрд░ рдкрд░ рдХрд┐рд╕реА рднреА рдкреБрдирд░рд╛рд╡рд░реНрддреА рдХрд╛рд░реНрдп рдХреЛ рдПрдХ рдкреБрдирд░рд╛рд╡рд░реНрддрдХ рдХреЗ рд▓рд┐рдП "рдЕрдиреБрд╡рд╛рджрд┐рдд" рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдореИрдВ рд░рд┐рдХрд░реНрд╕рди рд╡рд┐рд░реЛрдзреА рдирд╣реАрдВ рд╣реВрдБред рдореИрдВ рдкреНрд░рдХреНрд░рд┐рдпрд╛-рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рд╡рд┐рд░реЛрдзреА рд╣реВрдВред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдареАрдХ рд╣реИ рдпрджрд┐ рдЖрдк 100% рд╕реАрдкреАрдпреВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ (рдареАрдХ рд╣реИ, рдпрд╣ рдкрд╛рдпрдерди рдореЗрдВ 20% рд╣реЛрдЧрд╛), рд▓реЗрдХрд┐рди рдЕрдВрддрддрдГ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдХрд╛рд░реНрдп рдкреНрд░рдмрдВрдзрдХ рдЦреЛрд▓рдиреЗ рдФрд░ рдЕрдзрд┐рдХрддрдо 15 рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рдорд╛рд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдореЗрд░реЗ рд▓рд┐рдП, рдРрд╕реА рд╕реНрдерд┐рддрд┐ рдЬреЛ рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ рдПрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╡рд┐рд╕реНрдлреЛрдЯ рдХрд╛ рдХрд╛рд░рдг рдмрди рд╕рдХрддреА рд╣реИ, рдЕрд╕реНрд╡реАрдХрд╛рд░реНрдп рд╣реИред

рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣ рдЗрд╕ рд╕рд╡рд╛рд▓ рдХрд╛ рдЬрд╡рд╛рдм рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕рдордп рдХреНрдпреЛрдВ рдЦрд░реАрджрддрд╛ рд╣реИред рдХреНрдпрд╛ рдПрдХ рдЖрдВрддрд░рд┐рдХ рдПрдкреАрдЖрдИ рдлрд╝рдВрдХреНрд╢рди рдмрдирд╛рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рдмрдирд╛рддрд╛ рд╣реИ рдЬреЛ рдПрдХ рд╣реА рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ?

рдХрд┐рд╕реА рднреА рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрджрд┐ рд╢реЗрд▓рд┐рдВрдЧ рдЖрдЙрдЯ рдХреБрдЫ рд╡рд┐рд╢реЗрд╖ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЛ рдЖрд╕рд╛рди рдмрдирд╛рдиреЗ рдХреА рдПрдХ рд╕рдВрднрд╛рд╡рдирд╛ рдЕрд╕реНрдерд╛рдпреА рд░реВрдк рд╕реЗ рдПрдХ рдирд┐рдЬреА/рдЖрдВрддрд░рд┐рдХ рд╕реАрдПрд▓рдЖрдИ рдХрдорд╛рдВрдб рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░рдирд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдХрд┐ рдЬреЛ рднреА рдЬрд╛рдирдХрд╛рд░реА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдЙрд╕реЗ рдкрд╛рд╕ рдХрд░рдирд╛ рдЖрд╕рд╛рди рдмрдирд╛рддрд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдпрд╣ рдПрдХ рдХреНрд░рдордмрджреНрдз рдкрд╛рдпрдерди рдСрдмреНрдЬреЗрдХреНрдЯ рднреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ , рдЖрджрд┐)ред

рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣ рдЗрд╕ рд╕рд╡рд╛рд▓ рдХрд╛ рдЬрд╡рд╛рдм рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕рдордп рдХреНрдпреЛрдВ рдЦрд░реАрджрддрд╛ рд╣реИред рдХреНрдпрд╛ рдПрдХ рдЖрдВрддрд░рд┐рдХ рдПрдкреАрдЖрдИ рдлрд╝рдВрдХреНрд╢рди рдмрдирд╛рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рдмрдирд╛рддрд╛ рд╣реИ рдЬреЛ рдПрдХ рд╣реА рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ?

рдЕрдЧрд░ рдЖрдкрдХреЛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЖрд╕рд╛рди рд╣реИ, рддреЛ рдЖрдЧреЗ рдмрдврд╝реЗрдВред рдореИрдВ рдпрд╣ рд╡реНрдпрдВрдЧреНрдпрд╛рддреНрдордХ рд░реВрдк рд╕реЗ рдирд╣реАрдВ рдХрд╣ рд░рд╣рд╛ рд╣реВрдВ: рдХреГрдкрдпрд╛, рдЖрдЧреЗ рдмрдврд╝реЗрдВ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рд╕реЗ рд╕рднреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рд╕рдорд╛рдзрд╛рди рд╣реЛ рдЬрд╛рдПрдЧрд╛ред

рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдпрд╣ рдЖрд╕рд╛рди рд╣реИред рдореИрдВ рдкреНрд░рд╢реНрди рдкреВрдЫ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдЕрдВрддрд░реНрджреГрд╖реНрдЯрд┐ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдпрд╣ рдХрдард┐рди рдХреНрдпреЛрдВ рд╣реИред (рдореИрдВ рдорд╛рди рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдЖрдкрдиреЗ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдиреЗ рдХрд╣рд╛ рдерд╛ рдХрд┐ рдЗрд╕рд╕реЗ рд╕рдордп рдХреА рдмрдЪрдд рд╣реЛрдЧреАред)

pkg_resources рдЬреИрд╕реЗ рд╕реНрдерд╛рдиреЛрдВ рдореЗрдВ рдХреИрд╢ рдХреА рд╡рдЬрд╣ рд╕реЗ рдЖрдо рддреМрд░ рдкрд░ рдЙрдкрдкреНрд░реЛрд╕реЗрд╕ рдХреЗ рдЕрдВрджрд░ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдЕрд▓рдЧ рдкрд╛рдЗрдк рдЗрдВрд╕реНрдЯреЙрд▓ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ (рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореИрдВ рд╡рд╣рд╛рдВ рдЧрд▓рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реВрдВ)ред

рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ pip рдкрд░ рдХреЙрд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЖрдк рдПрдХ рдПрдкреАрдЖрдИ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рд╕реАрдПрд▓рдЖрдИ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдбреЗрдЯрд╛ рдХреЛ рдХреНрд░рдордмрджреНрдз рдХрд░рддрд╛ рд╣реИ рдФрд░ python -c "from pip._internals import coolapithing; coolapithing(sys.stdin.read())" рдкрд░ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИ рдФрд░ рд╕реНрдЯрдбрдЖрдЙрдЯ рд╕реЗ рдЕрдзрд┐рдХ рдбреЗрдЯрд╛ рдкрдврд╝рддрд╛ рд╣реИред рдкрд╛рдЗрдк рдХреЗ рдХреЙрд▓рд┐рдВрдЧ рдкрд┐рдкреНрд╕ рдХреЙрд▓рд┐рдВрдЧ рдкрд┐рдкреНрд╕ рдХреЙрд▓рд┐рдВрдЧ рдкрд┐рдкреНрд╕ рдХреЗ рдкреБрдирд░рд╛рд╡рд░реНрддреА рд╕рдорд╛рдзрд╛рди рдХреЛ рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реНрдЯреИрдХ рдореЗрдВ рдмрджрд▓рдирд╛ рд╕рдВрднрд╡ рд╣реЛрдЧрд╛ (рдХреНрдпреЛрдВрдХрд┐ рд╕рднреА рд░рд┐рдХрд░реНрд╕рди рдХреЛ рд╕реНрдЯреИрдХ рдХреЗ рд░реВрдк рдореЗрдВ рднреА рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ), рдЖрдк рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рдПрдХ рдирд┐рдЬреА рдПрдкреАрдЖрдИ рдмрдирд╛ рд░рд╣реЗ рд╣реЛрдВрдЧреЗ рдЬрд┐рд╕реЗ рдПрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред

рдореИрдВ рдЕрднреА рднреА рдЗрд╕ рдзрд╛рдЧреЗ рдХреЛ рдкрдврд╝рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣рд╛ рд╣реВрдВ (рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдХрддрд╛рдИ рдкреНрд▓реЗрдЯреЛрдВ рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рдерд╛!), рд▓реЗрдХрд┐рди рдПрдХ рдмрд╛рдд рдкрд░: рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд░рд┐рд▓реАрдЬ рд╢реЗрдбреНрдпреВрд▓ рдирд╣реАрдВ рд╣реИ, рд╣рдо рд░рд┐рд▓реАрдЬ рдХрд░рддреЗ рд╣реИрдВ рдЬрдм рдпрд╣ рдХрд┐рд╕реА рд▓рдХреНрд╖реНрдп рддрд┐рдерд┐ рдкрд░ рддреИрдпрд╛рд░ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рд╣рдо рдХрднреА-рдХрднреА рдХреБрдЫ рд╕рд╛рдорд╛рдиреНрдп рд╡рд┐рдЪрд╛рд░ рд░рдЦрддреЗ рд╣реИрдВ рдХрд┐ рд╣рдо рдХрдм рд░рд┐рд▓реАрдЬрд╝ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдХрднреА рдкрддреНрдерд░ рдореЗрдВ рд╕реЗрдЯ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред

рдЕрдВрддрддрдГ рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдЪреАрдЬреЗрдВ рдирд┐рдпрдВрддреНрд░рдг рд╕реЗ рдмрд╛рд╣рд░ рди рд╣реЛрдВ, рдкрд╛рдпрдерди рдореЗрдВ рдЕрдзрд┐рдХрддрдо рд░рд┐рдХрд░реНрд╕рди рдЧрд╣рд░рд╛рдИ рд╣реИред рдЕрдЧрд░ рд╣рдо рдЙрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд╕рд╛рде рдЧрдП рддреЛ рд╣рдореЗрдВ рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред

рд╣рд╛рдБ-рдИрд╢, рдПрдХ рд╕реНрдЯреИрдХ рдЖрдзрд╛рд░рд┐рдд рджреГрд╖реНрдЯрд┐рдХреЛрдг рдЗрд╕реЗ рдмрд╣реБрдд рдЧрд╣рд░рд╛рдИ рддрдХ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рдлреА рдХреБрд╢рд▓ рдмрдирд╛рддрд╛ рд╣реИ (рдПрдХ рдирд┐рд░реНрднрд░рддрд╛ рд▓реВрдк рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХрд┐рд╕реА рднреА рдЪреАрдЬрд╝ рд╕реЗ рдХрд╣реАрдВ рдЕрдзрд┐рдХ рдЧрд╣рд░рд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХреБрдЫ рдРрд╕рд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рд╕рдЪрдореБрдЪ рд╣рд░ рдкреИрдХреЗрдЬ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЕрднреА рднреА рдареАрдХ рд╣реИ), рдореБрдЦреНрдп рдмрд╛рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЫреЛрд░реЛрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рд╣реИред

рд▓реВрдк рдбрд┐рдЯреЗрдХреНрд╢рди рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдХрд╛рдлреА рд╕рд░рд▓ рдФрд░ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рдпрд╣ рд╣реИ рдХрд┐ рд╕реНрдЯреИрдХ рдкрд░ рд╡рд╕реНрддреБрдУрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдкрд░ рдХреЗрд╡рд▓ рдКрдкрд░реА рд╕реАрдорд╛ рд▓рдЧрд╛рдИ рдЬрд╛рдП рдФрд░ рдХрд╣реЗрдВ рдХрд┐ рдпрджрд┐ рдЖрдк рдЗрд╕ рд╕реАрдорд╛ рдХреЛ рдорд╛рд░рддреЗ рд╣реИрдВ рддреЛ рдЖрдкрдХреЛ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд▓реВрдк рд╕реНрдерд┐рддрд┐ рдФрд░ рддреНрд░реБрдЯрд┐ рд╕реЗ рдмрд╛рд╣рд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕рдХреЗ рд╕рд╛рде рдбрд╛рдЙрдирд╕рд╛рдЗрдбреНрд╕ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд▓реВрдкреНрд╕ рдХрд╛ рдЬрд▓реНрдж рд╕реЗ рдЬрд▓реНрдж рдкрддрд╛ рдирд╣реАрдВ рдЪрд▓рддрд╛ рд╣реИ, рдФрд░ рдЧрд╣рд░реА рдмрд┐рд▓реНрдб рдбрд┐рдкреЗрдВрдбреЗрдВрд╕реА рдЪреЗрди рд╡рд╛рд▓реЗ рдкреИрдХреЗрдЬ рддрдм рд╕реАрдорд╛ рдмрд╕ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред

рдЖрдо рддреМрд░ рдкрд░ рдмреЗрд╣рддрд░ рд╡рд┐рдХрд▓реНрдк (рдЪреВрдВрдХрд┐ рдпрджрд┐ рдЖрдк рдПрдХ рд╕реНрдЯреИрдХ рдЖрдзрд╛рд░рд┐рдд рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдЖрдк рдкреВрд░реЗ рд╕реНрдЯреИрдХ рддрдХ рдкрд╣реБрдВрдЪ рд╕рдХрддреЗ рд╣реИрдВ) рдмрд╕ рд╕реНрдЯреИрдХ рдХреЛ рдкрд╛рд░ рдХрд░рдирд╛ рд╣реИ рдФрд░ рдпрд╣ рджреЗрдЦрдирд╛ рд╣реИ рдХрд┐ рдЬрд┐рд╕ рдЖрдЗрдЯрдо рдХреЛ рд╣рдо рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рд╡рд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХрд╣реАрдВ рднреА рд╕реНрдЯреИрдХ рдкрд░ рд╣реИ, рдФрд░ рдпрджрд┐ рдпрд╣ рд╣реИ рдмреНрд░реЗрдХ рдЖрдЙрдЯ рдФрд░ рддреНрд░реБрдЯрд┐ рдХреНрдпреЛрдВрдХрд┐ рд╣рдордиреЗ рдПрдХ рд▓реВрдк рдорд╛рд░рд╛ рд╣реИ (рдпрд╣ рддреНрд░реБрдЯрд┐ рдпрд╛ рддреЛ рдЕрдВрддрд┐рдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдкреНрд░рд╕реНрддреБрдд рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИ, рдпрд╛ рдЕрдВрддрддрдГ рдПрдХ рдЕрд▓рдЧ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдЖрдЬрдорд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд░рд┐рдЬрд╝реЙрд▓реНрд╡рд░ рддрдХ рдмрдмрд▓ рд╣реЛ рд╕рдХрддреА рд╣реИ-- рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЗрд╕рд╕реЗ рдпрд╣ рдмрд╣реБрдд рдзреАрдорд╛ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ)ред

рдФрд░ рд╕реАрдзреЗ @cjerdonek рдХреЗ рдкреНрд░рд╢реНрди рдХрд╛ рдЙрддреНрддрд░ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП: рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ рдпрд╣ рдХрдард┐рди рдирд╣реАрдВ рд╣реИ, рдЬреЛ рдЪреАрдЬреЗрдВ рдореБрд╢реНрдХрд┐рд▓ рдмрдирд╛ рд░рд╣рд╛ рд╣реИ рд╡рд╣ рдХреБрдЫ рдПрдореНрдмреЗрдбреЗрдб рд╡рд╛рд╕реНрддреБрд╢рд┐рд▓реНрдк рдзрд╛рд░рдгрд╛рдПрдВ рд╣реИрдВ рдЬреЛ pip рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдХрд╛рдо рдХрд░рддреА рд╣реИрдВ рдЬреЛ рдЕрдм рдРрд╕реА рджреБрдирд┐рдпрд╛ рдореЗрдВ рд╕рдЪ рдирд╣реАрдВ рд╣реИрдВ рдЬрд╣рд╛рдВ рдкреНрд░рддреНрдпреЗрдХ рд╕реНрд░реЛрдд рдХрд╛ рдирд┐рд░реНрдорд╛рдг рд╣реЛрддрд╛ рд╣реИ рд╕реНрдерд╛рдкрдирд╛ рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рд╕реАрдзреЗ рдЪрд▓рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдЕрдкрдирд╛ рдЕрд▓рдЧ рдмрд┐рд▓реНрдб рд╡рд╛рддрд╛рд╡рд░рдг рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИред

рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ pip рдХреЗ рдореМрдЬреВрджрд╛ рдирд┐рд░реНрднрд░рддрд╛ рдкреНрд░рдмрдВрдзрди рддрд░реНрдХ рдХрд╛ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рдЙрди рдЖрдВрддрд░рд┐рдХ рд╡рд╛рд╕реНрддреБрд╢рд┐рд▓реНрдк рд╕реАрдорд╛рдУрдВ рдкрд░ рдареЛрдХрд░ рдЦрд╛рдП рдмрд┐рдирд╛ рдФрд░ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рдХреЛрдб рдХреЛ рддреЛрдбрд╝рдиреЗ рдХреЗ рдЬреЛрдЦрд┐рдо рдХреЗ рдмрд┐рдирд╛ рдПрдХ рдЙрдкрдкреНрд░реЛрд╕реЗрд╕ рдореЗрдВ рдкрд╛рдЗрдк рдХрд╛ рдПрдХ рдФрд░ рдЙрджрд╛рд╣рд░рдг рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИред рдпрд╣ рдЬреНрдпрд╛рджрд╛рддрд░ рдареАрдХ рд╣реИ, рдЗрд╕ рдкрд░рд┐рдгрд╛рдо рдХреЛ рдЫреЛрдбрд╝рдХрд░ рдХрд┐ рдирд┐рд░реНрднрд░рддрд╛ рд▓реВрдк рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдФрд░ рдЬрдорд╛рдирдд рдореЗрдВ рд╡рд┐рдлрд▓ рд╣реЛрдиреЗ рд╕реЗ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдЪрд▓рд╛рдиреЗ рд╡рд╛рд▓реЗ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдлреЛрд░реНрдХ рдмрдо рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рдореБрдЭреЗ @dstufft рдХрд╛ рдПрдХ рдкреБрдирд░рд╛рд╡реГрддреНрдд/рд╕реНрдЯреИрдХ-рдЖрдзрд╛рд░рд┐рдд рджреГрд╖реНрдЯрд┐рдХреЛрдг рдореЗрдВ рдХрдирд╡рд░реНрдЯ рдХрд░рдиреЗ рдФрд░ рдкреИрдЯрд░реНрди python -c "from pip._internals import coolapithing; coolapithing(sys.stdin.read())" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЖрдВрддрд░рд┐рдХ рдкрд╛рдЗрдк рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдЦреЛрд▓рдиреЗ рдХрд╛ рд╡рд┐рдЪрд╛рд░ рдкрд╕рдВрдж рд╣реИред рдпрд╣ рдЪрд░реНрдЪрд╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╕рд░рд▓ рд▓рдЧрддрд╛ рд╣реИ, рд╕рд╛рде рд╣реА рдордЬрдмреВрдд рднреАред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рджрд┐рд╢рд╛ рдореЗрдВ рдкрд╣рд▓рд╛ рдХрджрдо рд╕реАрдзреЗ рдкреБрдирд░рд╛рд╡рд░реНрддреА рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЛ рдПрдХ рдПрдХрд▓ рдкреБрдирд░рд╛рд╡рд░реНрддреА рдкрд╛рдпрдерди рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рдЕрдкреЗрдХреНрд╖рд┐рдд рдЗрдирдкреБрдЯ рдФрд░ рдЖрдЙрдЯрдкреБрдЯ (рдХрдо рд╕реЗ рдХрдо рдЗрд╕реЗ рд╕реНрдХреЗрдЪрд┐рдВрдЧ) рдХреЗ рд╕рд╛рде рдЙрдмрд╛рд▓рдирд╛ рд╣реЛрдЧрд╛, рдФрд░ рдлрд┐рд░ рдЗрд╕рдХрд╛ рдЕрдиреБрд╡рд╛рдж/рдкреБрдирд░рд╛рд╡реГрддреНрдд рджреГрд╖реНрдЯрд┐рдХреЛрдг рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдФрд░ рд╣рд╛рдБ, рдЖрдк рд▓реВрдкрд┐рдВрдЧ рдХреЛ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рдЬрд╝рд┐рдЯ рдХреА рдЧрдИ рдХреЙрд▓реЛрдВ рдХрд╛ set рдмрдирд╛рдП рд░рдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рдЖрд╕рд╛рди рдкрд╣рд▓реБрдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд▓рдЧрддрд╛ рд╣реИред

рдореИрдВрдиреЗ рдкреБрдирд░рд╛рд╡рд░реНрддреА рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЛ рдкреБрдирд░рд╛рд╡реГрддреНрдд рджреГрд╖реНрдЯрд┐рдХреЛрдг рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдереЛрдбрд╝рд╛ рдФрд░ рджреЗрдЦрд╛/рд╕реЛрдЪрд╛ред рдкреАрдИрдкреА 518 (рдкреАрдЖрд░ #4799) рдкрд░ @xoviat рдХреЗ рдЖрдВрд╢рд┐рдХ рдХрд╛рд░реНрдп рдиреЗ рдореБрдЭреЗ рдкреБрдирд░рд╛рд╡рд░реНрддрди рдХреЗ рдмрд┐рдВрджреБ рдХреЛ рдЦреЛрдЬрдиреЗ рдореЗрдВ рдорджрдж рдХреА (рдЬреЛ рдЖрдк рдореЗрдВ рд╕реЗ рдХреБрдЫ рд╢рд╛рдпрдж рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкрд░рд┐рдЪрд┐рдд рд╣реИрдВ)ред рдпрд╣ рдЙрдирдХреА рдХреЛрдб рдЯрд┐рдкреНрдкрдгреА рдкрд░ рд╣реИ:

# TODO: Use single process with recursion handling

рдЬрд╣рд╛рдВ рдпрд╣ pip install ... рдЖрд╣реНрд╡рд╛рди рдХрд░рддрд╛ рд╣реИред

рдореЗрд░рд╛ рд╡рд┐рдЪрд╛рд░ рдпрд╣ рд╣реИ рдХрд┐ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ pip install (рдирд┐рд░реНрдорд╛рдг рдирд┐рд░реНрднрд░рддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП) рдХреЗ рдПрдХ рд╕рдВрд╕реНрдХрд░рдг рджреНрд╡рд╛рд░рд╛ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдирд┐рдореНрди рдкрд░рд┐рд╡рд░реНрддрди рдХреА рддрд░рд╣ рдХреБрдЫ рд╣реИ:

  • рдЕрдЧрд░ рдЗрдВрд╕реНрдЯрд╛рд▓ рдХреЛ рдХрд┐рд╕реА рд╕рдм-рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рддреЛ рдЗрдВрд╕реНрдЯрд╛рд▓ рдХрд░реЗрдВред
  • рдЕрдиреНрдпрдерд╛, рдЙрдк-рд╕реНрдерд╛рдкрдирд╛рдУрдВ рдХреА рдПрдХ (рд╕рдВрднрд╡рддрдГ рдЖрдВрд╢рд┐рдХ) рд╕реВрдЪреА рдХреЗ рд╕рд╛рде рд╡рд╛рдкрд╕ рд▓реМрдЯреЗрдВ рдЬреЛ рдЖрд╡рд╢реНрдпрдХ рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╣рдордд рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рд▓рд┐рдЦрдХрд░ рдпрджрд┐ stdout рдХреЛ рд▓рд┐рдЦрдирд╛ рдкрд╣рд▓реЗ рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ)ред

рдЗрд╕ рддрд░рд╣, рд╢реАрд░реНрд╖-рд╕реНрддрд░реАрдп рд░реВрдЯ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЙрддреНрддрд░реЛрддреНрддрд░ рдмрд┐рд▓реНрдб рдирд┐рд░реНрднрд░рддрд╛ рдХрд╛ рдПрдХ рдЯреНрд░реА рдЙрддреНрдкрдиреНрди рдХрд░ рд╕рдХрддреА рд╣реИред рдФрд░ рдпрд╣ рдкрддреНрддрд┐рдпреЛрдВ рдХреЛ рд╡реИрд╕реЗ рд╣реА рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдЬреИрд╕реЗ рд╡реЗ рдкрд╛рдП рдЬрд╛рддреЗ рд╣реИрдВред рдЬреИрд╕реЗ-рдЬреИрд╕реЗ рдкрддреНрддрд┐рдпреЛрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдиреЛрдбреНрд╕ рдЬреЛ рдкрд╣рд▓реЗ рдкрддреНрддреЗ рдирд╣реАрдВ рдереЗ, рд╡реЗ рдкрддреНрддреЗ рдмрди рдЬрд╛рдПрдВрдЧреЗ, рдФрд░ рдЗрд╕реА рддрд░рд╣ред рдЗрд╕ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд╕рд╛рде, рдХрд┐рд╕реА рднреА рдмрд┐рдВрджреБ рдкрд░ рдПрдХ рдЙрдкрдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рд╣реА рдкрд╛рдЗрдк-рдЗрдВрд╕реНрдЯреЙрд▓ рд╣реЛ рд░рд╣рд╛ рд╣реЛрдЧрд╛ред

рдореИрдВрдиреЗ рдКрдкрд░ рдЬреЛ рд╕реБрдЭрд╛рд╡ рджрд┐рдпрд╛ рд╣реИ, рдЙрд╕рдореЗрдВ рдереЛрдбрд╝рд╛ рдмрджрд▓рд╛рд╡ рдпрд╣ рд╣реИ рдХрд┐ рдЖрд╡рд╢реНрдпрдХ рдкреАрдЖрдИрдкреА рдХрдорд╛рдВрдб/рд╕рдмрдкреНрд░реЛрд╕реЗрд╕ рдХреЙрд▓ рдЙрдк-рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдХреА рдПрдХ рд╕реВрдЪреА рд╡рд╛рдкрд╕ рдХрд░ рд╕рдХрддрд╛ рд╣реИ/рдЙрддреНрд╕рд░реНрдЬрд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдЙрдореНрдореАрджрд╡рд╛рд░ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА (рдПрдХ pip get-subinstalls рдпрд╛ рдмрд╕ pip subinstalls рдЖрджреЗрд╢)ред рдореИрдВрдиреЗ рдКрдкрд░ рдЬреЛ рд╕реБрдЭрд╛рд╡ рджрд┐рдпрд╛ рд╣реИ, рдЙрд╕рдореЗрдВ рдПрдХрдорд╛рддреНрд░ рдЕрдВрддрд░ рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдЖрджреЗрд╢ рд░рд┐рдкреЛрд░реНрдЯрд┐рдВрдЧ рдЬрд╛рдирдХрд╛рд░реА рддрдХ рд╣реА рд╕реАрдорд┐рдд рд╣реЛрдЧрд╛ред рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрдВрд╕реНрдЯреЙрд▓ рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред рддреЛ рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдирд╛ рдЖрд╕рд╛рди/рдЖрд╕рд╛рди рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

@cjerdonek рдореБрдЭреЗ рдЙрд╕ рд╡рд┐рдЪрд╛рд░ рдореЗрдВ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рджрд┐рдЦ рд░рд╣реА рд╣реИред рд▓реЗрдХрд┐рди рдЖрдЦрд┐рд░рдХрд╛рд░ рдХрд┐рд╕реА рдХреЛ рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ (рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ @pradyunsg рдЗрд╕ рд╕рдкреНрддрд╛рд╣ рдХреЗ рдЕрдВрдд рдореЗрдВ рдХреБрдЫ рдХрд╛рдо рдХрд░рдиреЗ рдЬрд╛ рд░рд╣рд╛ рдерд╛?) рдФрд░ рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣ рдЕрдзрд┐рдХ рдХрдард┐рдирд╛рдЗрдпреЛрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдХреБрдЫ рдкрд╛рд╕ рдЖ рдЧрдпрд╛ рд╣реИред рдЕрдЧрд░ рдХреЛрдИ рдФрд░ рдЗрд╕реЗ рдЙрдард╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ, рддреЛ рдореЗрд░реЗ рдкрд╛рд╕ рдирд╣реАрдВ рд╣реИ
рдореБрджреНрджреЗред :)

рдореБрдЭреЗ @dstufft рдХрд╛ рд╡рд┐рдЪрд╛рд░ рднреА рдкрд╕рдВрдж рд╣реИред

рд╕реВрд░реНрдп рдкрд░, 29 рдЕрдХреНрдЯреВрдмрд░ 2017, 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 рджреНрд╡рд╛рд░рд╛ рд╕реБрдЭрд╛рдП рдЧрдП рд╕реНрдЯреИрдХ+рдЖрдВрддрд░рд┐рдХ рдЖрд╣реНрд╡рд╛рди рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд╕рд╛рде рдЖрдЧреЗ рдмрдврд╝рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ?

/рдкрд┐рдВрдЧ @ncoghlan @pfmoore @xavfernandez

рд╣рд╛рдБ рдХреГрдкрдпрд╛ред рдЗрд╕реЗ рдЖрдЧреЗ рдмрдврд╝рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рднреАред

рдХреНрдпрд╛ рдХреЛрдИ рд╣реИ рдЬреЛ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рдмрддрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдкреАрдИрдкреА 517 рдФрд░ рдкреАрдИрдкреА 518 рдХреЗ рд╕рд╛рде рдкреАрдЖрдИрдкреА 10 рд░рд┐рд▓реАрдЬ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рдХрд╣рд╛рдВ рдЦрдбрд╝реЗ рд╣реИрдВ? рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ:

  1. рдХреНрдпрд╛ рдорд╛рд╕реНрдЯрд░ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд░рд┐рд▓реАрдЬ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╣реИ? рдкрд┐рдЫрд▓реА рдмрд╛рд░ рдореИрдВрдиреЗ рд╕реБрдирд╛ рдерд╛, PEP 518 рд╕рдкреЛрд░реНрдЯ рдЯреВрдЯ рдЧрдпрд╛ рдерд╛ (PEP 518 - #4647 рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдХрдо рд╕реЗ рдХрдо рдПрдХ рд░рд┐рд▓реАрдЬрд╝ рдмреНрд▓реЙрдХрд░ рдЗрд╢реНрдпреВ рдЦреБрд▓рд╛ рд╣реИ)ред
  2. рдХреНрдпрд╛ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рдкреАрдИрдкреА 517 рдФрд░/рдпрд╛ рдкреАрдИрдкреА 518 рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдПрдХ рд╕рдордп-рд╕реАрдорд╛ рдореЗрдВ рд╣реЛрдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдЬреЛ рдкреАрдЖрдИрдкреА 10 рдХреЛ рдЙрдкрд▓рдмреНрдз рд╣реЛрдиреЗ рддрдХ рджреЗрд░реА рдХрд░рдирд╛ рдЙрдЪрд┐рдд рдмрдирд╛рддрд╛ рд╣реИ?
  3. рдорд╛рди рд▓реЗрдВ рдХрд┐ рд╣рдо рд╕рд╛рдорд╛рди рдХреЛ (1) рдореЗрдВ рдареАрдХ рдХрд░рддреЗ рд╣реИрдВ, рдХреНрдпрд╛ рд╣рдо рдкреАрдИрдкреА 517/518 рдХреЗ рдмрд┐рдирд╛ рдкреАрдЖрдИрдкреА 10 рд░рд┐рд▓реАрдЬ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ? рд╣рдордиреЗ рд░рд┐рд▓реАрдЬрд╝ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рд╣реЗрдб-рдЕрдк рдИрдореЗрд▓ рддреИрдпрд╛рд░ рдХрд┐рдпрд╛, рддрд╛рдХрд┐ рд▓реЛрдЧ рдЬрд╛рди рд╕рдХреЗрдВ рдХрд┐ рдпрд╣ рдЖ рд░рд╣рд╛ рд╣реИред рдФрд░ рд╡рд╣рд╛рдВ рдХреБрдЫ рдЙрдЪрд┐рдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╕реБрдзрд╛рд░ рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╡рд┐рдВрдбреЛрдЬрд╝ рдХреЗ рд▓рд┐рдП рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдлрд┐рдХреНрд╕) рдЬреЛ рд░рд┐рд▓реАрдЬ рдХрд░рдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред

рдореЗрд░реА рднрд╛рд╡рдирд╛ рдпрд╣ рд╣реИ рдХрд┐ рд╣рдо рд░рд┐рд▓реАрдЬ рдмреНрд▓реЙрдХрд░реНрд╕ рдкрд░ рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╣рдо рдкреАрдИрдкреА 517/518 рд╕рдорд░реНрдерди рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реИрдВ рддрд╛рдХрд┐ рдЙрди рдкрд░ рдкреАрдЖрдИрдкреА 10 рдХреЛ рдмреНрд▓реЙрдХ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдкреАрдИрдкреА 518 рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХреЛрдИ рднреА #4647 рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред

рдПрдХ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╡рд┐рдХрд▓реНрдк рдореМрдЬреВрджрд╛ рдкреАрдИрдкреА 518 рд╕рдорд░реНрдерди рдХреА рд╕реАрдорд╛рдУрдВ рдХрд╛ рджрд╕реНрддрд╛рд╡реЗрдЬреАрдХрд░рдг рдХрд░рдирд╛ рдФрд░ рд░рд┐рд▓реАрдЬ рдЕрд╡рд░реЛрдзрдХ рд╣реЛрдиреЗ рд╕реЗ #4647 рдХреЛ рдбрд╛рдЙрдирдЧреНрд░реЗрдб рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдореБрдЭреЗ рдпрд╣ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрд░реНрдпрд╛рдкреНрдд рдЬрд╛рдирдХрд╛рд░реА рдирд╣реАрдВ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рд╡реНрдпрд╡рд╣рд╛рд░реНрдп рд╣реИред

рдореИрдВрдиреЗ рдХреЗрд╡рд▓ рдЗрд╕ рдЪрд░реНрдЪрд╛ рдХреЛ рджреЗрдЦрд╛ - рдЖрдзреЗ-рдЕрдзреВрд░реЗ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рд┐рдП рдХреНрд╖рдорд╛ рдпрд╛рдЪрдирд╛ рдЬреЛ рдПрдХ рдлреЛрд░реНрдХ рдмрдо рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрддреНрддрд░рджрд╛рдпреА рд╣реИ, рдФрд░ рдЖрдк рд╕рднреА рдХреЛ рдзрдиреНрдпрд╡рд╛рдж рдЬрд┐рдиреНрд╣реЛрдВрдиреЗ рдЗрд╕реЗ рд╕рдордЭрдиреЗ рдФрд░ рдмреЗрд╣рддрд░ рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде рдЖрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордп рдирд┐рдХрд╛рд▓рд╛ рд╣реИред

рдПрдлрдбрдмреНрд▓реНрдпреВрдЖрдИрдбрдмреНрд▓реНрдпреВ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдирд┐рд░реНрдорд╛рдг рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдкрд╣рд┐рдпреЛрдВ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд рдХрд░рдирд╛ рдкрд╣рд▓реЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрд╡реАрдХрд╛рд░реНрдп рд╕рдордЭреМрддрд╛ рд╣реЛрдЧрд╛ред

рдпрд╣ рдореБрдЭреЗ рдпрд╣ рднреА рдпрд╛рдж рджрд┐рд▓рд╛рддрд╛ рд╣реИ рдХрд┐ рдореБрдЭреЗ рд╢рд╛рдпрдж рдорд╛рдорд▓реЛрдВ рдХреЛ рдареАрдХ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рддрд╛рдХрд┐ рдЙрдбрд╝рд╛рди рдЦреБрдж рдХреА рдирд┐рд░реНрдорд╛рдг рдЖрд╡рд╢реНрдпрдХрддрд╛ рди рд╣реЛред

рдЖрдзреЗ-рдЕрдзреВрд░реЗ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рд┐рдП рдХреНрд╖рдорд╛ рдпрд╛рдЪрдирд╛ рдЬреЛ рдПрдХ рдХрд╛рдВрдЯрд╛ рдмрдо рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрддреНрддрд░рджрд╛рдпреА рд╣реИ,

рдорд╛рдлреА рдХреА рдЬрд░реВрд░рдд рдирд╣реАрдВ рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдХрд╣рд╛ рдХрд┐ рдЖрдк рдкрд╣рд▓реА рдХреЛрд╢рд┐рд╢ рдореЗрдВ рдЗрди рдореБрджреНрджреЛрдВ рдХреА рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгреА рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред рдЕрднреА рдЬреЛ рд╣рдо рдЬрд╛рдирддреЗ рд╣реИрдВ рдЙрд╕реЗ рдЬрд╛рдирддреЗ рд╣реБрдП рднреА, рдкреАрдЖрд░ рдореЗрдВ рджреЗрд░реА рдХрд░рдиреЗ рд╕реЗ рдЗрди рдЪрд░реНрдЪрд╛рдУрдВ рдХреЛ рдЯрд╛рд▓ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рдХреНрдпрд╛ рдорд╛рд╕реНрдЯрд░ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд░рд┐рд▓реАрдЬ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╣реИ?

IIUC, рдпрд╣ рдЕрднреА рддрдХ рдПрдХ рдкреНрд░рдгрд╛рд▓реА рдХреЛ рдлреЛрд░реНрдХ-рдмрдо рдХрд░ рд╕рдХрддрд╛ рд╣реИ; рдХреНрдпрд╛ рд╡реЛ рд╕рд╣реА рд╣реИ? рдЕрдЧрд░ рдРрд╕рд╛ рд╣реИ рддреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИред

рдХреНрдпрд╛ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рдкреАрдИрдкреА 517 рдФрд░/рдпрд╛ рдкреАрдИрдкреА 518 рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдПрдХ рд╕рдордп-рд╕реАрдорд╛ рдореЗрдВ рд╣реЛрдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдЬреЛ рдкреАрдЖрдИрдкреА 10 рдХреЛ рдЙрдкрд▓рдмреНрдз рд╣реЛрдиреЗ рддрдХ рджреЗрд░реА рдХрд░рдирд╛ рдЙрдЪрд┐рдд рдмрдирд╛рддрд╛ рд╣реИ?

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ, рдЖрд╕рд╛рди (рдЕрд▓реНрдкрдХрд╛рд▓рд┐рдХ) рд╕рдорд╛рдзрд╛рди рдХреЗрд╡рд▓ рдирд┐рд░реНрдорд╛рдг рдирд┐рд░реНрднрд░рддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдкрд╣рд┐рдпреЛрдВ рддрдХ рд╕реАрдорд┐рдд рд╣реЛрдирд╛ рд╣реЛрдЧрд╛ред рдореИрдВ рдЕрдЧрд▓реЗ рд╣рдлреНрддреЗ рдХрд┐рд╕реА рд╕рдордп рдЗрд╕ рдкрд░ рдПрдХ рд╕реНрдЯреИрдм рд▓реЗрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ред рдпрджрд┐ рд╡рд╣ рд╕рд╛рдХрд╛рд░ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдореИрдВ рдареАрдХ рд░рд╣реВрдВрдЧрд╛ рдпрджрд┐ рд╣рдо рдорд╛рд╕реНрдЯрд░ рд╕реЗ рд╡рд░реНрддрдорд╛рди рдкреАрдИрдкреА 518 рд╕рдорд░реНрдерди рдХреЛ рд╣рдЯрд╛ рджреЗрдВ рдФрд░ рдЙрд╕рдореЗрдВ рд╕реЗ 10.0.0 рдХрд╛рдЯ рджреЗрдВред

рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдкреАрдИрдкреА 518 рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХреЛрдИ рднреА #4647 рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХрд╛ рдорддрд▓рдм рд╣реИ, рдкреАрдИрдкреА 518 рдХреЗ рдкреВрд░реНрдг рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд╕рд╛рде рд╕реНрд░реЛрдд рдирд┐рд░реНрдорд╛рдг рдирд┐рд░реНрднрд░рддрд╛рдУрдВ рдХреА рдЕрдиреБрдорддрд┐ рд╣реИ?

рдУрд╣, рдФрд░ рд▓рдЧрднрдЧ #4647 -- @xoviat рдХрд╛ рд╡рд┐рд╡рд░рдг рдКрдкрд░ рдХрд╣рддрд╛ рд╣реИ, рдлрд┐рдХреНрд╕рд┐рдВрдЧ рдЬреЛ рдХреЛрдб рдХреЛ рдмрджрд▓рдирд╛/рдЪрд▓рддреА рд╣реИ рдФрд░ рд╡рд╕реНрддреБрдУрдВ рдХреА рд╕реНрд╡рд╛рдорд┐рддреНрд╡/рджреГрд╢реНрдпрддрд╛ (рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ BuildEnvironment ) рд▓реЗрддреА рд╣реИ, рдЬреЛ рдЧреИрд░ рддреБрдЪреНрдЫ рд╣реИред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдкрд╣рд┐рдпреЛрдВ рддрдХ рд╕реАрдорд┐рдд рдХрд░рдирд╛ рдЗрд╕ рд▓рд╛рдЗрди рдХреЛ рдмрджрд▓рдиреЗ рдЬрд┐рддрдирд╛ рдЖрд╕рд╛рди рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП:

https://github.com/pypa/pip/blob/fc6b2c192088737f81259b6446f627f20ce46443/src/pip/_internal/wheel.py#L696

рдкреНрд░рддрд┐:

finder.format_control = FormatControl(set(), set([':all:']))

рджреВрд╕рд░рд╛ рдХреНрд╖реЗрддреНрд░ рдХреЗрд╡рд▓ рдмрд╛рдпрдиреЗрд░рд┐рдЬрд╝ рдХреЗ рд░реВрдк рдореЗрдВ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдкреИрдХреЗрдЬреЛрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╕рднреА рдкреИрдХреЗрдЬреЛрдВ рдХрд╛ рдорддрд▓рдм ':all:' рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╢реЗрд╖ рдорд╛рдорд▓рд╛ рд╣реИред

рд╣рд╛рдВред рд▓реЗрдХрд┐рди рд╡рд╣ рдЕрдХреЗрд▓реЗ #4647 рдХреЛ рд╕рдВрдмреЛрдзрд┐рдд рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред рд╕рд╛рде рд╣реА, рдЗрдирдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА рдХреЛрдб рдирд╣реАрдВ рдЬрд╛рддрд╛ рд╣реИ
рдПрдХ рд╕рдорд╛рдзрд╛рдирдХрд░реНрддрд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗред

рд╢рдирд┐рд╡рд╛рд░, 2 рджрд┐рд╕рдВрдмрд░ 2017 рдХреЛ 01:23 рдкрд░ рдереЙрдорд╕ рдХреНрд▓реВрд╡рд░ рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди @github.com рдиреЗ рд▓рд┐рдЦрд╛:

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдкрд╣рд┐рдпреЛрдВ рддрдХ рд╕реАрдорд┐рдд рдХрд░рдирд╛ рдЗрд╕реЗ рдмрджрд▓рдиреЗ рдЬрд┐рддрдирд╛ рдЖрд╕рд╛рди рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП
рд░реЗрдЦрд╛:

https://github.com/pypa/pip/blob/fc6b2c192088737f81259b6446f627f20ce46443/src/pip/_internal/wheel.py#L696

рдкреНрд░рддрд┐:

Finder.format_control = FormatControl (рд╕реЗрдЯ (), рд╕реЗрдЯ ([': рд╕рднреА:']))

рджреВрд╕рд░рд╛ рдХреНрд╖реЗрддреНрд░ рдХреЗрд╡рд▓ рдмрд╛рдпрдиреЗрд░рд┐рдЬрд╝ рдХреЗ рд░реВрдк рдореЗрдВ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрдХреБрд▓ рдХрд╛ рдПрдХ рд╕реЗрдЯ рд╣реИ
рд╕рднреА рдкреИрдХреЗрдЬреЛрдВ рдХреЗ рд▓рд┐рдП ':all:' рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╢реЗрд╖ рдорд╛рдорд▓рд╛ред

-
рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ, рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/pypa/pip/issues/4802#issuecomment-348598368 , рдпрд╛ рдореНрдпреВрдЯ рдХрд░реЗрдВ
рд╕реВрддреНрд░
https://github.com/notifications/unsubscribe-auth/ADH7SUi0QMS3rr5Iba90XWZmFweGmqeBks5s8FlEgaJpZM4QBdSg
.

рдареАрдХ рд╣реИ, рдЗрд╕рдореЗрдВ рдХрдИ рдЕрдиреНрдп рдЪреАрдЬреЗрдВ рдЧрд▓рдд рд╣реИрдВред рд▓реЗрдХрд┐рди рдЗрд╕реЗ рдлреЛрд░реНрдХ-рдмрдордмрд╛рд░реА рд╕реЗ рд░реЛрдХрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рдмрд╕реЗ рдЬреНрдпрд╛рджрд╛ рдЪрд┐рдВрддрд╛ рдХрд╛ рд╡рд┐рд╖рдп рд╣реИред

рдЕрдЧрд░ рдХреЛрдИ рдореЗрд░рд╛ рдореВрд▓ рдкреАрдЖрд░ рд▓реЗрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ ("рдкреАрдИрдкреА 518 рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рдареАрдХ рдХрд░реЗрдВ"),
рдЗрд╕реЗ рдмрджрд▓рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рддрд╛рдХрд┐ рдЕрд▓рдЧрд╛рд╡ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рди рд╣реЛ
pyproject.toml рдХреЗ рдмрд┐рдирд╛ рд╕рдХреНрд╖рдоред рдореВрд▓ рдХрд╛рд░рдг рдЗрд╕рдХрд╛ рд╡рд┐рд▓рдп рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛
рдпрд╣ рдерд╛ рдХрд┐ рдЗрд╕рдиреЗ рд╕реНрд░реЛрдд рд╕реЗ рдирд┐рд░реНрднрд░рддрд╛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдерд╛
рдкреАрдИрдкреА 518. рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЕрдм рдЬрдм рд▓реЛрдЧреЛрдВ рдХреЛ рдпрд╣ рдПрд╣рд╕рд╛рд╕ рд╣реЛрдиреЗ рд▓рдЧрд╛ рд╣реИ рдХрд┐ рдкреАрдИрдкреА 518 рдордИ
рдкреАрдЖрдИрдкреА 10 рдореЗрдВ рдмрд┐рд▓реНрдХреБрд▓ рднреА рди рд╣реЛрдВ, рд╡реЗ рдЙрд╕ рдкреАрдЖрд░ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рдЙрддреНрддрд░рджрд╛рдпреА рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рдореИрдВ
рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рдЗрд╕реЗ рдЪреИрдВрдкрд┐рдпрди рдмрдирд╛рдиреЗ рдХрд╛ рд╕рдордп рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рд╕реЗ рджреВрд╕рд░реЛрдВ рдХреЛ рд░реЛрдХрдирд╛ рдирд╣реАрдВ рдЪрд╛рд╣рд┐рдП
рдЗрд╕реЗ рдЖрдЧреЗ рд▓реЗ рдЬрд╛рдиреЗ рд╕реЗ, рдХреНрдпреЛрдВрдХрд┐ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреА рдХреЗрд╡рд▓ рдХреБрдЫ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА
(рдкреАрдИрдкреА 518 рдкрд░реАрдХреНрд╖рдг рдореЗрдВ рдЕрд╕рдлрд▓ рд╣реЛрдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛)ред

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдореЗрд░реЗ рдмреЗрд╣рддрд░ рдирд┐рд░реНрдгрдп рдХреЗ рд╡рд┐рдкрд░реАрдд, рдореИрдВ рд╢реАрдШреНрд░ рд╣реА рдкреАрдИрдкреА 517 рдФрд░ 518 рджреЛрдиреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реВрдВ рдпрджрд┐ рдкреАрдЖрдИрдкреА рдбреЗрд╡рд▓рдкрд░реНрд╕ рдореЗрд░реА рд╢рд░реНрддреЛрдВ рд╕реЗ рд╕рд╣рдордд рд╣реЛрдВрдЧреЗ:

  1. рдирд┐рд░реНрднрд░рддрд╛ рд╢реБрд░реБрдЖрдд рдореЗрдВ рдкрд╣рд┐рдпреЛрдВ рдкрд░ рд╣реА рд╣реЛрдЧреА
  2. рдкрд╛рдЗрдк рдореЗрдВ рд╢реБрд░реВ рдореЗрдВ рдПрдХ рдЖрдВрддрд░рд┐рдХ рдмрд┐рд▓реНрдб рдмреИрдХрдПрдВрдб рд╣реЛрдЧрд╛, рднрд▓реЗ рд╣реА рдЗрд╕реЗ рдЕрдВрддрддрдГ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛

рдореБрдЭреЗ 1 рдХреЗ рд╕рд╛рде рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИ; рдореЗрд░реЗ рдкрд╛рд╕ 2 рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╡рд░реАрдпрддрд╛ рдирд╣реАрдВ рд╣реИред

рд░рд╡рд┐рд╡рд╛рд░, 3 рджрд┐рд╕рдВрдмрд░ 2017 рдХреЛ 02:36 рдмрдЬреЗ xoviat [email protected] рдиреЗ рд▓рд┐рдЦрд╛:

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдореЗрд░реЗ рдмреЗрд╣рддрд░ рдирд┐рд░реНрдгрдп рдХреЗ рд╡рд┐рд░реБрджреНрдз, рдореИрдВ PEP рджреЛрдиреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реВрдБ
517 рдФрд░ 518 рд╢реАрдШреНрд░ рд╣реА рдЕрдЧрд░ рдкрд╛рдЗрдк рдбреЗрд╡рд▓рдкрд░реНрд╕ рдореЗрд░реА рд╢рд░реНрддреЛрдВ рд╕реЗ рд╕рд╣рдордд рд╣реЛрдВрдЧреЗ:

  1. рдирд┐рд░реНрднрд░рддрд╛ рд╢реБрд░реБрдЖрдд рдореЗрдВ рдкрд╣рд┐рдпреЛрдВ рдкрд░ рд╣реА рд╣реЛрдЧреА
  2. рдкрд╛рдЗрдк рдореЗрдВ рд╢реБрд░реВ рдореЗрдВ рдПрдХ рдЖрдВрддрд░рд┐рдХ рдмрд┐рд▓реНрдб рдмреИрдХрдПрдВрдб рд╣реЛрдЧрд╛, рднрд▓реЗ рд╣реА рдпрд╣
    рдЕрдВрддрддрдГ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛

-
рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ, рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/pypa/pip/issues/4802#issuecomment-348720096 , рдпрд╛ рдореНрдпреВрдЯ рдХрд░реЗрдВ
рд╕реВрддреНрд░
https://github.com/notifications/unsubscribe-auth/ADH7ST6riptZkYMap5Z5SstRf-VmE7eAks5s8bu5gaJpZM4QBdSg
.

FYI рдХрд░реЗрдВ рд╢рд░реНрддреЗрдВ рдордирдорд╛рдиреА рдирд╣реАрдВ рд╣реИрдВ рд▓реЗрдХрд┐рди рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рд╕рдВрднрд╡ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИрдВред рдХреНрдпрд╛ @pfmoore рдЗрд╕рдХреЗ рд╕рд╛рде рдареАрдХ рд╣реИ?

рдореИрдВ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ "рдЕрдкрдиреЗ рдмреЗрд╣рддрд░ рдирд┐рд░реНрдгрдп рдХреЗ рдЦрд┐рд▓рд╛рдл ... рдореЗрд░реА рд╢рд░реНрддреЛрдВ рд╕реЗ рд╕рд╣рдордд рд╣реВрдВ" рдкреНрд░рд╕реНрддрд╛рд╡ рдХреЗ рд▓рд╣рдЬреЗ рд╕реЗ рд╕рд╣рдЬ рдирд╣реАрдВ рд╣реВрдВред рдпрджрд┐ рдЕрдиреНрдп рдкреАрдЖрдИрдкреА рдбреЗрд╡рд▓рдкрд░реНрд╕ рдЗрд╕ рдкреНрд░рд╕реНрддрд╛рд╡ рдХреЛ рд▓реЗрдиреЗ рдХреЗ рд▓рд┐рдП рдЦреБрд╢ рд╣реИрдВ рддреЛ рдореБрдЭреЗ рдХреЛрдИ рдЖрдкрддреНрддрд┐ рдирд╣реАрдВ рд╣реЛрдЧреА, рд▓реЗрдХрд┐рди рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рдореЗрд░реЗ рдкрд╛рд╕ рдЗрд╕ рд╕рдордп рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╡рд┐рд╡рд░рдг рдкрд░ рдкреВрд░реА рдмрд╣рд╕ рдХреЛ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рдирд╣реАрдВ рд╣реИред рдореВрд▓ рд░реВрдк рд╕реЗ, рдореИрдВ рдЗрд╕ рдкрд░ @dstufft рдФрд░ @xavfernandez рдХреЛ рдЯрд╛рд▓ рджреВрдВрдЧрд╛ ( @pradyunsg рдкрд╣рд▓реЗ рд╣реА рдЕрдкрдиреЗ рд╡рд┐рдЪрд╛рд░ рджреЗ рдЪреБрдХрд╛ рд╣реИ)ред

рдкреНрд░рд╕реНрддрд╛рд╡ рдХрд╛ рд▓рд╣рдЬрд╛ рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреИрд╕рд╛ рджрд┐рдЦреЗрдЧрд╛, рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдореВрд▓рднреВрдд рдЕрд╕рд╣рдорддрд┐ рдХреЗ рдХрд╛рд░рдг рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рддрд░реАрдХреЗ рдмрдВрдж рдХрд░ рджрд┐рдП рдЧрдП рдереЗред рдореИрдВ рдПрдХ рдФрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдмрд╣рд╕ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрдиреЗ рдХреЗ рдмрдЬрд╛рдп рдЕрдм рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ рдкрд░ рд╕рд╣рдордд рд╣реВрдВред

рдореИрдВ рд╕рд┐рд░реНрдл рдЗрддрдирд╛ рдХрд╣реВрдВрдЧрд╛ рдХрд┐ рдореИрдВ рднреА рд╕реНрд╡рд░ рдХреЗ рд╕рд╛рде рдмрд╣реБрдд рд╕рд╣рдЬ рдирд╣реАрдВ рд╣реВрдВ, рдпрд╣ рд╣реИ
рдмрд╕, рдореЗрд░реЗ рдкрд╛рд╕ рдпрд╣ рдЬрд╛рдирдиреЗ рдХрд╛ рд╕рдордп рдпрд╛ рдКрд░реНрдЬрд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЙрд╕ рд╕реНрд╡рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреНрдпреЛрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛
рдЖрджрд┐ рдореЗрд░реА рдУрд░ рд╕реЗ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдЙрддреНрддрд░ рдХреЗ рд▓рд┐рдП рдПрдХ рд╣реА рдХрд╛рд░рдгред

рд╢рд╛рдпрдж рдпрд╣ рднреА рдХрд╣рдиреЗ рд▓рд╛рдпрдХ рд╣реИ, рдореИрдВ рдмрд╛рдЗрдирд░реА рдХреЗ рд╕рд╛рде рдЕрдЪреНрдЫрд╛ рд╣реВрдВ рдХреЗрд╡рд▓ рдирд┐рд░реНрднрд░рддрд╛ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рддрд╛ рд╣реВрдВ
рдкрд╣рд▓рд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди, рд▓рдВрдмреА рдЕрд╡рдзрд┐ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВред рдпрд╣ рдкрд░ рд▓рд╛рдЧреВ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ
рд░рдирдЯрд╛рдЗрдо рдирд┐рд░реНрднрд░рддрд╛рдПрдБ (рдХреНрдпреЛрдВрдХрд┐ рд╡рд╣ рднреА рдХрд┐рд╕реА рддрд░рд╣ рджреВрд╕рд░реЗ рдореЗрдВ рдЖ рдЧрдИ рд╣реИ)
рд╡рд┐рдЪрд╛рд░ - рд╡рд┐рдорд░реНрд╢)ред

рд╕реВрд░реНрдп рдкрд░, 3 рджрд┐рд╕рдВрдмрд░ 2017, 23:37 xoviat , [email protected] рдиреЗ рд▓рд┐рдЦрд╛:

рдкреНрд░рд╕реНрддрд╛рд╡ рдХрд╛ рд▓рд╣рдЬрд╛ рдРрд╕рд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЗрд╕рд▓рд┐рдП рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдХреЗ рддрд░реАрдХреЗ
рдХрд┐рд╕ рдмрд╛рд░реЗ рдореЗрдВ рдореВрд▓рднреВрдд рдЕрд╕рд╣рдорддрд┐ рдХреЗ рдХрд╛рд░рдг рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛
рдПрдХ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреА рддрд░рд╣ рджрд┐рдЦреЗрдЧрд╛ред рдореИрдВ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рд╕рд╣рдордд рд╣реВрдБ
рд╕рд┐рджреНрдзрд╛рдВрдд рдЕрдм рдПрдХ рдФрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдмрд╣рд╕ рдореЗрдВ рд╡рд┐рдХрд╕рд┐рдд рд╣реЛрдиреЗ рдХреЗ рдмрдЬрд╛рдпред

-
рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ, рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/pypa/pip/issues/4802#issuecomment-348802032 , рдпрд╛ рдореНрдпреВрдЯ рдХрд░реЗрдВ
рд╕реВрддреНрд░
https://github.com/notifications/unsubscribe-auth/ADH7ScUh-BveonoTxZ5FkkeSynFvoLb8ks5s8uNRgaJpZM4QBdSg
.

рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ, рдкреЛрд╕реНрдЯ рдХреЗ рд╕реНрд╡рд░ рдкрд░ рдЖрдЧреЗ рдЪрд░реНрдЪрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╢рд╛рдпрдж рдпрд╣ рдХрд┐рд╕реА рдХреЗ рд╕рдордп рдХрд╛ рдкреНрд░рднрд╛рд╡реА рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЗрди рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рдкрд╛рдЗрдк 10 рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдирд╣реАрдВ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдореБрдЭреЗ рдПрдХ рдЖрд╢реНрд╡рд╛рд╕рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рдореЗрд░реА рд╢рд░реНрддреЗрдВ рдХрд┐рд╕реА рднреА @pfmoore рд╕реЗ рд╡рд┐рд▓рдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡реАрдХрд╛рд░реНрдп рд╣реИрдВ ( рдЬрд┐рд╕рдиреЗ рд╕рдВрдХреЗрдд рджрд┐рдпрд╛ рд╣реИ рдХрд┐ рд╡рд╣ рдРрд╕рд╛ рдЖрд╢реНрд╡рд╛рд╕рди рдирд╣реАрдВ рджреЗ рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ рд╕реНрд╡реАрдХрд╛рд░реНрдп рд╣реИ рдХрд┐ рдпрд╣рд╛рдВ рдХрд┐рд╕реА рдХреЛ рдЙрдирдХреЗ рд╕рдордп рдХреЗ рд▓рд┐рдП рднреБрдЧрддрд╛рди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ), @dstufft , рдпрд╛ @xavfernandezред

рдлрд┐рд░ рд╕реЗ, рд╢рд░реНрддреЗрдВ рдореЗрд░реА рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░рд╛рдп рдирд╣реАрдВ рд╣реИрдВ, рдмрд▓реНрдХрд┐ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╕реЗ рдкреНрд░реЗрд░рд┐рдд рд╣реИрдВред рдЕрдЧрд░ рдореИрдВ рдЗрди рд╢рд░реНрддреЛрдВ рдореЗрдВ рдвреАрд▓ рджреЗрддрд╛ рд╣реВрдВ, рддреЛ рдореИрдВ рдПрдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛ рд╡рд╛рджрд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛, рдЗрд╕рд▓рд┐рдП рдкреАрдЖрд░ рддреИрдпрд╛рд░ рдХрд░рдиреЗ рдкрд░ рд╕рдордп рдмрд┐рддрд╛рдиреЗ рдХрд╛ рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рд╣реИ, рдФрд░ рдлрд┐рд░ рд▓реЛрдЧ рдЕрдВрддрд░ рдкрдврд╝ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдкреВрдЫ рд░рд╣реЗ рд╣реИрдВ "рдУрд╣, рдпрд╣ рд▓рд╛рдЗрди рдпрд╣рд╛рдВ рдХреНрдпреЛрдВ рд╣реИ?" рдФрд░ рдлрд┐рд░ "рдУрд╣, рддреЛ рдпрд╣ рд╡рд┐рд▓рдп рдпреЛрдЧреНрдп рдирд╣реАрдВ рд╣реИ?" рдХреНрдпреЛрдВрдХрд┐ рдкреАрдЖрд░ рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреНрдпрд╛ рдерд╛, рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдЧрд▓рдд рд╕рдВрдЪрд╛рд░ рдерд╛ред

рд╕реНрд╡рд░ рдлрд┐рд░ рд╕реЗ рд╕рд╣рдорддред рдореЗрд░рд╛ рдХрд╣рдирд╛ рдмрд╕ рдЗрддрдирд╛ рд╣реИ рдХрд┐ рдореИрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХрд╛ рд╡рд┐рд▓рдп рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛[1], рдЗрд╕рд▓рд┐рдП рдореЗрд░рд╛ рд╡рд┐рдЪрд╛рд░ рдпрд╣рд╛рдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЙрддрдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИред

[1] рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ, рдореИрдВ рдХрд╣ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рджреЗрдЦреЗ рдмрд┐рдирд╛, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рдореЗрд░реЗ рдХрд╛рд░рдгреЛрдВ рдХрд╛ рдХреЛрдб рдЧреБрдгрд╡рддреНрддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪрд┐рдВрддрд╛рдУрдВ рд╕реЗ рдХреЛрдИ рд▓реЗрдирд╛-рджреЗрдирд╛ рдирд╣реАрдВ рд╣реИ - рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордп рдирд╣реАрдВ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИ рдХрд┐ рдореИрдВ рдХреЛрдб рдХреЛ рдкрд░реНрдпрд╛рдкреНрдд рд░реВрдк рд╕реЗ рд╕рдордЭрддрд╛ рд╣реВрдВ рдореВрд▓ рд░реВрдк рд╕реЗ рд╡рд┐рд▓рдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд░рд╣реЗрдВред

@xoviat рд╣рдордиреЗ рдКрдкрд░ рдЪрд░реНрдЪрд╛ рдХреА рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдмрдирд╛рдо рдкреБрдирд░рд╛рд╡рд░реНрддреА рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рдЖрдкрдХреА рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдпреЛрдЬрдирд╛рдПрдВ рдХреНрдпрд╛ рд╣реИрдВ?

рд╕рд╛рде рд╣реА, рд╕реНрдкрд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдХреНрдпрд╛ рдЖрдк рдХрд╣ рд░рд╣реЗ рд╣реИрдВ рдХрд┐ рдЖрдк рдкрд╣рд▓реЗ рдкреАрдИрдкреА 517 рдФрд░ 518 рдХреЗ рдЖрдВрд╢рд┐рдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рдкреВрд░рд╛ рдХрд░реЗрдВрдЧреЗ рдЬрд┐рд╕реЗ рд╡рд┐рд▓рдп рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЙрд╕рдХреЗ рдмрд╛рдж рдПрдХ рдкреВрд░реНрдг рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЬрд┐рд╕реЗ рд╡рд┐рд▓рдп рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ? рдпрд╛ рдЖрдк рдХрд╣ рд░рд╣реЗ рд╣реИрдВ рдХрд┐ рдЖрдк рдХреЗрд╡рд▓ рдЖрдВрд╢рд┐рдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдпрд╛ рдЖрдк рдХрд╣ рд░рд╣реЗ рд╣реИрдВ рдХрд┐ рдЖрдк рдкрд╣рд▓реЗ рдХреЗ рдЪрд░рдгреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХ рдкреВрд░реНрдг рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛рд░реНрдпрд╡рд╛рд╣реА рдХрд░ рд░рд╣реЗ рд╣реЛрдВрдЧреЗ рдЬреЛ рдЬрд░реВрд░реА рдирд╣реАрдВ рдХрд┐ рд╡рд┐рд▓рдп рдпреЛрдЧреНрдп рд╣реЛ? (рдореИрдВ рдЖрдВрд╢рд┐рдХ рд░реВрдк рд╕реЗ рдЖрдкрдХреА рдЯрд┐рдкреНрдкрдгреА рдореЗрдВ "рд╢реБрд░реБрдЖрдд рдореЗрдВ" рдФрд░ "рдЖрдЦрд┐рд░рдХрд╛рд░" рд╕реЗ рдЖрдкрдХрд╛ рдХреНрдпрд╛ рдорддрд▓рдм рд╣реИ рдЗрд╕рдХрд╛ рдмреЗрд╣рддрд░ рдЕрд░реНрде рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред)

рдкрд╣рд▓реА рд╢рд░реНрдд рд╕рдВрдкреВрд░реНрдг рд░рд┐рдХрд░реНрд╕рди рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рддреА рд╣реИред

рд╕рд╛рде рд╣реА, рд╕реНрдкрд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдХреНрдпрд╛ рдЖрдк рдХрд╣ рд░рд╣реЗ рд╣реИрдВ рдХрд┐ рдЖрдк рдкрд╣рд▓реЗ рдкреАрдИрдкреА 517 рдФрд░ 518 рдХреЗ рдЖрдВрд╢рд┐рдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рдкреВрд░рд╛ рдХрд░реЗрдВрдЧреЗ рдЬрд┐рд╕реЗ рд╡рд┐рд▓рдп рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЙрд╕рдХреЗ рдмрд╛рдж рдПрдХ рдкреВрд░реНрдг рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЬрд┐рд╕реЗ рд╡рд┐рд▓рдп рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ?

рдореИрдВ рдЬреЛ рдХрд╣ рд░рд╣рд╛ рд╣реВрдВ рд╡рд╣ рдпрд╣ рд╣реИ рдХрд┐ рдореИрдВ рдЖрдВрд╢рд┐рдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдкреВрд░рд╛ рдХрд░реВрдВрдЧрд╛, рдпрд╣ 95% рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░реЗрдЧрд╛; рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЙрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдЬрд╣рд╛рдВ рдирд┐рд░реНрднрд░рддрд╛рдУрдВ рдореЗрдВ рдкрд╣рд┐рдП рд╣реЛрддреЗ рд╣реИрдВ (рдЕрдм рдмрд╣реБрдд рдЖрдо рд╣реИрдВ) рдФрд░ рдЖрдк рдХрдИ рд▓рд┐рдирдХреНрд╕/рд╡рд┐рдВрдбреЛрдЬрд╝/рдУрдПрд╕рдПрдХреНрд╕ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо (рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд╡рд┐рд╢рд╛рд▓ рдмрд╣реБрдордд) рдкрд░ рд╣реИрдВред

рдпрд╣ рдкреВрд░реНрдг рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдирд╣реАрдВ рд╣реИред рд▓реЗрдХрд┐рди рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рдЖрдк рдЧреИрд░-рд╡рд┐рд▓рдп рдпреЛрдЧреНрдп рдкреАрдЖрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ, рд╡рд╣ "рд╕рднреА рдпрд╛ рдХреБрдЫ рднреА рдирд╣реАрдВ" рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реИ рдЬрд╣рд╛рдВ рдЖрдк рдпрд╛ рддреЛ рдорд╛рдирдХ рдХрд╛ рдкрд╛рд▓рди рдХрд░рддреЗ рд╣реИрдВ рдпрд╛ рдЖрдк рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред

рдзреНрдпрд╛рди рд░рдЦреЗрдВ рдХрд┐ рдПрдХ рдкреВрд░реНрдг рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдХрд╛рдлреА рдЦрд░рд╛рдм рдореБрджреНрджреЛрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдХреЛ рдПрдХ рдЕрд▓рдЧ рдкреАрдЖрд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА (рдЬреИрд╕рд╛ рдХрд┐ 100+ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдкреАрдЖрд░ рд╣реЛрдиреЗ рдХрд╛ рдЖрдорддреМрд░ рдкрд░ рдорддрд▓рдм рд╣реИ рдХрд┐ рдХреЛрдб рдХреА рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╕рдореАрдХреНрд╖рд╛ рдирд╣реАрдВ рдХреА рдЧрдИ рд╣реИ)ред [1]

[1] https://github.com/btc1/bitcoin/pull/11#issuecomment -313843216

рдореИрдВ рдЕрдм рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдмрдВрдж рдХрд░ рджреВрдВрдЧрд╛ - рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкреАрдИрдкреА 518 рдХреЗ рд▓рд┐рдП рдкреАрдЖрдИрдкреА 10 рдореЗрдВ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╕рдорд░реНрдерди рд╣реИ рдЬреЛ рдХреЗрд╡рд▓ рдкрд╣рд┐рдпреЛрдВ рдХреЛ рдмрд┐рд▓реНрдб рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред рдореИрдВ рдкреВрд░реНрдг рд╕рдорд░реНрдерди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪрд░реНрдЪрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ рдореБрджреНрджрд╛ рдЦреЛрд▓реВрдВрдЧрд╛ рдФрд░ рджреВрд╕рд░рд╛ рдкреАрдИрдкреА 517 рд╕рдорд░реНрдерди рдХреЗ рд▓рд┐рдП (рдпрд╣рд╛рдВ рд╕реЗ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрджреНрдзреГрдд)ред

рдЖрдкрдХреА рдЕрдВрддрд░реНрджреГрд╖реНрдЯрд┐ рдФрд░ рд╕рд╣рд╛рдпрддрд╛ рдХреЗ рд▓рд┐рдП @ncoglan @rgommers @cjerdonek рдзрдиреНрдпрд╡рд╛рджред PEP 518 рдХреЗ рд╢реБрд░реБрдЖрддреА рдХреНрд░рд┐рдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рд┐рдП @takluyver рдХрд╛ рдзрдиреНрдпрд╡рд╛рджред рдЗрди рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдореЗрдВ рд╕рднреА рд╕рд╣рд╛рдпрддрд╛ рдХреЗ рд▓рд┐рдП @xoviat (рдЬреЛ рдЕрдм @ghost рд╣реИрдВ) рдХрд╛ рдзрдиреНрдпрд╡рд╛рджред рдзрдиреНрдпрд╡рд╛рдж @ benoit-pierre рд╡рд░реНрддрдорд╛рди рд╕рдорд░реНрдерди рдХреЛ рдмреЗрд╣рддрд░ рдмрдирд╛рдиреЗ рдореЗрдВ рдЖрдкрдХреА рд╕рд╣рд╛рдпрддрд╛ рдХреЗ рд▓рд┐рдПред

рдкреАрдПрд╕: 100 рд╡реАрдВ рдЯрд┐рдкреНрдкрдгреА! рдЯрд╛рдбрд╛:

рдЗрд╕ рдереНрд░реЗрдб рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд▓реЙрдХ рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕реЗ рдмрдВрдж рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдХреЛрдИ рдЧрддрд┐рд╡рд┐рдзрд┐ рдирд╣реАрдВ рд╣реБрдИ рд╣реИред рдХреГрдкрдпрд╛ рд╕рдВрдмрдВрдзрд┐рдд рдмрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ рдореБрджреНрджрд╛ рдЦреЛрд▓реЗрдВред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

reynoldsnlp picture reynoldsnlp  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

nathan130200 picture nathan130200  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

wrouesnel picture wrouesnel  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

yizhang-zen picture yizhang-zen  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

jiapei100 picture jiapei100  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ