Pipenv: рдХреЗрд╡рд▓ рдПрдХ рдмрдВрдж рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рдЕрджреНрдпрддрди рдХрд░рдирд╛

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

рдХрднреА-рдХрднреА рдореИрдВ рдПрдХ рдкреАрдЖрд░ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдореИрдВ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдореИрдВ рдЕрдкрдиреА рд╕рднреА рдирд┐рд░реНрднрд░рддрд╛ (aiohttp, flake8, рдЖрджрд┐ ...) рдХреЗ рдЕрдкрдбреЗрдЯ рд╕реЗ рдирд┐рдкрдЯрдирд╛ рдирд╣реАрдВ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдпрджрд┐ рдЙрди рдирд┐рд░реНрднрд░рддрд╛рдУрдВ рдореЗрдВ рдХреЛрдИ рднреА рдЯреВрдЯрдиреЗ рд╡рд╛рд▓рд╛ рдкрд░рд┐рд╡рд░реНрддрди рдкреЗрд╢ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рддреЛ рдореИрдВ рдЗрд╕рдХреЗ рд╕рд╛рде рдПрдХ рдФрд░ рдкреАрдЖрд░ рдореЗрдВ рдирд┐рдкрдЯрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред

рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛрдореБрдЭреЗ рдкрддрд╛ рд╣реИ, рдРрд╕рд╛ рдХрд░рдиреЗ рдХрд╛ рдПрдХрдорд╛рддреНрд░ рддрд░реАрдХрд╛ рдЙрди рд╕рднреА рдирд┐рд░реНрднрд░рддрд╛рдУрдВ рдХреЛ рдкрд┐рди рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдЬреЛ рдореИрдВ рдкрд┐рдкрдлреЗрдЗрд▓ рдореЗрдВ рдЕрдкрдбреЗрдЯ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ред рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдпрд╣ рдкрд╣рд▓реА рдЬрдЧрд╣ рдореЗрдВ рдкрд┐рдкреЗрдирд╡ рдХреЗ рдЙрджреНрджреЗрд╢реНрдп рдХреЛ рд╣рд░рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рдЧрддрд╛ рд╣реИ :)ред

рддреЛ рдореЗрд░рд╛ рдлреАрдЪрд░ рдЕрдиреБрд░реЛрдз рдХреБрдЫ рдРрд╕рд╛ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдЧрд╛:

$ pipenv lock --only my-awesome-dep

рдпрд╣ рдХреЗрд╡рд▓ my-awesome-dep рдФрд░ рдЗрд╕рдХреА рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рдЕрдкрдбреЗрдЯ рдХреЗ рд╕рд╛рде Pipfile.lock рдЙрддреНрдкрдиреНрди рдХрд░реЗрдЧрд╛ред

рдореИрдВ рд╢рд╛рдпрдж рдЙрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдкреАрдЖрд░ рдмрдирд╛ рд╕рдХрддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдореИрдВ рдкрд╣рд▓реЗ рдХреБрдЫ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред

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

100% рд╕рд╣рдордд - рдФрд░ рдореИрдВ рдереЛрдбрд╝рд╛ рдЖрдЧреЗ рдЬрд╛рдКрдВрдЧрд╛: рдпрд╣ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдпрд╛рдиреА pipenv install foo рдХреЛ рдХрднреА рднреА foo рдФрд░ рдЙрд╕рдХреА рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХреБрдЫ рднреА рдирд╣реАрдВ рдЫреВрдирд╛ рдЪрд╛рд╣рд┐рдПред рдФрд░ pipenv lock рдХреЛ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдХрднреА рднреА рдХреБрдЫ рднреА рдЕрдкрдЧреНрд░реЗрдб рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП - рдпрд╣ рд╕рд┐рд░реНрдл рдЙрд╕ рд▓реЙрдХ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рдЗрдВрд╕реНрдЯреЙрд▓ рд╣реИред

AFAICT, рдпрд╣ npm , yarn , gem , рдЖрджрд┐ рдХрд╛ рдХрд╛рдо рд╣реИ; рдЗрд╕рдХрд╛ рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рд╣реИ рдХрд┐ рдПрдХ рд▓реЙрдХрдлрд╝рд╛рдЗрд▓ рд╣реИ рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкреИрдХреЗрдЬ рдХреЛ рд▓реЙрдХ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдкреИрдХреЗрдЬ рд▓реЗрдЦрдХреЛрдВ рдХреЛ рдкреИрдЪ рд░рд┐рд▓реАрдЬрд╝ рдореЗрдВ рдЪреАрдЬреЛрдВ рдХреЛ рдирд╣реАрдВ рддреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рднрд░реЛрд╕рд╛ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЗрд╕рд▓рд┐рдП рдЙрдиреНрд╣реЗрдВ рдмрд┐рдирд╛ рдкреВрдЫреЗ рдЕрдкрдЧреНрд░реЗрдб рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдореИрдВ рдЕрдкрдЧреНрд░реЗрдб рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рджреЗрдЦ рд╕рдХрддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдСрдкреНрдЯ-рдЗрди рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЙрдиреНрд╣реЗрдВ рдЕрдкрдЧреНрд░реЗрдб рди рдХрд░рдиреЗ рд╕реЗ рдЕрдзрд┐рдХ рдЖрд╢реНрдЪрд░реНрдп рдХреА рдмрд╛рдд рд╣реИред

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

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

рдпрд╣ pipenv install рд▓рд┐рдП рднреА рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдХрднреА-рдХрднреА рдореИрдВ рджреВрд╕рд░реЛрдВ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд┐рдП рдмрд┐рдирд╛ рдПрдХ рдирдИ рдирд┐рд░реНрднрд░рддрд╛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред

рдпрд╣рд╛рдБ рдПрдХ рдЫреЛрдЯреА рд╕реА рдмрд╛рдд рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрдирд╛ рд╣реИ: рдПрдХрд▓ рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рдмрджрд▓рдирд╛ рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЗ рд╕рдордЧреНрд░ рд╕реЗрдЯ рдХреЛ рдмрджрд▓ рд╕рдХрддрд╛ рд╣реИред
Ex: 1.0 рд╕реЗ 2.0 рддрдХ foo рдХрд╛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП bar рд▓реЗрдХрд░ = = 2.0 рддрдХ рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛ рдкрдбрд╝ рд╕рдХрддрд╛ рд╣реИ (рдЬрдмрдХрд┐ рдпрд╣ рдкрд╣рд▓реЗ <2.0 рдерд╛), рдФрд░ рдЗрд╕реА рддрд░рд╣ред

рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ pip-tools рдЦреБрдж (рдЬрд┐рд╕рд╕реЗ pipenv рдЕрдкрдиреА рдирд┐рд░реНрднрд░рддрд╛ рд╕рдВрдХрд▓реНрдк рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рд▓реЗрддрд╛ рд╣реИ) рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ, рдирд┐рд░реНрднрд░рддрд╛ рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рдЪрд▓рд╛рдиреЗ рдкрд░ рдХреЗрд╡рд▓ рдЖрд╡рд╢реНрдпрдХ рдкреИрдХреЗрдЬреЛрдВ рдХреЛ "рдЕрдкрдбреЗрдЯ" рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдЬрдм "рд░реА-рд▓реЙрдХрд┐рдВрдЧ" рд╣реЛ рддреЛ рдПрдХ рдореМрдЬреВрджрд╛ рд▓реЙрдХ рдлрд╝рд╛рдЗрд▓ред рдРрд╕рд╛ рдХрд░рдиреЗ рд╕реЗ рдпрд╣ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рдпрджрд┐ рд╣рд▓ рдореЗрдВ рдЙрдореНрдореАрджрд╡рд╛рд░ рдХрд╛ рдЪрдпрди рдХрд░рддреЗ рд╕рдордп рд▓реЙрдХрдлрд╛рдЗрд▓ рдореЗрдВ рдореМрдЬреВрджрд╛ рдкрд┐рди рдкрд╣рд▓реЗ рд╡реИрдз рдЙрдореНрдореАрджрд╡рд╛рд░ рд╣реИрдВред pipenv рд╢рд╛рдпрдж рдпрд╣реА рдХрд░ рд╕рдХрддреЗ рдереЗред

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

рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдпреЗ рдЖрдкрдХреА рдорджрдж рдХрд░реЗрдЧрд╛!

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣реА рдореЗрд░рд╛ рдорддрд▓рдм рдерд╛:

рдпрд╣ рдХреЗрд╡рд▓ рдореЗрд░реЗ рднрдпрд╛рдирдХ-рдбрд┐рдкреЛ рдФрд░ рдЗрд╕рдХреА рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рдЕрдкрдбреЗрдЯ рдХреЗ рд╕рд╛рде рдПрдХ Pipfile.lock рдЙрддреНрдкрдиреНрди рдХрд░реЗрдЧрд╛ред

100% рд╕рд╣рдордд - рдФрд░ рдореИрдВ рдереЛрдбрд╝рд╛ рдЖрдЧреЗ рдЬрд╛рдКрдВрдЧрд╛: рдпрд╣ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдпрд╛рдиреА pipenv install foo рдХреЛ рдХрднреА рднреА foo рдФрд░ рдЙрд╕рдХреА рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХреБрдЫ рднреА рдирд╣реАрдВ рдЫреВрдирд╛ рдЪрд╛рд╣рд┐рдПред рдФрд░ pipenv lock рдХреЛ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдХрднреА рднреА рдХреБрдЫ рднреА рдЕрдкрдЧреНрд░реЗрдб рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП - рдпрд╣ рд╕рд┐рд░реНрдл рдЙрд╕ рд▓реЙрдХ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рдЗрдВрд╕реНрдЯреЙрд▓ рд╣реИред

AFAICT, рдпрд╣ npm , yarn , gem , рдЖрджрд┐ рдХрд╛ рдХрд╛рдо рд╣реИ; рдЗрд╕рдХрд╛ рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рд╣реИ рдХрд┐ рдПрдХ рд▓реЙрдХрдлрд╝рд╛рдЗрд▓ рд╣реИ рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкреИрдХреЗрдЬ рдХреЛ рд▓реЙрдХ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдкреИрдХреЗрдЬ рд▓реЗрдЦрдХреЛрдВ рдХреЛ рдкреИрдЪ рд░рд┐рд▓реАрдЬрд╝ рдореЗрдВ рдЪреАрдЬреЛрдВ рдХреЛ рдирд╣реАрдВ рддреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рднрд░реЛрд╕рд╛ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЗрд╕рд▓рд┐рдП рдЙрдиреНрд╣реЗрдВ рдмрд┐рдирд╛ рдкреВрдЫреЗ рдЕрдкрдЧреНрд░реЗрдб рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдореИрдВ рдЕрдкрдЧреНрд░реЗрдб рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рджреЗрдЦ рд╕рдХрддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдСрдкреНрдЯ-рдЗрди рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЙрдиреНрд╣реЗрдВ рдЕрдкрдЧреНрд░реЗрдб рди рдХрд░рдиреЗ рд╕реЗ рдЕрдзрд┐рдХ рдЖрд╢реНрдЪрд░реНрдп рдХреА рдмрд╛рдд рд╣реИред

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

рдмрд╕ рдЗрд╕ рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЗ рдХреЛ рднреА рдорд┐рд▓рд╛: https://github.com/kennethreitz/pipenv/issues/418

pipenv install --upgrade-strategy=only-if-needed рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреЗ рдирд╛рддреЗ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдХреНрдпрд╛ рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИ рдХрд┐ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдкрд╛рдЗрдк 10 рдореЗрдВ рдмрди рд░рд╣рд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЗрд╕реЗ рдЕрд░реНрдз-рд╕реНрдерд╛рдпреА рд░реВрдк рд╕реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреЗ рдирд╛рддреЗ env var рдХреБрдЫ рднреА рд╣реЛрдЧрд╛ред

рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рд╣реЛрдЧрд╛ рдХрд┐ рдЕрдЧрд░ рдпрд╣ рдкрд░рд┐рд╡рд░реНрддрди рдХрд┐рд╕реА рдХреЗ рд╡рд░реНрдХрдлрд╝реНрд▓реЛ ( рдкреНрд░рд╕рд┐рджреНрдз рдЕрдВрддрд┐рдо рд╢рдмреНрдж ) рдХреЛ рддреЛрдбрд╝ рджреЗрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ --upgrade-strategy=eager рд╕реЗ рдЕрдзрд┐рдХ рд░реВрдврд╝рд┐рд╡рд╛рджреА рд╣реИред

рдореЗрд░реЗ рд╢реЗрд▓ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ export PIP_UPGRADE_STRATEGY=only-if-needed рд╕реЗрдЯ рдХрд░рдХреЗ рдЗрд╕рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреАред рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдФрд░ pipenv lock рдЗрди рдЖрд╢реНрдЪрд░реНрдпрдЬрдирдХ рд╡реНрдпрд╡рд╣рд╛рд░реЛрдВ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ:

  1. рдпрд╣ "рдЕрдкрдЧреНрд░реЗрдб" рдкреИрдХреЗрдЬ рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ (рд▓реЗрдХрд┐рди ...)
  2. рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЛ рдЕрдкрдЧреНрд░реЗрдб рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ! рдпрд╛рдиреА pip freeze рдФрд░ Pipfile.lock рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕рдВрд╕реНрдХрд░рдг рджрд┐рдЦрд╛рддреЗ рд╣реИрдВ!

рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ pipenv рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╛рдЗрдк рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рддрд┐рдирд┐рдзрд┐ рд╣реИ, рдФрд░ рдкрд╛рдЗрдк рдЗрд╕рдХреА рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХрд╛ рд╕рдореНрдорд╛рди рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди pipenv lock рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

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

@brettdh рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдХреБрдЫ рдкреНрд░рдХрд╛рд╢ рдбрд╛рд▓ рд╕рдХрддрд╛ рд╣реВрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЕрдзрд┐рдХрд╛рдВрд╢ рдЯреБрдХрдбрд╝реЗ рд╣реИрдВред pipenv lock рдХреБрдЫ рднреА рд╕реНрдерд╛рдкрд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдпрд╣ рджрд╛рд╡рд╛ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдХреЗрд╡рд▓ рдЖрдкрдХреЗ рд╣реЛрд╕реНрдЯ рд╡рд╛рддрд╛рд╡рд░рдг, рдкрд╛рдпрдерди рд╕рдВрд╕реНрдХрд░рдг рдФрд░ рджрд┐рдП рдЧрдП Pipfile рдХреЗ рд▓реЙрдХрдлрд╝рд╛рдЗрд▓ рдХреЛ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдХрд┐рд╕реА рдЕрдиреНрдп рддрд░реАрдХреЗ рд╕реЗ рдЕрдкрдиреЗ рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рд╣реЗрд░рдлреЗрд░ рдХрд░рддреЗ рд╣реИрдВ рдпрд╛ рдпрджрд┐ рдЖрдк рд╕реАрдзреЗ рдкрд╛рдЗрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ / рдкрд┐рдкреЗрдирд╡ рдХреЗ рдмрд╛рд╣рд░ рдкрд╛рдЗрдк рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдореЗрдВ рд╣реЗрд░рдлреЗрд░ рдХрд░рддреЗ рд╣реИрдВ / pipenv run рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдпрд╛ рдХрд┐рд╕реА pipenv рд╕рдм-рдЗрди рдХреЗ рдЕрдВрджрд░ pip freeze рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдХрд╛рдлреА рдЖрд╕рд╛рди рд╣реИ pip freeze рд╕реЗ рд╕рд┐рдВрдХ рд╕реЗ рдмрд╛рд╣рд░ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рддрд╛рд▓рд╛ред рджреЛрдиреЛрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рдВрдмрдВрдзрд┐рдд рдирд╣реАрдВ рд╣реИрдВред

рд╕реНрдкрд╖реНрдЯ рд╣реЛрдирд╛:

  1. Pipfile.lock рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ Pipfile рдЖрдзрд╛рд░ рдкрд░ рдкрд╛рдЗрдк-рдЯреВрд▓ рд░рд┐рдЬрд╝реЙрд▓реНрд╡рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдХрдбрд╝рд╛рдИ рд╕реЗ рдкрд┐рди рдХрд░рдиреЗ рд╡рд╛рд▓реА рдирд┐рд░реНрднрд░рддрд╛ рд╕рдВрдХрд▓реНрдк рд╣реИ
  2. рдпрджрд┐ рдЖрдк рдХреЗрд╡рд▓ рдПрдХ рдкреИрдХреЗрдЬ рдХреЛ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рддреЗ рд╕рдордп рд╣рд░ рдЪреАрдЬ рдХреЗ рд╕рдЦреНрдд рдкрд┐рди рдХреЛ рдмрдирд╛рдП рд░рдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдЖрдк рдРрд╕рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЕрдкрдиреЗ Pipfile рдореЗрдВ рд╕рдм рдХреБрдЫ рд╕рдЦреНрддреА рд╕реЗ рдкрд┐рди рдХрд░рдХреЗ рдЖрдк рдЬрд┐рд╕ рдЪреАрдЬ рдХреЛ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЙрд╕реЗ рдЫреЛрдбрд╝рдХрд░ (рдореБрдЭреЗ рдЧрд▓рдд рд╣реЛрдиреЗ рдкрд░ рд╕рд╣реА рдХрд░реЗрдВ) @vphilippon)

рдЖрдкрдХреЗ рд▓реЙрдХрдлрд╛рдЗрд▓ рдФрд░ pip freeze рдПрдХ-рджреВрд╕рд░реЗ рд╕реЗ рдЕрд╕рд╣рдордд рд╣реЛрдиреЗ рдХреЗ рдХрд╛рд░рдг, рдореБрдЭреЗ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреА рд╣реЛрдЧреА, рд▓реЗрдХрд┐рди рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рд╕рдорд╛рдзрд╛рди рдХреЗ рд▓рд┐рдП рдЧреИрд░-рд╕рд┐рд╕реНрдЯрдо рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╣рдорд╛рд░реЗ рд▓реЙрдХрдлрд╝рд╛рдЗрд▓ рд░рд┐рдЬрд╝реЙрд▓реНрд╡рд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рдЦреБрд▓рд╛ рдореБрджреНрджрд╛ рд╣реИред

@techalchemy : рдпрджрд┐ рдореЗрд░реЗ рдкрд╛рд╕ A, B рдФрд░ C рдХреЗ рд╕рд╛рде Pipfile.lock рд╣реИ, рдЬрд╣рд╛рдВ B A рдХреА рдирд┐рд░реНрднрд░рддрд╛ рд╣реИ, рддреЛ рдореИрдВ A рдФрд░ B рдХреЛ C, рдпрд╛ C рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд┐рдП рдмрд┐рдирд╛ A рдФрд░ B рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд┐рдП рдмрд┐рдирд╛ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред
рдлрд┐рд░ рд╕реЗ рдореИрдВ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рд╕рднреА рдирд┐рд░реНрднрд░рддрд╛ рдФрд░ рдЙрдирдХреА рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рдЕрдкрдиреЗ Pipfile рдореЗрдВ рдкрд┐рди рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рдмреЛрдЭ рдмрдирд╛рдП рд░рдЦрдирд╛ рд╣реЛрдЧрд╛ (рдЬреИрд╕реЗ рдХрд┐ requirements.txt рд╣реИрдВ)ред

рдореИрдВ рд╕рдм рдХреБрдЫ @ k4nar рдиреЗ рд▓рд┐рдЦрд╛ред рдпрдХреАрди рд╣реИ, рдореИрдВ рднреА рд╕рд┐рд░реНрдл рдкрд┐рди рдХрд░ рд╕рдХрддрд╛ рд╣реИ
рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдореЗрдВ рд╕рдм рдХреБрдЫред рдкрд┐рдкрдВрдирд╡ рдХреА рдмрд╛рдд рд╣реИ
рдПрдХ рдЙрдкрдХрд░рдг рд╣реИ рдХрд┐ рдмрдирд╛рддрд╛ рд╣реИ (рдФрд░ virtualenv рд╕рд╛рдорд╛рди, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ)
рдкреНрд░рдмрдВрдзрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд░рд▓; рдпрд╛рдиреА рд╕рднреА рдкреИрдХреЗрдЬ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдПрдХ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдмрдВрдж рд╣реИрдВ
рдпрд╣ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХрд┐рд╕реА рдЪрдпрди рдХреЛ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рд╕реАрдзрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП
рдХреБрдЫ (рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рд░реВрдк рд╕реЗ рджреВрд╕рд░реЛрдВ рдХреЛ рдЕрдкрдЧреНрд░реЗрдб рдХрд┐рдП рдмрд┐рдирд╛)ред
Thu рдкрд░, 26 рдЕрдХреНрдЯреВрдмрд░, 2017 рдХреЛ рд╕реБрдмрд╣ 4:28 рдмрдЬреЗ Yannick PUXROUX рд╕реВрдЪрдирд╛рдПрдВ @github.com
рд▓рд┐рдЦрд╛ рдерд╛:

@techalchemy https://github.com/techalchemy : рдпрджрд┐ рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ Pipfile.lock рд╣реИ
A, B рдФрд░ C рдХреЗ рд╕рд╛рде рдЬрд╣рд╛рдВ B A рдХреА рдирд┐рд░реНрднрд░рддрд╛ рд╣реИ, рдореИрдВ рдЪрд╛рд╣реВрдВрдЧрд╛ рдХрд┐ рдореИрдВ рд╕рдХреНрд╖рдо рд╣реЛ рдЬрд╛рдКрдВ
A рдФрд░ B рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд┐рдП рдмрд┐рдирд╛ A рдФрд░ B рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВ, A рдФрд░ B рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд┐рдП рдмрд┐рдирд╛ред
рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдореИрдВ рдЕрдкрдиреА рд╕рд╛рд░реА рдирд┐рд░реНрднрд░рддрд╛ рдФрд░ рдЕрдкрдиреА рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рдЕрдкрдиреЗ рдореЗрдВ рд╕рдорд╛рд╣рд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ
рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП Pipfile, рд▓реЗрдХрд┐рди рд╡рд╣ рдмрдирд╛рдП рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдмреЛрдЭ рд╣реЛрдЧрд╛ (рдЬреИрд╕реЗ)
рдЕрдзрд┐рдХрд╛рдВрд╢ рдЖрд╡рд╢реНрдпрдХрддрд╛рдПрдБред

-
рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рдЙрддреНрддрд░ рд╕реАрдзреЗ рджреЗрдВ, рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/kennethreitz/pipenv/issues/966#issuecomment-339591917 ,
рдпрд╛ рдзрд╛рдЧрд╛ рдореНрдпреВрдЯ рдХрд░реЗрдВ
https://github.com/notifications/unsubscribe-auth/AAFlnqUOEKARiFD8kEk3GVczF3NXBdVOks5swEKcgaJpZM4QEf--
ред

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

@techalchemy рдореИрдВрдиреЗ pip freeze рдЕрдВрддрд░ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ "рдкреИрдХреЗрдЬ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╢реЙрд░реНрдЯрд╣реИрдВрдб рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐рдпрд╛ рд╣реИ рдХрд┐ pipenv install рдЗрдВрд╕реНрдЯреЙрд▓ рдкреИрдХреЗрдЬ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рд╕реЗ рднрд┐рдиреНрди рд╣реЛрддрд╛ рд╣реИ рдХрд┐ pipenv lock Pipfile.lock " рдмрдЪрд╛рддрд╛ рд╣реИред "

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

рдХреНрдпрд╛ рдЖрдк рдЕрдкрдиреЗ рдкреНрд░рд╢реНрди рдХреЛ рдереЛрдбрд╝рд╛ рд╕реНрдкрд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ? рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ "рдкрд╛рдЗрдк-рдЯреВрд▓реНрд╕ рдХреЗ рд╕рд╛рде рд╕рдорд╛рдзрд╛рди" рдХрд╛ рдЬрд┐рдХреНрд░ рд╣реИ рдХрд┐ pipenv lock рдХреНрдпрд╛ рдХрд░ рд░рд╣рд╛ рд╣реИ, рдФрд░ рдЗрд╕рдХрд╛ рдХрд╛рд░рдг рдХреНрдпрд╛ рд╣реИ рдЬрдм рдореИрдВ рдкрд╛рдЗрдк рдбрд┐рдлреЙрд▓реНрдЯ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реВрдВ? рдФрд░ рдХреНрдпрд╛ рдЖрдк "рдЗрд╕ рд╡реНрдпрд╡рд╣рд╛рд░" рд╕реЗ рдЖрдкрдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ?

@brettd рд▓реЙрдХрд┐рдВрдЧ рддрдВрддреНрд░ рдореЗрдВ "рдирд┐рд░реНрднрд░рддрд╛ рд╕рдВрдХрд▓реНрдк" рдХреА рдзрд╛рд░рдгрд╛ рд╢рд╛рдорд┐рд▓ рд╣реИ рдЬреЛ pip рдореЗрдВ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИред pip-tools (рдпрд╛ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рдЗрд╕рдХрд╛ рдПрдХ рдкреИрдЪ рд╕рдВрд╕реНрдХрд░рдг, pipenv рджреНрд╡рд╛рд░рд╛ рдореВрд▓ рддрд░реАрдХреЗ рд╕реЗ рдХреБрдЫ рдЕрдВрддрд░ рд▓рд╛рдиреЗ рд╡рд╛рд▓реЗ рд╡рд┐рд╢реЗрд╖ рддрд░реАрдХреЗ рд╕реЗ рдПрдХреАрдХреГрдд) рджреНрд╡рд╛рд░рд╛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рд▓реЙрдХрд┐рдВрдЧ рддрдВрддреНрд░ Pipfile рдкрдврд╝рддрд╛ рд╣реИ рдФрд░ рдкреИрдХреЗрдЬ рдХреЗ рдПрдХ рдкреВрд░реНрдг рд╕реЗрдЯ рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреВрд░реНрдг рдирд┐рд░реНрднрд░рддрд╛ рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдЖрд╡рд╢реНрдпрдХ рдкреИрдХреЗрдЬреЛрдВ рдФрд░ рдЙрдирдХреА рдирд┐рд░реНрднрд░рддрд╛рдУрдВ рджреНрд╡рд╛рд░рд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╣рд░ рдмрд╛рдзрд╛рдУрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░реЗрдЧрд╛ред

@techalchemy

[...] рдпрд╣ рдкрд╛рдЗрдк-рдЯреВрд▓реНрд╕ рд╕реЗ рд╣рд▓ рд╣реЛ рд░рд╣рд╛ рд╣реИ рдЬреЛ рдореБрдЭреЗ рдЪрд┐рдВрддрд┐рдд рдХрд░рддрд╛ рд╣реИред

рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ рдХреИрд╕реЗ рдирд╣реАрдВ рдЙрди рд╣реВрдБ --upgrade-strategy рдЕрд╕рд░ рдкрдбрд╝реЗрдЧрд╛ pip-tools , рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рдирд┐рдореНрди рд╕реНрддрд░ рдХреЗ internals рдкрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ pip ред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЕрдкреЗрдХреНрд╖рд┐рдд рдкрд░рд┐рдгрд╛рдо рдирд╣реАрдВ рджреЗрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдпреЗ рд╡рд┐рдХрд▓реНрдк рдЗрд╕ рдмрд╛рдд рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдпрд╣ рдХрд┐ рдЙрд╕ рддрдВрддреНрд░ рд╕реЗ рдирд┐рдкрдЯрд╛ рдирд╣реАрдВ рдЬрд╛ рд░рд╣рд╛ рд╣реИред рд▓реЗрдХрд┐рди рд╣рдорд╛рд░реЗ рдкрд╛рд╕ pip-tools рдореЗрдВ рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдФрд░ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╣реИ рдЬреЛ рдпрд╣рд╛рдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

"рдореВрд▓" pip-tools рд╡реНрдпрд╡рд╣рд╛рд░ рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдХреЗрд╡рд▓ рд╡рд╣реА рдЕрдкрдбреЗрдЯ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рд▓реЙрдХрдлрд╛рдЗрд▓ рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рд╣реИ (рдЗрд╕рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ, рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛рдПрдВред рдЗрд╕рдХреЗ рдмрд╛рдж), рд▓реЗрдХрд┐рди рдЗрд╕ рддрд░рд╣ рд╕реЗ "рдЦреЛ" рдЧрдпрд╛ рдерд╛ рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рд░рд┐рдЬрд╝реЙрд▓реНрд╡рд░ pipenv рдореЗрдВ рдПрдХреАрдХреГрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛

pip-tools рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдореЗрд░реЗ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рд╣реЛрдиреЗ рдХреА рдУрд░ рдЗрд╢рд╛рд░рд╛ рдХрд░рддреЗ рд╣реБрдП: https://github.com/kennethreitz/pipenv/issues/875#issuecomment -337717817
"рдЙрдореНрдореАрджрд╡рд╛рд░ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ" рднрд╛рдЧ рдпрд╛рдж рд░рдЦреЗрдВ? рдпрд╣ Repository рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдХреНрд╡реЗрд░реА рдХрд░рдХреЗ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдореЗрдВ pipenv , рд╣рдо рд╕реАрдзреЗ рдПрдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ PyPIRepository рдХреЗ рд▓рд┐рдП Resolver , рд▓реЗрдХрд┐рди pip-tools рдХреБрдЫ рдФрд░, рдпрд╣ рдПрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ LocalRequirementsRepository рд╡рд╕реНрддреБ рд╣реИ, рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рдореМрдЬреВрдж requirements.txt (рдпрджрд┐ рдкрд╛рдпрд╛ рдЧрдпрд╛), рдФрд░ " PyPIRepository " рдкрд░ "рдХрдорд┐рдпрд╛рдВ" рд╕реЗ рдореМрдЬреВрджрд╛ рдкрд┐рди рд░рдЦрддрд╛ рд╣реИред

рддреЛ pip-tools , рдЙрдореНрдореАрджрд╡рд╛рд░ рдХрд╛ рдЪрдпрди рдХрд░рддреЗ рд╕рдордп рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╣реЛрддрд╛ рд╣реИ:

  1. рдПрдХ рдЙрдореНрдореАрджрд╡рд╛рд░ рдХреЗ рд▓рд┐рдП LocalRequirementsRepository рдЬреЛ foobar>=1.0,<2.0 рдореЗрд▓ рдЦрд╛рддреЗ рд╣реИрдВред
  2. рдЬрд╛рдВрдЪреЗрдВ рдХрд┐ рдХреНрдпрд╛ рдореМрдЬреВрджрд╛ рдкрд┐рди рдЙрд╕ рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рддрд╛ рд╣реИ:

    • рдпрджрд┐ рд╣рд╛рдБ, рддреЛ рдЙрд╕ рдкрд┐рди рдХреЛ рдЙрдореНрдореАрджрд╡рд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд╛рдкрд╕ рдХрд░реЗрдВред

    • рдпрджрд┐ рдирд╣реАрдВ, рддреЛ рдЙрдореНрдореАрджрд╡рд╛рд░ рдХреЗ рд▓рд┐рдП proxied_repository ( PyPIRepository ) рдХреА рдХреНрд╡реЗрд░реА рдХрд░реЗрдВред

  3. рд▓реМрдЯреЗ рдЙрдореНрдореАрджрд╡рд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ

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

рд▓реЗрдХрд┐рди pipenv , рд╡рд░реНрддрдорд╛рди рдореЗрдВ, рдпрд╣ рдмрд╕:

  1. рдПрдХ рдЙрдореНрдореАрджрд╡рд╛рд░ рдЬреЛ foobar>=1.0,<2.0 рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ рдЙрд╕рдХреЗ рд▓рд┐рдП рдХреНрд╡реЗрд░реА PyPIRepository (рд╕реАрдзреЗ)ред
  2. рд▓реМрдЯреЗ рдЙрдореНрдореАрджрд╡рд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред

рддреЛ, рдореИрдВ рдореЗрдВ рддрд╛рд▓рд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рд╣реА рд╡реНрдпрд╡рд╣рд╛рд░ рд▓рдЧрддрд╛ рд╣реИ pipenv рдкрд╛рд░реНрд╕ рдХрд░рдиреЗ рдХреЗ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ Pipfile.lock рдореМрдЬреВрджрд╛ рдкрд┐рди рдорд┐рд▓рддрд╛ рд╣реИ рдФрд░ рдПрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ LocalRequirementsRepository , рдЬреИрд╕реЗ pip-tools рдЕрдкрдиреЗ pip-compile рдХрдорд╛рдВрдб рдореЗрдВ рдХрд░рддрд╛ рд╣реИред

@vphilippon рдЖрдкрдХреЛ рдЗрд╕ рдмрд╛рдд рдХреА рд╕рдордЭ рд╣реИ рдХрд┐ рдЙрд╕ рдкрд░ рдЕрдорд▓ рдХрд┐рддрдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реЛрдЧрд╛?

@techalchemy

  • рдореМрдЬреВрджрд╛ рдкрд┐рди рдирд┐рдХрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП Pipfile.lock рдкрд╛рд░реНрд╕ рдХрд░рдирд╛: рдЙрд╕ рдкрд░ рдзреНрдпрд╛рди рдирд╣реАрдВ рджрд┐рдпрд╛ рдЧрдпрд╛ред рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рдХрд┐ pipenv рдореЗрдВ рдЪреАрдЬреЛрдВ рдХреЛ рдХреИрд╕реЗ рд╕рдВрд░рдЪрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╣рдо рдХрд╛ рдПрдХ рд╕реЗрдЯ рдХреА рдЬрд░реВрд░рдд рд╣реИ InstallRequirements рдХрд┐ рдореЗрдВ рдкрд┐рди рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддрд╛ рд╣реИ Pipfile.lock ред
  • LocalRequirementsRepository рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛: рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реИ: рд╣рдорд╛рд░реЗ рд╡рд░реНрддрдорд╛рди PyPIRepository рдХреЛ LocalRequirementsRepository рд▓рд┐рдП рдмрджрд▓реЗрдВред

рд▓реЗрдХрд┐рди, рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВ рдЗрд╕реЗ рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдВ, рдФрд░ @brettdh рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЗ рдмрд╛рдж, рдореБрдЭреЗ рдХреБрдЫ рдЪреАрдЬреЛрдВ рдХрд╛ рдПрд╣рд╕рд╛рд╕ рд╣реБрдЖ:

  1. рд╡рд░реНрддрдорд╛рди рдбрд┐рдлрд╝реЙрд▓реНрдЯ pipenv install рд╡реНрдпрд╡рд╣рд╛рд░ pipenv lock рд╡реНрдпрд╡рд╣рд╛рд░ рд╕реЗ рдореЗрд▓ рдирд╣реАрдВ рдЦрд╛рддрд╛ рд╣реИред pipenv install requests рдЕрдХреЗрд▓реЗ рдХрд░рдиреЗ рдкрд░ requests рдЕрдкрдбреЗрдЯ рдирд╣реАрдВ рд╣реЛрдЧрд╛ рдпрджрд┐ рдХреЛрдИ рдирдпрд╛ рд╕рдВрд╕реНрдХрд░рдг рд╕рд╛рдордиреЗ рдЖрддрд╛ рд╣реИ (рдмрд╣реБрдд рдХреБрдЫ рд╕реАрдзреЗ pip install )ред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдХрд░ pipenv lock рдЕрдкрдбреЗрдЯ рдХрд░реЗрдЧрд╛ Pipfile.lock рдХреЗ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде requests рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ Pipfile рд╡рд┐рдирд┐рд░реНрджреЗрд╢рдХ рд╣реИ, рдФрд░ рдирд┐рд░реНрднрд░рддрд╛ рдХреА рдХрдореАред
    рдЗрд╕реЗ рджреЗрдЦрдиреЗ рдХрд╛ 2 рдореБрдЦреНрдп рддрд░реАрдХрд╛ рд╣реИ:

    • A) Pipfile.lock рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдпрдерд╛рд╕рдВрднрд╡ рд╕реНрдерд┐рд░ рд░рд╣рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬрдм рддрдХ рдХрд┐ рд╡рд░реНрддрдорд╛рди рдкрд░рд┐рд╡реЗрд╢ рдХреА рддрд░рд╣ рд░рд╣рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрд╡рд╢реНрдпрдХ рди рд╣реЛ, рддреЛ рдкрд┐рди рдмрджрд▓рдирд╛ рди рдкрдбрд╝реЗ рдФрд░ рдХреЗрд╡рд▓ рдЙрд╕ рдШрдЯрдирд╛ рдореЗрдВ рдмрджрд▓рд╛рд╡ рдЖрдП рдЬрд┐рд╕рд╕реЗ рд╣рдо рдкрд░реНрдпрд╛рд╡рд░рдг рдХреЛ рдмрджрд▓рддреЗ рд╣реИрдВред

    • рдмреА) Pipfile.lock рдХреЛ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдЪрд╛рд╣рд┐рдП рдЬреЛ рдкрд░реНрдпрд╛рд╡рд░рдг рдХреА рдХрдореА / рдирд┐рд░реНрднрд░рддрд╛ рдХрд╛ рд╕рдореНрдорд╛рди рдХрд░рддреЗ рд╣реИрдВ рддрд╛рдХрд┐ Pipfile рдФрд░ рдореБрдХреНрдд рд░реВрдк рд╕реЗ рдЦреБрд▓реА рдирд┐рд░реНрднрд░рддрд╛ рд╕реЗ рд▓рд╛рдн рд╣реЛ, рдЬрд┐рд╕рд╕реЗ рд▓рдЧрд╛рддрд╛рд░ рдирдП рд╕рдВрдЧрдд рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдорд┐рд▓рддреА рд╣реИред рдЖрдкрдХрд╛ рдкрд░реНрдпрд╛рд╡рд░рдг рдлрд┐рд░ рдЖрдк рддрд╛рдЬреЗ рд▓реЙрдХ рд╕реЗ рд▓рд╛рдн рдХреЗ рд▓рд┐рдП pipenv update рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВред

IMHO, I would align the default behavior, which would be to go with A) by default. Because right now, everytime a lock is performed (i.e. after each installation), new versions can come in, which make the lockfile *drive the update of the environment*, which seems weird. But, this is arguable of course. While in development, I might want to continuously update my requirements to no get stale, like with B), so that should also be easily doable.
  1. рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЕрдЧрд░ рд╣рдо рд╕рд╣реА рдореМрдЬреВрджрд╛ рдкрд┐рди рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП LocalRequirementsRepository рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╡реНрдпрд╡рд╣рд╛рд░реЛрдВ рдХреЛ рд╕рдВрд░реЗрдЦрд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдореЗрдВ рд▓реЙрдХрд┐рдВрдЧ рднрд╛рдЧ рдХреЗ рд▓рд┐рдП --upgrade рдФрд░ --upgrade-strategy рдХреЗ рдмрд░рд╛рдмрд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред ред рд╡рд░реНрддрдорд╛рди рдореЗрдВ, рдХреБрдЫ рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ (рдЬреИрд╕реЗ PIP_UPGRADE рдФрд░ PIP_UPGRADE_STRATEGY ) рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдирд╛ pipenv install рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░реЗрдЧрд╛, рд▓реЗрдХрд┐рди рдпрд╣ pipenv lock рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рдХрд░реЗрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ pip-tools рдХрд╛ рд╡реНрдпрд╡рд╣рд╛рд░ (рдореИрдВрдиреЗ рдкреБрд╖реНрдЯрд┐ рдХреА, рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВ рдкрд╣рд▓реЗ рдЕрдирд┐рд╢реНрдЪрд┐рдд рдерд╛)ред
    рдЕрдиреНрдпрдерд╛, Pipfile.lock рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рдмрд┐рдирд╛ рдкрд░реНрдпрд╛рд╡рд░рдг рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реЛрдЧрд╛ (рдХреНрд▓реВрдиреА рд▓рдЧрддрд╛ рд╣реИ, рдФрд░ "рд╕рднреА рдпрд╛ рдХреБрдЫ рднреА рдирд╣реАрдВ") рдпрд╛ рдПрдХ рдирдП рд╕рдВрд╕реНрдХрд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ (рдореЗрд░рд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд╕реНрдкрд╖реНрдЯ pipenv install requests>2.18.4 , рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдпрд╣ рдЬрд╛рдирдирд╛ рдЖрд╡рд╢реНрдпрдХ Pipfile рдореЗрдВ рд╕реНрдкреЗрд╕рд┐рдлрд┐рдХ рдХреЛ рдмрджрд▓рдХрд░, рдирд┐рдЪрд▓реЗ рдмрд╛рдЙрдВрдб рдХреЛ рдмрдврд╝рд╛рддреЗ рд╣реБрдП), рдЬреЛ рдЧрд▓рдд рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ "рдореВрд▓ pip-tools " рдЗрд╕рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреЗ рд▓рд┐рдП pip рдХрдореА рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ (рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рд╕рдВрдмрдВрдзрд┐рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдХреНрдпрд╛ рд╕реНрдерд╛рдкрд┐рдд рд╣реИ), рдпрд╣ рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рдЕрджреНрдпрддрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХрд╛ рд╡рд┐рдХрд▓реНрдк рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рд▓реЙрдХрдлрд╝рд╛рдЗрд▓, рдФрд░ рдореМрдЬреВрджрд╛ рдкреИрдХреЗрдЬреЛрдВ (рдпрд╛ рд╕рднреА) рдХреЗ рд▓рд┐рдП рдкрд┐рди рдХреЛ рдореМрдЬреВрджрд╛_рдкрд┐рдиреНрд╕ рд╕реВрдЪреА рд╕реЗ рд╣рдЯрд╛ рджреЗрдВ, рдкреНрд░рднрд╛рд╡реА рд░реВрдк рд╕реЗ PyPI рдХреЛ рдХреНрд╡реЗрд░реА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рднрд╛рд╡реА рд░реВрдк рд╕реЗ рд╡рд╛рдкрд╕ рдЖ рд░рд╣рд╛ рд╣реИред рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╣рдо рдЗрд╕рдХреЗ рд╕рд╛рде "--рдЧреНрд░реБрдк-рд░рдгрдиреАрддрд┐" рдХреА рдзрд╛рд░рдгрд╛ рд╕реЗ рдХреИрд╕реЗ рдореЗрд▓ рдЦрд╛ рд╕рдХрддреЗ рд╣реИрдВред

@techalchemy
рдЗрд╕рд▓рд┐рдП рдЬрдм рдореИрдВ рдХрд╣ рд░рд╣рд╛ рдерд╛ рдХрд┐ рдпрд╣ рд╕рд┐рд░реНрдл "рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рд╕рдВрд░реЗрдЦрд┐рдд рдХрд░рдирд╛" рдХрд╛рдлреА рдЖрд╕рд╛рди рдерд╛, рдореБрдЭреЗ рдЕрдм рдПрд╣рд╕рд╛рд╕ рд╣реБрдЖ рдХрд┐ рдЗрд╕рд╕реЗ рдкреИрдХреЗрдЬ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреЗ рд╕рд╛рде рдХреБрдЫ рдкреНрд░рдореБрдЦ рдореБрджреНрджрд╛ рдкреИрджрд╛ рд╣реЛрдЧрд╛ (рдЬреИрд╕реЗ: рдЕрднреА рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдорд┐рд▓рддрд╛ рд╣реИ рдЬреЛ рдореЗрд░реА рд╡рд░реНрддрдорд╛рди рдмрд╛рдзрд╛рдУрдВ рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ) ред

рдпрджрд┐ рдХреБрдЫ рдЕрд╕реНрдкрд╖реНрдЯ рд╣реИ, рддреЛ рдкреВрдЫреЗрдВ, рдпрд╣ рд▓рд┐рдЦрддреЗ рд╕рдордп рдмрд╣реБрдд рд╕рд╛рд░реЗ рд╕рдВрдкрд╛рджрди рдЪрд▓реЗ рдЧрдПред

(рдирд┐рд░реНрднрд░рддрд╛ рд╕рдВрдХрд▓реНрдк рдЖрд╕рд╛рди рдирд╣реАрдВ рд╣реИред рдЕрдЪреНрдЫрд╛ рдФрд░ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдирд┐рд░реНрднрд░рддрд╛ рд╕рдВрдХрд▓реНрдк рдФрд░ рднреА рдмреБрд░рд╛ рд╣реИ)

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

рдмреА) Pipfile.lock рдХреЛ рдирдП рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЛ рдорд┐рд▓рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреЛ рдкрд░реНрдпрд╛рд╡рд░рдг рдХреА рдХрдореА / рдирд┐рд░реНрднрд░рддрд╛ рдХрд╛ рд╕рдореНрдорд╛рди рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рд╕реЗ рдХрд┐ рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ Pipfile рдФрд░ рдХрд╛рдо рдкрд░ рдирд┐рд░реНрднрд░рддрд╛ рдореЗрдВ рдЦреБрд▓реА рд╕реАрдорд╛рдУрдВ рд╕реЗ рд▓рд╛рдн рдорд┐рд▓ рд╕рдХреЗ, рдЬрд┐рд╕рд╕реЗ рдЖрдкрдХреЗ рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рд▓рдЧрд╛рддрд╛рд░ рдирдП рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдорд┐рд▓рддреА рд╣реИред рдлрд┐рд░ рдЖрдк рддрд╛рдЬреЗ рд▓реЙрдХ рд╕реЗ рд▓рд╛рднрд╛рдиреНрд╡рд┐рдд рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдкрд┐рдкреЗрдирд╡ рдЕрдкрдбреЗрдЯ рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВред

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

@vphilippon рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рд╣рдордд рд╣реИрдВ рдХрд┐ рдП рдФрд░ рдмреА рд╡рд┐рднрд┐рдиреНрди рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ рд╡рд╛рдВрдЫрдиреАрдп рд╡рд░реНрдХрдлрд╝реНрд▓реЛ рд╣реИрдВред B рдХреЗ рдЖрд╕рдкрд╛рд╕ рдЖрдкрдХреЗ рдХреБрдЫ рд╡рд╛рдХреНрдпрд╛рдВрд╢реЛрдВ рдиреЗ рдореБрдЭреЗ рдереЛрдбрд╝рд╛ рднреНрд░рдорд┐рдд рдХрд░ рджрд┐рдпрд╛, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣ рдХрд╣рддреЗ рд╣реБрдП рдХрд┐ pipenv lock рдкрд░рд┐рдгрд╛рдо рдПрдХ рд▓реЙрдХрдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкрд░реНрдпрд╛рд╡рд░рдг рд╕реЗ рдореЗрд▓ рдирд╣реАрдВ рдЦрд╛рддрд╛ рд╣реИ - рдореИрдВрдиреЗ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЗрд╕рдореЗрдВ рд╕реБрдирд╛ рд╣реИ рдХрд┐ " pipenv update рдЪрд▓рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА"

рднрд▓реЗ рд╣реА рдЖрдк A рд╡рд░реНрдХрдлрд╝реНрд▓реЛ рдореЗрдВ рд╣реЛрдВ рдпрд╛ B рд╡рд░реНрдХрдлрд╝реНрд▓реЛ рдореЗрдВ, рдХреБрдЫ рдЪреАрдЬреЗрдВ рдореБрдЭреЗ рдирд┐рд░рдВрддрд░ рд▓рдЧрддреА рд╣реИрдВ, рдФрд░ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╡рд░реНрдЧ @techalchemy рдХреЗ рд╕рд╛рде рднреА рдХрд╣ рд░рд╣рд╛ рд╣реИ:

  • pipenv lock рдХрд╛ рдкрд░рд┐рдгрд╛рдо рд╣рдореЗрд╢рд╛ рдкрд░реНрдпрд╛рд╡рд░рдг рд╕реЗ рдореЗрд▓ рдЦрд╛рдиреЗ рд╡рд╛рд▓рд╛ рддрд╛рд▓рд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
  • pipenv install рдХрд╛ рдкрд░рд┐рдгрд╛рдо рд╣рдореЗрд╢рд╛ рдПрдХ рдРрд╕рд╛ рд╡рд╛рддрд╛рд╡рд░рдг рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреЛ рд▓реЙрдХрдлрд╛рдЗрд▓ рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реЛред

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

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

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

B рдХреЗ рдЖрд╕рдкрд╛рд╕ рдЖрдкрдХреЗ рдХреБрдЫ рд╡рд╛рдХреНрдпрд╛рдВрд╢реЛрдВ рдиреЗ рдореБрдЭреЗ рдереЛрдбрд╝рд╛ рднреНрд░рдорд┐рдд рдХрд░ рджрд┐рдпрд╛, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣ рдХрд╣рддреЗ рд╣реБрдП рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдкрд┐рдкреЗрдирд╡ рд▓реЙрдХ рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рд▓реЙрдХрдлрд╝рд╛рдЗрд▓ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкрд░реНрдпрд╛рд╡рд░рдг рд╕реЗ рдореЗрд▓ рдирд╣реАрдВ рдЦрд╛рддрд╛ рд╣реИ

@brettdh рдпрд╣ рд╕рд╣реА рд╣реИ - pip-tools рд░рд┐рд╡рд╛рд▓реНрд╡рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╣рдо Pipfile.lock рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░рддреЗ рд╣реИрдВ, рд╡рд░реНрдЪреБрдЕрд▓рд╛рдЗрдЬреЗрди рд╕реЗ рдпрд╣ рдирд╣реАрдВ рдкреВрдЫрддреЗ рд╣реИрдВ рдХрд┐ рдХреМрди рд╕реЗ рдкреИрдХреЗрдЬреЛрдВ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рдпрд╣ Pipfile рд╕реЗ рдкрд┐рди рдХреА рд╕реВрдЪреА рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдорд╛рдирджрдВрдбреЛрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдкреИрдХреЗрдЬреЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рддрд╛ рд╣реИред рдХреНрдпреЛрдВрдХрд┐ рд░рд┐рдЬрд╝реЙрд▓реНрд╡рд░ рд╕реНрд╡рдпрдВ рд╕рд┐рд╕реНрдЯрдо рдпрд╛ рдмрд╛рд╣рд░реА рдкрд╛рдпрдерди / рдкрд┐рдкреЗрдирд╡ / рдкрд╛рдЗрдк-рдЯреВрд▓ рдЗрдВрд╕реНрдЯрд╛рд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЪрд▓рддрд╛ рд╣реИ, рд╣рдо virtualenv рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдЕрдЬрдЧрд░ рдХреЗ рд╕рдорд╛рди рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде рд╕рдВрдХреБрд▓ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рд╕рдордЭрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд╕рд░реНрд╡реЛрдЪреНрдЪ рдмрдХрд╡рд╛рд╕ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдзрд╛рд░рдгрд╛ рдпрд╣ рд╣реЛрдЧреА рдХрд┐ pip install рдЪреАрдЬреЗрдВ рд╕рдорд╛рди рд░реВрдк рд╕реЗ рд╣рд▓ рдХрд░реЗрдВрдЧреА, рд▓реЗрдХрд┐рди рдпрд╣ рд╣рдореЗрд╢рд╛ рдРрд╕рд╛ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдореИрдВ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ 100% рдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реВрдВред рд▓реЗрдХрд┐рди рд╣рд╛рдБ, pipenv lock virtualenv рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЙрддреНрдкрдиреНрди рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рдпрд╣ Pipfile рдЖрдзрд╛рд░ рдкрд░ рдЙрддреНрдкрдиреНрди рд╣реЛрддрд╛ рд╣реИред рдпрд╣ рдПрдХ рдбрд┐рдкреЗрдВрдбреЗрдВрд╕реА рд░реЗрдЬреЛрд▓реНрдпреВрд╢рди рд▓реЙрдХрдлрд╛рдЗрд▓ рд╣реИ, рди рдХрд┐ рдПрдирд╡рд╛рдпрд░рдирдореЗрдВрдЯ рд╕реНрдЯреЗрдЯ рдкрд┐рдиред

рдЗрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдВрднрд╛рд╡рд┐рдд рд╕рдВрдХрд▓реНрдк рдХреЗ рд░реВрдк рдореЗрдВ: рдХреБрдЫ рд╣реИ рдЬреЛ рдЦреБрдж рдкрд╛рдЗрдк рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди pip-compile рдирд╣реАрдВ рд╣реИ, рдПрдХ рдмрд╛рдзрд╛ рдлрд╝рд╛рдЗрд▓ рдХреА рдзрд╛рд░рдгрд╛ рд╣реИред

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

рдпрд╣ рд╡рд╣ рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИ рдЬреЛ рд╡рд░реНрддрдорд╛рди рдореЗрдВ pipenv рд╕реЗ рдЧрд╛рдпрдм рд╣реИ, рд╡рд╛рдВрдЫрд┐рдд рдЗрдирдкреБрдЯ рдХреЗ рд░реВрдк рдореЗрдВ Pipfile.lock рдкреАрдврд╝реА рдХреЗ рд▓рд┐рдП рд╣реИ:

  1. рдирдИ рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЗ рдЗрдирдкреБрдЯ рдлрд╝рд╛рдЗрд▓ рдХреЗ рд░реВрдк рдореЗрдВ Pipfile рд╕рд╛рдордЧреНрд░реА рдЕрдкрдбреЗрдЯ рдХреА рдЧрдИ
  2. рдореМрдЬреВрджрд╛ рдХрдорд╛рдВрдб рдореЗрдВ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдирд╛рдорд┐рдд рд╕рдВрдХреБрд▓ рдХреЛ рдЫреЛрдбрд╝рдХрд░, Pipfile.lock рдХрдореА рд╕реЗ рдореМрдЬреВрджрд╛ рдирд┐рд░реНрднрд░рддрд╛ рдХрд╛ рдкреВрд░рд╛ рд╕реЗрдЯ

рдкрд╛рдЗрдк-рдЯреВрд▓ рд░рд┐рд╕реЙрд▓реНрд╡рд░ рд╕реНрддрд░ рдкрд░ рдмрд╛рдзрд╛ рдлрд╝рд╛рдЗрд▓ рд╕рдорд░реНрдерди рддрдм pipenv рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛрдЧрд╛ рдПрдХ рдореЛрдб рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╣рд╛рдВ рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдЙрдиреНрдирдпрди рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдПрдХ рдмрд╛рдзрд╛ рдЙрд▓реНрд▓рдВрдШрди рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рдПрдЧрд╛, рдЬрд┐рд╕рд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдпрд╣ рддрдп рдХрд░ рд╕рдХреЗрдЧрд╛ рдХрд┐ рд╡рд╣ рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ рдпрд╛ рдирд╣реАрдВред рдЙрд╕ рдкреИрдХреЗрдЬ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред

рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИ, рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж

@kennethreitz

рдХреНрдпрд╛ рдорддрд▓рдм рд╣реИ рдЖрдкрдХрд╛:

  1. рдЗрд╕ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдмрджрд▓рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдпрд╣ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдирд╣реАрдВ рд╣реИ,
  2. рдЗрд╕ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдХреБрдЫ рд╡реИрдХрд▓реНрдкрд┐рдХ рдХреЗ рд░реВрдк рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдпрд╣ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдпрд╛
  3. рдпрд╣ рд╡реНрдпрд╡рд╣рд╛рд░ рдирд╣реАрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП?

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

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

рдореЗрд░рд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдпрд╣ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИ, рдФрд░ рдореИрдВ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреА рд╕рд░рд╛рд╣рдирд╛ рдХрд░рддрд╛ рд╣реВрдВред

рдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИред рдХреНрдпрд╛ рдЖрдк рдпрд╣ рднреА рдХрд╣ рд░рд╣реЗ рд╣реИрдВ рдХрд┐ рдЖрдк рдЗрд╕ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдмрджрд▓рдиреЗ рдпрд╛ рд╡рд┐рдХрд▓реНрдк рдХреЗ рд░реВрдк рдореЗрдВ рдЗрд╕реЗ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдкреАрдЖрд░ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗ?

рдореБрдЭреЗ рдкрддрд╛ рдирд╣реАрдВ рд╣реИред

@ k4nar рдЕрднреА рднреА рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдкреАрдЖрд░ рдХрд░рдиреЗ рдореЗрдВ рджрд┐рд▓рдЪрд╕реНрдкреА рд╣реИ? рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, pipenv install --only <dep-to-update рдЬреИрд╕рд╛ рдХреБрдЫ рдЬреЛ рдЕрд╕рдВрдмрдВрдзрд┐рдд рдбрд┐рдкреЛрдВ рдХреЛ рдЕрдкрдбреЗрдЯ рд╣реЛрдиреЗ рд╕реЗ рд░реЛрдХрддрд╛ рд╣реИред рдЪреВрдБрдХрд┐ @kennethreitz рдЖрдЧреЗ рдХреА рдЪрд░реНрдЪрд╛ рдХрд░рдиреЗ рдореЗрдВ @aionion рдФрд░ рдореИрдВ pipenv рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦ рд╕рдХрддреЗ рд╣реИрдВ)ред

рдореБрдЭреЗ рджрд┐рд▓рдЪрд╕реНрдкреА рд╣реИ рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдпрд╣ рдкрддрд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рддрд░реАрдХрд╛ рдХреИрд╕реЗ рд╣реЛрдЧрд╛ред рдХрд╛рд░реНрд░рд╡рд╛рдИ рдореЗрдВ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдШрдЯрдХ рд╣реИрдВ (рдкрд╛рдЗрдк, рдкрд╛рдЗрдк-рдЯреВрд▓, рдкрд╛рдЗрдкрдлрд╛рдЗрд▓, рдкрд╛рдЗрдкреЗрдирд╡тАж) рдФрд░ рд╕рдВрднрд╡рдд: рдмрд╣реБрдд рд╕рд╛рд░реЗ рд╕рдВрднрд╛рд╡рд┐рдд рд╕рдорд╛рдзрд╛рдиред

рдкреНрд░рддрд┐ https://github.com/kennethreitz/pipenv/issues/966#issuecomment -339707418, рдпрд╣ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рд╕реАрдзрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рд▓реЙрдЬрд┐рдХ рдмрдбрд╝реЗ рдкреИрдорд╛рдиреЗ рдкрд░ рд╕рд┐рд░реНрдл рдкрд╛рдЗрдк-рдЯреВрд▓реНрд╕ рд╕реЗ рд╣реИред рдореИрдВ рдПрдХ рдкреАрдЖрд░ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣рд╛ рдерд╛, рд▓реЗрдХрд┐рди рд╣рдо рдХрд╛рдо рдЦрд░реНрдЪ рдХреЛ рд╕рд╣реА рдирд╣реАрдВ рдард╣рд░рд╛ рд╕рдХрддреЗ рд╣реИрдВ рдпрджрд┐ рд╣рдо рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдирд╣реАрдВ рд╣реИрдВ рдХрд┐ рд╣рдо рдХреИрд╕реЗ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рд╣рдо рдПрдкреАрдЖрдИ рдХреЛ рд▓рд┐рдЦрдиреЗ рдХреЗ рд╕рдордп рдХреЛ рд▓рд┐рдЦрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рджреЗрдЦреЗрдВред

рдореИрдВ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдПрдХ рд╡реИрдХрд▓реНрдкрд┐рдХ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд▓реЗрдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ - рдЬреИрд╕рд╛ рдХрд┐ рдкрд┐рдкрдлрд╛рдЗрд▓ рдПрдХ рдорд╛рдирдХ рд╣реИ, рдЗрд╕рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдкрд┐рдкреЗрдирд╡ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдФрд░ рдореИрдВ рдпрд╣рд╛рдВ рдХреБрдЫ рдЕрдиреНрдп рдЕрдЬреАрдм рд╢рдмреНрджрд╛рд░реНрдереЛрдВ рдХреЗ рдЖрд╕рдкрд╛рд╕ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ рдЬреИрд╕реЗ рдХрд┐ рдореМрдЬреВрджрд╛ рд╡рд░реНрдЪреБрдЕрдирд╡реНрдпреВ рдкреНрд░рддрд┐ рдбрдмреНрд▓реНрдпреВрдЯреАред : //github.com/kennethreitz/pipenv/issues/997ред

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

pipenv install foo
vim Pipfile.lock  # Manually remove all the unwanted updates
git add && git commit && git push

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

IIUC, рдпрд╣ рд╡реНрдпрд╡рд╣рд╛рд░ apt рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИ рдЬрдм рднреА рдЖрдк apt install foo рдЪрд▓рд╛рддреЗ рд╣реИрдВ, рддрдм рдирд┐рд╣рд┐рдд apt dist-upgrade рд╣реЛрддрд╛ рд╣реИред

рдпрд╣ рдЗрд╕ рддрдереНрдп рд╕реЗ рдмрджрддрд░ рдмрдирд╛ рд╣реИ рдХрд┐ pipenv install Pipfile.lock рдореЗрдВ pipenv install рдЕрджреНрдпрддрди рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╕реНрдерд╛рдиреАрдп рд╡рд░реНрдЪрд╕реНрд╡ рдореЗрдВ рдЕрджреНрдпрддрдиреЛрдВ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдбреЗрд╡рд▓рдкрд░ Pipfile.lock рдХреЗ рдЕрдВрддрд░ рдХреА рд╕рд╛рд╡рдзрд╛рдиреАрдкреВрд░реНрд╡рдХ рдЬрд╛рдВрдЪ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рддреЛ рд╡реЗ рдЕрднреА рднреА рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдПрдХ рдмрд╛рд░ рдЬрдм рд╡реЗ рдХреЛрдб рд╕рд╛рдЭрд╛ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЕрдиреНрдп рд╕рднреА рд╡рд╛рддрд╛рд╡рд░рдг рдЖрд╢реНрдЪрд░реНрдпрдЬрдирдХ рдЕрдкрдбреЗрдЯ рджреЗрдЦрддреЗ рд╣реИрдВред рд▓реЛрдЧреЛрдВ рдореЗрдВ Pipfile.lock рдХреЗ рдЕрдВрддрд░ рдХреЛ рдирдЬрд░рдЕрдВрджрд╛рдЬ рдХрд░рдиреЗ рдХреА рдкреНрд░рд╡реГрддреНрддрд┐ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдПрдХ рдСрдЯреЛ-рдЬрдирд░реЗрдЯ рдХреА рдЧрдИ рдлрд╝рд╛рдЗрд▓ рдорд╛рдиреА рдЬрд╛рддреА рд╣реИред

рдореЗрд░рд╛ рджреГрдврд╝ рд╡рд┐рд╢реНрд╡рд╛рд╕ рд╣реИ рдХрд┐ " Pipfile рджреНрд╡рд╛рд░рд╛ рдЕрдиреБрдордд рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рд╕рдм рдХреБрдЫ рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВ" рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЕрдиреБрд░реЛрдзрд┐рдд рдСрдкрд░реЗрд╢рди рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреЛ "рдЗрдВрд╕реНрдЯреЙрд▓ рдлрд╝реВ" рд╕реЗ рдЕрд▓рдЧ рд╣реЛред

рдорд╛рд╕реНрдЯрд░ рдореЗрдВ рддрдп рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП

рд╡реНрдпрд╡рд╣рд╛рд░ рдЕрднреА рднреА рдореМрдЬреВрдж рд╣реИ, рдореИрдВрдиреЗ рдЗрд╕реЗ pipenv 11.8.3 , @kennethreitz рдореЗрдВ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ред

@ marius92mc "рдорд╛рд╕реНрдЯрд░ рдореЗрдВ рддрдп рдХрд┐рдпрд╛ рдЧрдпрд╛" рдЯрд┐рдкреНрдкрдгреА --selective-upgrade рдФрд░ --keep-outdated рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЛ рд╣рд╛рд▓рд┐рдпрд╛ рд░рд┐рд▓реАрдЬрд╝ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИ: https://docs.pipenv.org/#cmdoption -pireenv-install-keep -рд░рдЧрдбрд╝рд╛ рд╣реБрдЖ

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

@ncoghlan рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдПрдХ рдЪреАрдЬ рдХреА рдЬрд░реВрд░рдд рд╣реИ (рдЖрд╕рд╛рди рдХреЗ рд▓рд┐рдП рдкреВрдЫрдирд╛, рдЬрд┐рддрдирд╛ рдХрд░рдирд╛ рдЖрд╕рд╛рди рдирд╣реАрдВ рд╣реИ) _how_ рдкрд░ рдПрдХ FAQ рд╣реИ (рдЙрди рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЛ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рддреЗ рд╣реИрдВ (рдХрдо рд╕реЗ рдХрдо рдпрд╣ рдЕрднреА рднреА рдореЗрд░реЗ рд▓рд┐рдП рднреНрд░рдорд┐рдд рд╣реИ)ред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП: --selective-upgrade рдФрд░ --keep-outdated рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдкрд░ рднреА рдЕрдкрдбреЗрдЯ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ Pipfile.lock рдореЗрдВ рдкреБрд░рд╛рдиреА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдмрди рдЬрд╛рдПрдЧреА, рдпрджрд┐ рд╡реЗ рд╕реАрдзреЗ "рдЪрдпрдирд┐рдд" рдкреИрдХреЗрдЬ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдирд╣реАрдВ рд╣реИрдВ рддреЛ рдЙрдиреНрд╣реЗрдВ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ ред

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреАрдбрд╝реЗ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рдлрд┐рд░ред

рдЙрдирдХрд╛ рдЗрд░рд╛рджрд╛ рдкрд┐рдкрд▓рдлрд╛рдЗрд▓ рдХреЛ рдЫреЛрдбрд╝рдиреЗ рдХрд╛ рд╣реИред рдирдП рдмрджрд▓рд╛рд╡ рдХреЛ рдЫреЛрдбрд╝рдХрд░ред

рдореБрдЭреЗ рдмрддрд╛рдПрдВ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рдПрдХ рдкрд░реАрдХреНрд╖рдг рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╣рд╛рдпрдХ рд╣реИред

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

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЖрдкрдХреЗ рдкрд┐рдкрд▓рдлрд╛рдЗрд▓ / рд▓реЙрдХ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛, рдпрджрд┐ рдЗрд╕рдореЗрдВ рдкреБрд░рд╛рдиреЗ рдкрд░рд┐рдгрд╛рдо рд╢рд╛рдорд┐рд▓ рд╣реИрдВред

@ncoghlan , рд╡рд┐рд╡рд░рдг рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред
рдореИрдВрдиреЗ рдЖрдкрдХреЗ рдмрддрд╛рдП рдЧрдП рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЗ рд╕рд╛рде рдлрд┐рд░ рд╕реЗ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рдФрд░ рдкрд░рд┐рдгрд╛рдо рд╕рдорд╛рди рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ, рдпрд╣ рдЕрднреА рднреА рдЕрдиреНрдп рдкреИрдХреЗрдЬреЛрдВ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рддрд╛ рд╣реИ, рдЙрдиреНрд╣реЗрдВ Pipfile.lock рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдмрджрд▓рддреЗ рд╣реБрдПред

рдЗрд╕ рдореБрджреНрджреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреЛрдИ рднреА рдЕрдкрдбреЗрдЯ рд╣реИ, @kennethreitz?

рдЗрд╕ рдкрд░ рдзреАрдореЗ рдЙрддреНрддрд░ рдХреЗ рд▓рд┐рдП рдХреНрд╖рдорд╛ рдХрд░реЗрдВред рд╣рдордиреЗ рдЕрднреА рддрдХ рдпрд╣рд╛рдБ рдкреНрд░рддрд┐рдЧрдорди рдХреЗ рдореВрд▓ рдХрд╛рд░рдг рдХреЛ рдиреАрдЪреЗ рдирд╣реАрдВ рдЙрдард╛рдпрд╛ рд╣реИ (рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рдЗрд╕ рд╕рдкреНрддрд╛рд╣ рдХреЗ рдЕрдВрдд рдореЗрдВ рдПрдХ рдбреЗрдЯрд╛ рд╕реЗрдВрдЯрд░ рдкреНрд░рд╡рд╛рд╕ рдХреЛ рд╕рдВрднрд╛рд▓ рд░рд╣рд╛ рд╣реВрдВ рдЗрд╕рд▓рд┐рдП рдореИрдВ рдереЛрдбрд╝реЗ рдзреАрдореЗ рд░рд╣рд╛ рд╣реВрдВ) рд▓реЗрдХрд┐рди рд╣рдо рдЕрдЧрд▓реЗ рдХреБрдЫ рджрд┐рдиреЛрдВ рдореЗрдВ рдЗрд╕реЗ рд╣рд▓ рдХрд░ рд▓реЗрдВрдЧреЗред

рдпреЛрдЧрджрд╛рди рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣ рд╕реНрд╡рд╛рдЧрдд рд╣реИ!

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

  1. Setup.py рдореЗрдВ рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рд▓рд┐рдП рд╕рдВрд╕реНрдХрд░рдг рдкреНрд░рддрд┐рдмрдВрдз рдЕрджреНрдпрддрди рдХрд░реЗрдВ
  2. pipenv lock --selective-upgrade ; pipenv sync рдпрд╛ pipenv install --selective-upgrade "-e ." рдЪрд▓рд╛рдПрдВ

@wichert рдпрджрд┐ Pipfile рдХреЛ рдЗрд╕ рддрд░рд╣ рд╕реЗ рд╕рдВрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЬреЛ рд╡рд░реНрддрдорд╛рди рд▓реЙрдХ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдХреНрдпрд╛ рд╣реИ рдЙрд╕рд╕реЗ рдкрд░реЗ рдиреНрдпреВрдирддрдо рдЖрд╡рд╢реНрдпрдХ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдмрдврд╝рд╛рддрд╛ рд╣реИ, рддреЛ --keep-outdated рдХреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХрд╡рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреЛ рдЖрдкрдХреЛ рдЪрд╛рд╣рд┐рдПред --selective-upgrade рдЙрд╕ рдорд╛рдорд▓реЗ рдХреЗ рд▓рд┐рдП рд╣реИ, рдЬрд╣рд╛рдБ Pipfile рдирд╣реАрдВ рдмрджрд▓реЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЖрдк рдХрд┐рд╕реА рднреА рдирдП рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред

@ncoghlan Pipfile рдЗрд╕ рдкрд░рд┐рджреГрд╢реНрдп рдореЗрдВ рдирд╣реАрдВ рдмрджрд▓реЗ рд╣реИрдВ, рдХреЗрд╡рд▓ setup.py рдПрдХ рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рд▓рд┐рдП рдиреНрдпреВрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЛ рдмрджрд▓рдХрд░, рдЖрдорддреМрд░ рдкрд░ рдХреБрдЫ рдФрд░ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдФрд░ рд╡рд░реНрддрдорд╛рди рдореЗрдВ Pipfile.lock ред

@wichert pipenv рдЖрдкрдХреЗ setup.py рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдХреИрдкреНрдЪрд░ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╕реЗрдЯ-рдЕрдк рдирд╣реАрдВ рд╣реИред рдпрджрд┐ рдЖрдк рдРрд╕рд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ рдЖрдкрдХреЛ pipenv lock рдЪрд▓рд╛рдирд╛ рд╣реЛрдЧрд╛ред

рдЗрд╕рдХреА рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рдХреНрдпрд╛ рд╣реИ? 25 рдорд╛рд░реНрдЪ рдХреЛ рдХрд┐рд╕реА рдиреЗ рдХрд╣рд╛ рдХрд┐ рдЙрдиреНрд╣реЗрдВ рд▓рдЧрд╛ рдХрд┐ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рдореБрджреНрджреЗ "рдЕрдЧрд▓реЗ рдХреБрдЫ рджрд┐рдиреЛрдВ рдореЗрдВ рд╣рд▓ рд╣реЛ рдЬрд╛рдПрдВрдЧреЗ", рдФрд░ рдЕрдиреНрдп рдмрдЧ рд░рд┐рдкреЛрд░реНрдЯ рдХреЛ рдпрд╣рд╛рдВ рдЯреНрд░реИрдХ рдХрд┐рдП рдЬрд╛рдиреЗ рдХреЗ рдХрд╛рд░рдг рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ; рд▓реЗрдХрд┐рди 2018.7.1 рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдореИрдВ рдЕрднреА рднреА рд╕рд╛рдЗрдорди рдкреЗрд░реНрдХрд┐рд╡реИрд▓ рджреНрд╡рд╛рд░рд╛ рд░рд┐рдкреЛрд░реНрдЯ рдХрд┐рдП рдЧрдП рдмрдЧ рдХреЛ рджреЗрдЦрддрд╛ рд╣реВрдВ (рдЕрдкреНрд░рддреНрдпрдХреНрд╖ рдирд┐рд░реНрднрд░рддрд╛ рд╣рдореЗрд╢рд╛ рдЕрдкрдбреЗрдЯ рд╣реЛрддреА рд╣реИ) рдФрд░ рдЙрд╕ рдмрдЧ рдХреА рдореВрд▓ рд░рд┐рдкреЛрд░реНрдЯ рдХреЗ рдмрд╛рдж рд╕реЗ рдЪрд░реНрдЪрд╛ рдирд╣реАрдВ рд╣реБрдИ рд╣реИред рдХреНрдпрд╛ рдЕрдм рднреА рд╕рдорд╕реНрдпрд╛ рдкрд░ рдирдЬрд╝рд░ рд░рдЦреА рдЬрд╛ рд░рд╣реА рд╣реИ?

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

рдкреБрдирд╢реНрдЪ: Pipenv рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдпрд╣ рднрдпрд╛рдирдХ рд╣реИ <3

рд╣рд╛рдБ рдпрдХреАрдирдиред рд╣рдо рдЗрд╕ рд╕рдордп рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд░рд┐рдЬрд╝реЙрд▓реНрд╡рд░ рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦ рд░рд╣реЗ рд╣реИрдВред рдЪрд╛рд╣реЗ рд╡рд╣ рдЗрд╕ рд░рд┐рд▓реАрдЬрд╝ рдореЗрдВ рдЬрд╝рдореАрди рдкрд░ рд╣реЛ рдпрд╛ рдЕрдЧрд▓реА рд░рд┐рд▓реАрдЬрд╝ рдкрд░ рдирдЬрд╝рд░ рдмрдиреА рд░рд╣реЗ

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

@uranusjr FWIW, рдореИрдВрдиреЗ @benkuhn рдХреА рдЯрд┐рдкреНрдкрдгреА рдореЗрдВ рддреЗрдЬреА рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдорд╛рдВрдЧ рдирд╣реАрдВ рджреЗрдЦреА рд╣реИ - рдмрд╕ рдПрдХ рд╕рд╡рд╛рд▓ рд╣реИ рдХрд┐ рдЪреАрдЬреЗрдВ рдХрд╣рд╛рдВ рд╣реИрдВ; рдпрд╛рдиреА рдХреНрдпрд╛ рдХрд╛рдо рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддрд╛рдХрд┐ рдмрд╛рд╣рд░ рдХреЗ рдкрд░реНрдпрд╡реЗрдХреНрд╖рдХ рдЕрдкрдирд╛ рдЕрдиреБрдорд╛рди / рдирд┐рд░реНрдгрдп рдХрд░ рд╕рдХреЗрдВред

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

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

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

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

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

рдПрдХ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╡рд░реНрдХрдлрд╝реНрд▓реЛ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реБрдЭрд╛рд╡ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдореИрдВ _рдЗрдВрдЧ_ рдерд╛ рдЬреЛ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рддреЗ рд╕рдордп _Pipfile_ рдореЗрдВ рдХрд┐рд╕реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рдВрд╕реНрдХрд░рдг рдкрд░ рдкрд┐рди рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдереЛрдбрд╝рд╛ рдЖрд╢реНрдЪрд░реНрдпрдЬрдирдХ рд╣реИ, рд▓реЗрдХрд┐рди рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрдиреБрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рдкрд┐рдкреЗрдирд╡ foo = "*" рдХрд╛ рдЕрд░реНрде рд╣реИ "рдореБрдЭреЗ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рдлреВ рдХрд╛ _some_ рд╕рдВрд╕реНрдХрд░рдг рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдЗрд╕рдХреА рдкрд░рд╡рд╛рд╣ рдирд╣реАрдВ рд╣реИ"ред рдЙрд╕ рдЕрдВрдд рддрдХ, pipenv install --pin foo рдЬреИрд╕рд╛ рдХреБрдЫ рд╣реЛрддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк foo = "==1.2.3" foo = "*" рдкрд┐рдкрдлрд╛рдЗрд▓ рдореЗрдВ рд╣реЛрддрд╛ рд╣реИ (рдЬрд╣рд╛рдБ 1.2.3 foo рдХрд╛ рд╡рд░реНрддрдорд╛рди рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рд╣реИ) рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдЬреИрд╕реЗ рдорджрджред

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

(рдмрд╕ рдПрд╣рд╕рд╛рд╕ рд╣реБрдЖ рдХрд┐ рдореИрдВ рдЧрд▓рдд рдореБрджреНрджреЗ рдкрд░ рдЯрд┐рдкреНрдкрдгреА рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдЧрдбрд╝рдмрдбрд╝реА рдХреЗ рд▓рд┐рдП рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рдХреГрдкрдпрд╛ рдореБрдЭреЗ рдЕрдирджреЗрдЦрд╛ рдХрд░реЗрдВ) been

рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЙрдкрдпреЛрдЧ рдорд╛рдорд▓рд╛ рдЬрд┐рд╕реЗ рдореИрдВрдиреЗ рдЕрдм рдХреБрдЫ рдШрдВрдЯреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдВрдШрд░реНрд╖ рдХрд┐рдпрд╛ рд╣реИ: рдореИрдВ рдПрдХ Django 2.0 рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдкрд░реАрдХреНрд╖рдг рдХрд╡рд░реЗрдЬ рдХреЛ рдорд╛рдкрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ pipenv install --keep-outdated --selective-upgrade --dev coverage рдиреЙрди-рджреЗрд╡ Django рдкреИрдХреЗрдЬ рдХреЛ рд╕рдВрд╕реНрдХрд░рдг 2.1 рдореЗрдВ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдкрд░ рдЬреЛрд░ рджреЗрддреЗ рд╣реИрдВ, рдЬреЛ рдХрд┐ рдХрд╣реАрдВ рдФрд░ рдЯреВрдЯрдиреЗ рдХреЗ рдХрд╛рд░рдг рдореИрдВ рдЕрднреА рддрдХ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рдВрднрд╡рддрдГ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЛ рддреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд╕рдВрдмрдВрдзрд┐рдд рд╕рдВрдХреБрд▓ рдХреЛ рдЕрдкрдЧреНрд░реЗрдб рдХрд┐рдП рдмрд┐рдирд╛ рд╕реНрдерд╛рдкрд┐рдд рдкреИрдХреЗрдЬ рдХреЗ рд╕реЗрдЯ рдХреЛ рдмрджрд▓рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдЯреВрдЯ-рдлреВрдЯ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╣рдореЗрд╢рд╛ рдореМрдЬреВрдж рд░рд╣реЗрдЧреАред

рдореИрдВ @rfleschenberg рдХрд╛ рд╣рд▓ рдХреЛрд╢рд┐рд╢ _meta hash рд╕рдВрдкрддреНрддрд┐ рдЧрд▓рдд рд╣реИред

@ l0b0 рдпрджрд┐ рдЖрдкрдХрд╛ рдЖрд╡реЗрджрди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ Django рдХреЗ рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рд╕рдВрднрд╛рд▓ рдирд╣реАрдВ рд╕рдХрддрд╛ рд╣реИ, рддреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЖрдкрдХреЗ Pipfile рдореЗрдВ рдкреНрд░рддрд┐рдмрдВрдз рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрддрд╛рддрд╛ рд╣реИ?

@AlecBenzer рдЬреЛ рдореБрдЭреЗ setup.py рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдХреА рддрд░рд╣ рд▓рдЧ рд░рд╣рд╛ рд╣реИред

@wichert рдпрд╣ рднреА рд╕рдордЭ рдореЗрдВ рдЖ рд╕рдХрддрд╛ рд╣реИ (рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реВрдБ рдХрд┐ рдЖрдк рдХрд┐рди рдкрд░рд┐рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ рдПрдХ setup.py рдФрд░ Pipfile рджреЛрдиреЛрдВ рдЪрд╛рд╣рддреЗ рд╣реИрдВ), рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЕрдкрдиреЗ Pipfile рдореЗрдВ рдПрдХ рдкрдВрдХреНрддрд┐ рд╣реИ рдЬреЛ рдХрд╣рддреА рд╣реИ:

Django = "*"

рдЖрдк pipenv рдХреЛ рдмрддрд╛ рд░рд╣реЗ рд╣реИрдВ рдХрд┐ рдЖрдк рдЗрд╕реЗ Django рдХрд╛ _any_ рд╕рдВрд╕реНрдХрд░рдг рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдпрджрд┐ рдЖрдк рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ 2.0 рдпрд╛ рдЙрд╕рд╕реЗ рдХрдо рд╕реНрдерд╛рдкрд┐рдд рд╣реЛ, рддреЛ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдпрд╣ рдмрддрд╛рдПрдВ:

Django = "<=2.0.0"

рдЬрдмрдХрд┐ рдЗрд╕ рд╡рд┐рд╢реЗрд╖ рдорд╛рдорд▓реЗ рдореЗрдВ рдкрд┐рдкреЗрдирд╡ рдмрд┐рдирд╛ рдХрд┐рд╕реА рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдХрд╛рд░рдг рдХреЗ Django рдХреЛ рдЕрдкрдЧреНрд░реЗрдб рдХрд░ рд░рд╣рд╛ рд╣реИ, рдпрд╣ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдХрд╣реАрдВ рдЖрдк рд▓рд╛рдЗрди рдХреЗ рдиреАрдЪреЗ рдПрдХ рдкреИрдХреЗрдЬ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП Django> 2.0.0 рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЬрд┐рд╕ рдмрд┐рдВрджреБ рдкрд░ pipenv рдЦреБрд╢реА рд╕реЗ рдЗрд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдЧрд╛ рдпрджрд┐ рдЖрдкрдиреЗ рдирд╣реАрдВ рдмрддрд╛рдпрд╛ рд╣реИ рдпрд╣ рд╣реИ рдХрд┐ рдЖрдк рдХреА рдЬрд░реВрд░рдд рд╣реИ <= 2.0.0ред

рдпрджрд┐ рдЖрдк рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрд╣ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ 2.0 рдпрд╛ рдЙрд╕рд╕реЗ рдХрдо рд╕реНрдерд╛рдкрд┐рдд рд╣реИ, рддреЛ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдпрд╣ рдмрддрд╛рдПрдВ

рдкреНрд░рддрд┐рдмрд┐рдВрдм рдкрд░ @AlecBenzer , рдЕрдм рдореЗрд░реЗ рд╕рд╛рде рдРрд╕рд╛ рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдЬрдм рдЖрдк рдПрдХ рдкреИрдХреЗрдЬ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдпрд╣ ^major.minor.0 рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ рд╣реИрдВред рдЬреЛ рдХрд┐ рдЕрдкрдЧреНрд░реЗрдб-рдЯреВ-рд▓реЗрдЯреЗрд╕реНрдЯ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЕрдиреБрд░реЛрдз рдХрд┐рдП рдЬрд╛рдиреЗ рдкрд░ рднреА рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рдкреНрд░рдореБрдЦ рд╕рдВрд╕реНрдХрд░рдг рдЕрдкрдЧреНрд░реЗрдб рдХреЛ рд░реЛрдХрддрд╛ рд╣реИред рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рд╣реИ рдХрд┐ рдЕрдЧрд░ рдкрд┐рдкреЗрдирд╡ рдХреЛ рдРрд╕рд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП - рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рдЕрд▓рдЧ рдореБрджреНрджрд╛ рд╣реЛрдЧрд╛ред

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

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдКрдкрд░ рдФрд░ рдЕрдиреНрдп рдЬрдЧрд╣реЛрдВ рдкрд░ рдЪрд░реНрдЪрд╛ рдХреА рдЧрдИ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдирдкреАрдПрдо / рдпрд╛рд░реНрди рдФрд░ рдкрд┐рдкреЗрдирд╡ рдХреЗ рдмреАрдЪ рдбрд┐рдЬрд╛рдЗрди рд╕реНрдерд╛рди рдореЗрдВ рдПрдХ рддрдирд╛рд╡ / рд╡реНрдпрд╛рдкрд╛рд░ рд╣реИред рдХрд┐рд╕реА рднреА рдкреИрдХреЗрдЬ рдореИрдиреЗрдЬрд░ рдХреЗ рдкрд╛рд╕ рдпреЗ рд▓рдХреНрд╖реНрдп рдХреБрдЫ рд╕рд╛рдкреЗрдХреНрд╖ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдХреЗ рд╕рд╛рде рд╣реЛрддрд╛ рд╣реИ:

  • рдкреИрдХреЗрдЬреЛрдВ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдФрд░ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИ
  • рдПрдХ рдЧрд▓рдд рдирд┐рд░реНрднрд░рддрд╛ рдЙрдиреНрдирдпрди рдХреЗ рд╕рд╛рде рдЧрд▓рддреА рд╕реЗ рдЕрдкрдиреЗ рдРрдк рдХреЛ рддреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдХрдард┐рди рдмрдирд╛рдПрдВ

Pipfile рдореЗрдВ рдПрдХ рд╕рдЯреАрдХ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдкрд┐рди рдХрд░рдиреЗ рдореЗрдВ рдкрд░реЗрд╢рд╛рдиреА рдпрд╣ рд╣реИ рдХрд┐ рд╕рдВрдХреБрд▓ рдХреЛ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдирд╛ рддрдм рдХрдард┐рди рд╣реЛрддрд╛ рд╣реИ; рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдкрд╛рдЗрдк-рдЯреВрд▓ рдореМрдЬреВрдж рд╣реИ (рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╣реИред

--keep-outdated рдлреНрд▓реИрдЧ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИ рдЬреИрд╕рд╛ рдХрд┐ рдЗрд░рд╛рджрд╛ рдерд╛, рдЬреИрд╕рд╛ рдХрд┐ рдХрд╣рд╛ рдЧрдпрд╛ рдерд╛ рдХрд┐ рдЬрдм рдореБрджреНрджрд╛ рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓рд╛ рдЧрдпрд╛ рдерд╛ред рдЪрд╛рд╣реЗ рд╡рд╣ рд╡реНрдпрд╡рд╣рд╛рд░ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдпрд╛ рдирд╣реАрдВ рдФрд░ рдпрд╣ рдЕрдиреНрдп рдкреИрдХреЗрдЬ рдкреНрд░рдмрдВрдзрдХреЛрдВ рдХреЗ рд╕рд╛рде рдХреИрд╕реЗ рд╕рдВрд░реЗрдЦрд┐рдд рд╣реЛрддрд╛ рд╣реИ, рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрд╣рд╛рдВ рдХреЗрдВрджреНрд░реАрдп рдореБрджреНрджрд╛ рдирд╣реАрдВ рд╣реИред рдЪрд▓реЛ рдкрд╣рд▓реЗ рдмрд╛рдд рдареАрдХ рдХрд░рддреЗ рд╣реИрдВред

@brettdh

рдкрд░рд╛рд╡рд░реНрддрди рдкрд░, рдпрд╣ рдЕрдм рдореЗрд░реЗ рд╕рд╛рде рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдЬрдм рдЖрдк рдПрдХ рдкреИрдХреЗрдЬ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдпрд╣ npm / рдпрд╛рд░реНрди рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╣реЛрддрд╛ рд╣реИ; рд╡реЗ рдирд╡реАрдирддрдо рдкреНрд░рдореБрдЦ.рдиреЙрд░реНрдорд░ рд╕рдВрд╕реНрдХрд░рдг рдкрд╛рддреЗ рд╣реИрдВ рдФрд░ ^ рдореЗрдЬ.рдорд┐рдиреЛрд░.0 рдХреЛ рдкреИрдХреЗрдЬ рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ рд╣реИрдВред рдЖрдЧрдЬрдиреА, рдЬреЛ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рд░реВрдк рд╕реЗ рдкреНрд░рдореБрдЦ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рдЙрдиреНрдирдпрди рдХреЛ рд░реЛрдХрддрд╛ рд╣реИ, рддрдм рднреА рдЬрдм рдЕрдкрдЧреНрд░реЗрдб-рдЯреВ-рд▓реЗрдЯреЗрд╕реНрдЯ рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЕрдиреБрд░реЛрдз рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рд╣реИ рдХрд┐ рдЕрдЧрд░ рдкрд┐рдкреЗрдирд╡ рдХреЛ рдРрд╕рд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП - рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рдЕрд▓рдЧ рдореБрджреНрджрд╛ рд╣реЛрдЧрд╛ред

рд╣рд╛рдБ, рдореИрдВ https://github.com/pypa/pipenv/issues/966#issuecomment -408420493 рдореЗрдВ рдЬреЛ рд╕реБрдЭрд╛рд╡ рджреЗрдирд╛ рдЪрд╛рд╣ рд░рд╣рд╛ рдерд╛, рдЙрд╕рдХреА рддрд░реНрдЬ рдкрд░

рдпрд╣ рд╕реБрдирдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЙрддреНрд╕рд╛рд╣рд┐рдд рд╣реИрдВ рдХрд┐ рдЗрд╕ рдкрд░ рдХрд╛рдо рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ!

рдЗрд╕ рд╕рдордп рдХреЗ рджреМрд░рд╛рди, рдХреНрдпрд╛ рдХрд┐рд╕реА рдХреЛ рд╕реБрдЭрд╛рдпрд╛ рдЧрдпрд╛ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рд╣реИ рдХрд┐ pipenv lock рдЪрд▓рдиреЗ рд╕реЗ рдХрдо рд╢реНрд░рдорд╕рд╛рдзреНрдп рдФрд░ рддреНрд░реБрдЯрд┐-рдкреНрд░рд╡рдг рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рд▓реЙрдХрдлрд╝рд╛рдЗрд▓ рдкрд░рд┐рд╡рд░реНрддрди рдЬреЛ рдореИрдВ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдБ?

@benkuhn рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдореБрдЭреЗ рдкрддрд╛ рд╣реИ - рдореИрдВ рд╣рд░ рд╕рдордп рдПрдХ рд╣реА рд▓реЙрдХ рдФрд░ рд░рд┐рд╡рд░реНрдЯ рдбрд╛рдВрд╕ рдХрд░рддрд╛ рд╣реВрдВред

рдЖрд╣ рдареАрдХ рд╣реИ, рдЖрдк рдХрдо рд╕реЗ рдХрдо рдХрднреА-рдХрднреА рд╣рд╛рде рд╕реЗ рдмрдЪрдиреЗ рд╕реЗ рдмрдЪ рд╕рдХрддреЗ рд╣реИрдВ:

  1. pipenv lock
  2. git commit -m "FIXME: revert"
  3. pipenv install packagename
  4. git commit -m 'Add dependency on packagename'
  5. git rebase -i
  6. FIXME: revert рдХрдорд┐рдЯ рдХрд░реЗрдВ

рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рдпрд╣ рдЕрднреА рднреА рдПрдХ рдЕрд╕рдВрдЧрдд Pipfile.lock рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрднрд╡ рд╣реИ рдЕрдЧрд░ рдЖрдкрдХрд╛ Pipfile.lock рдПрдХ рдкреИрдХреЗрдЬ рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рд╕реЗ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ рдЬреЛ packagename рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдкреБрд░рд╛рдирд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╢рд╛рдпрдж pipenv рд╢рд┐рдХрд╛рдпрдд рдХрд░реЗрдЧрд╛ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдЧрд░ рдРрд╕рд╛ рд╣реЛрддрд╛ рд╣реИ?

--keep-outdated рд╡реНрдпрд╡рд╕реНрдерд┐рдд рд░реВрдк рд╕реЗ рдХреЗрд╡рд▓ рд╕реНрдкрд╖реНрдЯ рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рдкреБрд░рд╛рдирд╛ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд▓рдЧрддрд╛ рд╣реИ рдЬреЛ Pipfile рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ (рдЕрдирдкрд┐рди рдХрд┐рдП рдЧрдП) рд╣реИрдВ, рдЬрдмрдХрд┐ рд╕рднреА рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдирд┐рд░реНрднрд░рддрд╛рдПрдБ рдЕрдкрдбреЗрдЯ рдХреА рдЧрдИ рд╣реИрдВред

рдХреНрдпрд╛ рдореИрдВ рд╕рд╣реА рд╣реВрдВ рдХрд┐ рдЕрдиреНрдп рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд┐рдП рдмрд┐рдирд╛ pipenv==2018.7.1 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХрд▓ рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рдЕрдкрдбреЗрдЯ / рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИ? рдореИрдВрдиреЗ рдмрд┐рдирд╛ рдХрд┐рд╕реА рд╕рдлрд▓рддрд╛ рдХреЗ --selective-upgrade рдФрд░ --keep-outdated рд╡рд┐рднрд┐рдиреНрди рд╕рдВрдпреЛрдЬрдиреЛрдВ рдХреА рдХреЛрд╢рд┐рд╢ рдХреАред

Pipfile.lock рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдирд╛ рдХреЛрдИ рдордЬрд╝рд╛ рдирд╣реАрдВ рд╣реИ ...

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

рдмреЗрд╢рдХ, ### рдпрджрд┐ рдЕрдкрдбреЗрдЯ рдЕрдирд┐рд╡рд╛рд░реНрдп рд╣реИ, рддреЛ рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛ рдареАрдХ рд╣реИ, рд▓реЗрдХрд┐рди рд╕рд┐рд░реНрдл рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рдмрдЬрд╛рдп рд╕рднреА рдЖрдЙрдЯрдбреЗрдЯреЗрдб рдирд╣реАрдВ рд╣реИрдВред

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

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

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

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

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

рд▓реЗрдХрд┐рди рдЪреАрдЬреЗрдВ рдЕрднреА рд╕рдмрд╕реЗ рдЦрд░рд╛рдм рд╣реЛ рдЬрд╛рддреА рд╣реИрдВ, рдФрд░ рдореИрдВ рдЬреЛ рдХрд╣рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВ рд╡рд╣ рдПрдХ рд░рд╛рдп рдирд╣реАрдВ рд╣реИ, рдпрд╣ рдПрдХ рд╕рдЪреНрдЪрд╛рдИ рд╣реИред

рдПрдХ рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЬрд┐рд╕реЗ рдореИрдВрдиреЗ рдЗрд╕ рдореБрджреНрджреЗ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдЦрд╛рд░рд┐рдЬ рдХрд░ рджрд┐рдпрд╛ (рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдПрдХ рджреЗрд╡ рдирд┐рд░реНрднрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ pip рдФрд░ рдкреБрд░рд╛рдиреЗ requirements-dev.txt рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд╕рд╛рде рдПрдХ рджреВрд╕рд░рд╛ рд╡рд╛рддрд╛рд╡рд░рдг рдмрдирд╛рдпрд╛, рдмрд╕ рдЙрд╕ рдЙрдкрдХрд░рдг), рдореБрдЭреЗ рдПрдХ рдФрд░ рдирд┐рд░реНрднрд░рддрд╛ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИред

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

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

рдореИрдВрдиреЗ рдорд╣реАрдиреЛрдВ рддрдХ рдЗрд╕ рдзрд╛рдЧреЗ рдХрд╛ рдкрд╛рд▓рди рдХрд┐рдпрд╛ рд╣реИ, рдФрд░ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХреЛрдИ рднреА рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдЕрдВрддрддрдГ рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдареЛрдХрд░ рдЦрд╛рдПрдЧреА, рдХреНрдпреЛрдВрдХрд┐ рд╡реНрдпрд╡рд╣рд╛рд░ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд, рдкреНрд░рддрд┐-рд╕рд╣рдЬ рдЬреНрдЮрд╛рди рдпреБрдХреНрдд рдФрд░ рд╣рд╛рдВ: рдЦрддрд░рдирд╛рдХ рд╣реИред

рд▓рдЧрднрдЧ рдПрдХ рдорд╣реАрдиреЗ рдкрд╣рд▓реЗ рдореИрдВрдиреЗ pipenv , poetry рдЕрдзрд┐рдХ рд╡реНрдпрд╛рдкрдХ рд╡рд┐рдХрд▓реНрдк рдЖрдЬрд╝рдорд╛рдпрд╛; рдЗрд╕рдиреЗ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд┐рдпрд╛ _ __ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ:
1) рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рдПрдХ рд╕реЗрдЯ рдХрд╛ рдкреНрд░рдмрдВрдзрди (setup.py, setup.cfg, pip, рдФрд░ pipfile -> pyproject.tomx)
2) рднрд╡рд┐рд╖реНрдп рдЙрдиреНрдореБрдЦ, рдкреАрдЫреЗ рдХреА рдУрд░ рд╕рдВрдЧрдд (рдлрд┐рд░ рд╕реЗ pyproject.toml )
3) рдХрд╛рдлреА рдЧреИрд░-рд░рд╛рдп ( рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ redis рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рдХрд╣ рд░рд╣рд╛ рд╣реВрдВ )
4) рдФрд░ рдХреНрд▓рд╛рд╕рд┐рдХ рдкрд┐рдкреЗрдирд╡ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди: "рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЖрдкрдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдпрд╣ рдмрддрд╛рдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдЬрдм рдЖрдк рдирдП рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рддреЛ рд▓реЙрдХ рдХрд┐рдП рдЧрдП рдкреИрдХреЗрдЬреЛрдВ рдХреЛ рдЕрдкрдбреЗрдЯ рди рдХрд░реЗрдВред рдпрд╣ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред" [[рез] ((https://github.com/sdispater/poetry#what-about-pipenv)] [[реи] ((https://github.com/pypa/pipenv/issues/966#uuecomment-339117289)]

рдореИрдВрдиреЗ pipenv рдореБрджреНрджреЗ рдкрд░ рдЗрди рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЛ рд╕рд╛рдЭрд╛ рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдЬреИрд╕рд╛ рдХрд┐ @uranusjr рдиреЗ рдХрд╣рд╛, "рдХреЛрдИ рднреА рдХрд┐рд╕реА рдкрд░ рдкрд┐рдкреЗрдирд╡ рдХреЛ рдордЬрдмреВрд░ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИ", рдФрд░ рдореИрдВ рдХрд╡рд┐рддрд╛ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдореБрдЭреЗ рдпрд╣ рдкрд╕рдВрдж рд╣реИ, рдпрд╣ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдпрд╣ рдореЗрд░реА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рд╕рд┐рд░реНрдл рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдПрдХ рд╡реИрдХрд▓реНрдкрд┐рдХ, рдЕрдзрд┐рдХ-рд╡реНрдпрд╛рдкрдХ рд╕рдорд╛рдзрд╛рди рд╕рд╛рдЭрд╛ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдмрд╕ рд╡рд╣ рд╕рдм рдореЗрд░реЗ 2 that рдХреЗ рд░реВрдк рдореЗрдВ рд▓реЗ рд▓реЛред

  • рдЕрд╕реНрд╡реАрдХрд░рдг рдХреЗ рд░реВрдк рдореЗрдВ, рдореИрдВ рдХрд╡рд┐рддрд╛ рдЯреАрдо рдХрд╛ рд╕рджрд╕реНрдп

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

рдХреЛрдИ рднреА рдЖрдкрдХреЛ рд╣рдорд╛рд░реЗ рдЗрд╢реНрдпреВ рдЯреНрд░реИрдХрд░ рдореЗрдВ рднрд╛рдЧ рд▓реЗрдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИ; рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдХреЛрдИ рдЙрддреНрдкрд╛рджрдХ рдЯрд┐рдкреНрдкрдгреА рдирд╣реАрдВ рд╣реИ, рддреЛ рдХреГрдкрдпрд╛ рдПрдХ рдРрд╕рд╛ рдордВрдЪ рдЦреЛрдЬреЗрдВ, рдЬреЛ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рд╣реИред

рдЙрди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЬреЛ рд╡реИрдХрд▓реНрдкрд┐рдХ рд░рд┐рдЬрд╝реЙрд▓реНрд╡рд░ @uranusjr рдХреЛ рдЖрдЬрд╝рдорд╛рдиреЗ рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ рдФрд░ рд╕реНрд╡рдпрдВ рдХрдИ рд╣рдлреНрддреЛрдВ рд╕реЗ рд▓рд╛рдЧреВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдХреГрдкрдпрд╛ https://github.com/sarugaku/passa рдХреЛ рдЖрдЬрд╝рдорд╛рдПрдВ рдЬреЛ рд╕рдВрдЧрдд рд▓реЙрдХрдлрд╝рд╛рдЗрд▓реНрд╕ рдЙрддреНрдкрдиреНрди рдХрд░реЗрдЧрд╛ред рдХрд╡рд┐рддрд╛ рдХрдИ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЪреАрдЬреЗрдВ рдХрд░рддреА рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреА рд╕реАрдорд╛рдПрдВ рдФрд░ рдореБрджреНрджреЗ рднреА рд╣реИрдВ, рдФрд░ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЧреБрдВрдЬрд╛рдЗрд╢ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рдбрд┐рдЬрд╛рдЗрди рджрд░реНрд╢рди рдЕрд╕рд╣рдорддрд┐ рд╣реИред

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

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

рдЫреЛрдЯреА рдЕрд╡рдзрд┐ рдореЗрдВ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЕрдЧрд░ рд╣рдо рдкрд╣рд▓реЗ рд╕реЗ рдЕрдзрд┐рдХ рдХрдЯреМрддреА рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рд╣рдо рдкрд╛рдЗрдкрдирд╡ рдореЗрдВ рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдмреИрдВрдб рд╕рд╣рд╛рдпрддрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

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

@techalchemy

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

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

рдЗрд╕рдХреА рдЕрдкрдиреА рд╕реАрдорд╛рдПрдБ рдФрд░ рдореБрджреНрджреЗ рднреА рд╣реИрдВ

рдХреМрди рд╕рд╛? рдкреЛрдПрдЯреНрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рд╕рд╛рдордирд╛ рдХрд┐рдП рдЧрдП рдореБрджреНрджреЛрдВ рдпрд╛ рд╕реАрдорд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЙрддреНрд╕реБрдХ рд╣реВрдВред

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

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

рдореИрдВ рдпрд╣рд╛рдБ рджреЛ рдордЬрдмреВрдд рд╡рд┐рд╖рдп рд╣реИрдВ:

  • рдХреНрдпрд╛ рдЖрдкрдХреЛ рдЕрдкрдиреА рд╕рднреА рдкреБрд░рд╛рдиреА рдирд┐рд░реНрднрд░рддрд╛рдУрдВ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬрд╣рд╛рдВ рдЖрдк рдПрдХ рдирдИ рдирд┐рд░реНрднрд░рддрд╛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣реЗ рд╣реИрдВ: рдЬрд┐рдиреНрд╣реЗрдВ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЬреЛ рдирдпрд╛ рдкреИрдХреЗрдЬ / рд╕рдВрд╕реНрдХрд░рдг рд╣рдо рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рд╡рд╣ рдЕрд╕реНрддрд┐рддреНрд╡ рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рд╡реЗ рднреА рдирдП рдкреИрдХреЗрдЬ рдХреА рдЯреА рдирд┐рд░реНрднрд░рддрд╛ рд╣рдо рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВ? рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЗрд╕ рдЯрд┐рдХрдЯ рдХреЗ рджрд╛рдпрд░реЗ рд╕реЗ рдмрд╛рд╣рд░ рд╣реЛ, рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рдмрд╣реБрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╡рд┐рд╖рдп рд╣реИред
  • рдХреНрдпрд╛ рдЗрдирдореЗрдВ рд╕реЗ рдХреЛрдИ рдПрдХ рдкреИрд░рд╛рдореАрдЯрд░ --keep-outdated --selective-upgrade рд╣рдореЗрдВ рдЗрди рд╡реНрдпрд╡рд╣рд╛рд░реЛрдВ рд╕реЗ рдмрдЪрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ? рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпреЗ рд╡рд┐рдХрд▓реНрдк рдХреНрдпрд╛ рдХрд░рддреЗ рд╣реИрдВ, рдЙрдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкреНрд░рд▓реЗрдЦрди рдХреА рдХрдореА рд╣реИ, рдФрд░ рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЗ (# 1554) рдореЗрдВ рднреА рдХреЛрдИ рднреА рдЗрд╕рдХрд╛ рдЬрд╡рд╛рдм рдирд╣реАрдВ рджреЗ рд░рд╣рд╛ рд╣реИред

рдорд╛рдорд▓реЗ рдореЗрдВ рдпрд╣ рдЗрди рдкреИрд░рд╛рдореЗрдЯреНрд╕ рдореЗрдВ рд╕реЗ рдПрдХ рдкрд░ --keep-outdated --selective-upgrade рдХрд╛ рдПрдХ рдмрдЧ рд╣реИ, рдореИрдВ рдЕрднреА рднреА рд╕реЛрдЪ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдЬреЛ рднреА рдкрд░рдо рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рдЕрдирд╛рд╡рд╢реНрдпрдХ рдЕрджреНрдпрддрди рдХреЛ рд╣рд▓ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдЙрд╕реЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╕реЗрдЯ рдХрд░реЗрдВ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдмреБрд░рд╛ рд╡рд┐рдЪрд╛рд░ рд╣реИред

рдПрдХ рд╕рдорд╛рди рдкрд░рд┐рджреГрд╢реНрдп рдХреЗ рд╕рд╛рде рддреБрд▓рдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВ рдХрд┐ рдЖрдк рдЕрдкрдиреЗ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ vim рдЯреВрд▓ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП apt-get install vim рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддреЗ рд╣реИрдВ (рдФрд░ рдпрджрд┐ рд▓рд╛рдЧреВ рд╣реЛ рддреЛ рдЖрд╡рд╢реНрдпрдХ рд╡рд┐рдо рдХреА рдирд┐рд░реНрднрд░рддрд╛ рдпрд╛ рдЕрдкрдбреЗрдЯ), рд▓реЗрдХрд┐рди рдпрд╣ рднреА рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВ рдХрд┐ рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ apt рдЖрдкрдХреЗ рд╕рд┐рд╕реНрдЯрдо рдХреА рдЕрдиреНрдп рд╕рднреА рдирд┐рд░реНрднрд░рддрд╛рдУрдВ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рддрд╛ рд╣реИ: рдЕрдЬрдЧрд░, рдХреНрдпреВрдЯреА рд╕рд┐рд╕реНрдЯрдо, рд▓рд┐рдирдХреНрд╕ рдХрд░реНрдиреЗрд▓ ... рдФрд░ рдЗрд╕реА рддрд░рд╣ред рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЙрдкрдпреБрдХреНрдд рд╣рдореЗрдВ рдЕрдиреНрдп рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрдиреА рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрдкрд╖реНрдЯ рдЖрджреЗрд╢ рд╣реИ: apt-get upgrade , рдЬрдмрдХрд┐ apt-get install PACKAGE рдХреЗрд╡рд▓ рдкреИрдХреЗрдЬ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ / рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВ рдФрд░ рдпрд╣ рдирд┐рд░реНрднрд░рддрд╛рдПрдВ рд╣реИрдВред

@sdispater рднреЗрдж рдЙрд╕ https://caremad.io/posts/2013/07/setup-vs-requirement/ рдпрд╛ рдПрдХ рдЕрдЪреНрдЫреЗ рд╕реНрдерд╛рди рдкрд░ рдЗрдВрдЧрд┐рдд рдХрд░реВрдВрдЧрд╛ рдЕрдореГрдд тАЛтАЛрдЙрдкрдпреЛрдЧ рдорд╛рдорд▓реЗ рдХреЗ рд▓рд┐рдП рд▓реЗрдЦ: http://blog.plataformatec.com.br/2016/07/understanding-deps-and-applications-in-your-mixfile/

pyproject.toml рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдкрд░рд┐рднрд╛рд╖рд╛ рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИ - рдФрд░ рдкрд╛рдЗрдк рдХреЗ рдХрд┐рд╕реА рднреА рд╕рдВрд╕реНрдХрд░рдг рджреНрд╡рд╛рд░рд╛ рдмрд┐рд▓реНрдХреБрд▓ рднреА рдирд╣реАрдВ рдЬреЛ 517 рдФрд░ 518 рдХреЛ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ (рджреЛрдиреЛрдВ рдЬрд┐рдирдореЗрдВ рдЕрднреА рднреА рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╡рд┐рд╡рд░рдг рд╣реИрдВ) рдиреЗ рдПрдХ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдо рдХрд┐рдпрд╛ рд╣реИ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдШреЛрд╖рдгрд╛ рдлрд╝рд╛рдЗрд▓ред setup.cfg рдЙрд╕ рдЙрджреНрджреЗрд╢реНрдп рдХреЗ рд▓рд┐рдП рдореМрдЬреВрдж рд╣реИ (рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЙрддреНрддрд░рд╛рдзрд┐рдХрд╛рд░реА setup.py ) рдФрд░ IMHO рджреЛрдиреЛрдВ рдХрд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рдорд░реНрдерди рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдПрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдкреНрд░рдХрд╛рд╢рд┐рдд рд╣реИ рдФрд░ рдЕрдореВрд░реНрдд рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рд╕рд╛рде рдЙрдкрднреЛрдЧ рдХреЗ рд▓рд┐рдП рдЗрд░рд╛рджрд╛ рд╣реИ рддрд╛рдХрд┐ рд╡реЗ рджреВрд╕рд░реЛрдВ рдХреЗ рд╕рд╛рде рд╕реИрдВрдбрдмреЙрдХреНрд╕ рдореЗрдВ рдЕрдЪреНрдЫрд╛ рдЦреЗрд▓ рд╕рдХреЗрдВ; рдЖрд╡реЗрджрди рдЖрдорддреМрд░ рдкрд░ рдмрдбрд╝реЗ, рдЬрдЯрд┐рд▓ рдЬрд╛рдирд╡рд░ рд╣реЛрддреЗ рд╣реИрдВ рдЬрд┐рдирдореЗрдВ рдХрднреА-рдХрднреА рд╕реИрдХрдбрд╝реЛрдВ рдкреНрд░рддреНрдпрдХреНрд╖ рдирд┐рд░реНрднрд░рддрд╛рдПрдВ рд╣реЛрддреА рд╣реИрдВред рдЗрд╕рд▓рд┐рдП рд╣рдорд╛рд░реА рдПрдХ рдореБрдЦреНрдп рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдЬрдм рд╣рдо рдЕрдкрдиреЗ рдЯреВрд▓реАрдВрдЧ рдХреЛ рдбрд┐рдЬрд╝рд╛рдЗрди рдФрд░ рдирд┐рд░реНрдорд╛рдг рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдЗрд╕реЗ рднреА рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реИрдВ

@mrsarm рдЖрдкрдХреЗ рдкрд╣рд▓реЗ рдкреНрд░рд╢реНрди рдХреЗ рд▓рд┐рдП, рдЕрдкрдбреЗрдЯ рд╡реНрдпрд╡рд╣рд╛рд░ рдЬрд╛рдирдмреВрдЭрдХрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ (рдФрд░ рдЙрд╕ рд╕рдордп, / cc @ncoghlan рдФрд░ OWASP рд╕реБрд░рдХреНрд╖рд╛ рдЪрд┐рдВрддрд╛рдУрдВ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд) рдкрд░ рдмрдбрд╝реЗ рдкреИрдорд╛рдиреЗ рдкрд░ рдЪрд░реНрдЪрд╛ рдХреА рдЧрдИ рдереАред рджреВрд╕рд░реЗ рдмрд┐рдВрджреБ рдкрд░, рд╡реНрдпрд╡рд╣рд╛рд░ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдареАрдХ рд╕реЗ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдпрд╣реА рд╡рдЬрд╣ рд╣реИ рдХрд┐ рдореБрджреНрджрд╛ рдЕрднреА рднреА рдЦреЛрд▓рд╛ рдЧрдпрд╛ рд╣реИ, рдЬрд┐рд╕рдиреЗ рд╣рдореЗрдВ рдкрд┐рдкреЗрдирд╡ рдХреЗ рдкреАрдЫреЗ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд░рд┐рд╡рд╛рд▓реНрд╡рд░ рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛, рдЬрд┐рд╕рдХрд╛ рдореИрдВрдиреЗ рдКрдкрд░ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдерд╛ред рдЗрд╕рдиреЗ рдЗрд╕ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд┐рдпрд╛ред --selective-upgrade рдХреЛ рдХреЗрд╡рд▓ рдЙрди рдЪреАрдЬреЛрдВ рдХреЛ рдЪреБрдирд┐рдВрджрд╛ рд░реВрдк рд╕реЗ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ рдирдП рдкреИрдХреЗрдЬ рдХреА рдирд┐рд░реНрднрд░рддрд╛ рд╣реИрдВ, рдЬрдмрдХрд┐ --keep-outdated рдХреБрдЫ рднреА рд╡рд╛рдкрд╕ рдкрдХрдбрд╝ рд▓реЗрдВрдЧреЗ рдЬреЛ рдирдП рдкреИрдХреЗрдЬ рджреНрд╡рд╛рд░рд╛ рдЖрд╡рд╢реНрдпрдХ рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рд╕рдВрддреБрд╖реНрдЯ рдХрд░рддреЗ рд╣реИрдВред рдереЛрдбрд╝рд╛ рдЕрд▓рдЧ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдкреВрд░рд╛ рдпрдХреАрди рд╣реИ рдХрд┐ рди рддреЛ рдЕрднреА рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

pyproject.toml рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИ - рдФрд░ рдкрд╛рдЗрдкреНрд╕ рдХреЗ рдХрд┐рд╕реА рднреА рд╕рдВрд╕реНрдХрд░рдг рджреНрд╡рд╛рд░рд╛ рдмрд┐рд▓реНрдХреБрд▓ рднреА рдирд╣реАрдВ рдЬреЛ рдХрд┐ 517 рдФрд░ 518 рдХреЛ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ (рджреЛрдиреЛрдВ рдЬрд┐рдирдореЗрдВ рд╕реЗ рдЕрднреА рднреА рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╡рд┐рд╡рд░рдг рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ) рдПрдХ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдШреЛрд╖рдгрд╛ рдлрд╝рд╛рдЗрд▓ рдХреЗ рд░реВрдк рдореЗрдВ ред setup.cfg рдЙрд╕ рдЙрджреНрджреЗрд╢реНрдп (setup.py рдХреЗ рд▓рд┐рдП рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЙрддреНрддрд░рд╛рдзрд┐рдХрд╛рд░реА) рдХреЗ рд▓рд┐рдП рдореМрдЬреВрдж рд╣реИ рдФрд░ IMHO рдЙрди рджреЛрдиреЛрдВ рдХреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рдорд░реНрдерд┐рдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдЦреИрд░ рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╡рд┐рд╖рдп рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЪрд░реНрдЪрд╛ рд╣реИ рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЦреБрдж рдХреА рдорджрдж рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ред

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

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

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

рдЕрдЬрдЧрд░ рдХреЗ рд╕рд╛рде рдФрд░ рдЕрдиреНрдп рдкрд╛рд░рд┐рд╕реНрдерд┐рддрд┐рдХреА рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдореЗрд░реЗ рдЕрдиреБрднрд╡ рдореЗрдВ рдПрдХ рдЖрд╡реЗрджрди рдФрд░ рдПрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рдмреАрдЪ рдПрдХрдорд╛рддреНрд░ рд╕рд╣реА рдЕрдВрддрд░ рдпрд╣ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдЖрдк рд▓реЙрдХрдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдпрд╛ рдирд╣реАрдВред рдмреЗрд╢рдХ рд╡рд╣рд╛рдБ рдПрдХ рддреАрд╕рд░рд╛ рдорд╛рдорд▓рд╛ рд╣реИ рдЬрд╣рд╛рдБ рдЖрдк рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ requirements.txt рдпрд╛ Pipfile рдФрд░ рдХреЛрдИ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдХреЛрдб рдирд╣реАрдВ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдФрд░ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рднреА рдкрд╛рдЗрдкреЗрдВрд╡ рдиреЗ рдЕрднреА рддрдХ ( pipenv install -e . рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд┐рдпрд╛ рд╣реИ рдкрд╛рдЗрдкрдирд╡ рдХреЗ рд░реВрдк рдореЗрдВ рдЗрд╕ рд╢реНрд░реЗрдгреА рдореЗрдВ рдЕрднреА рднреА рдкреИрдХреЗрдЬ рдореЗрдЯрд╛рдбрд╛рдЯрд╛ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдиреЗ рдФрд░ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рд╕реЗ рдбрд░рддрд╛ рд╣реИ)ред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдЬрдмрдХрд┐ рдкрд┐рдкреЗрдирд╡ рдХрд╛ рдбрд┐рдЬрд╝рд╛рдЗрди рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд╕рд╛рде рдХреНрд▓реАрдирд░ рд╣реИ, рдпрд╣ рдЕрдзрд┐рдХрд╛рдВрд╢ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдХрдо рдЙрдкрдпреЛрдЧреА рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ PEP 518 рдиреЗ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЛ рд╕рдВрдкрд╛рджрди рдпреЛрдЧреНрдп рдореЛрдб рдореЗрдВ рдХреИрд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдП, рдЗрд╕рд▓рд┐рдП рдкрд┐рдкреЗрдирд╡ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдо рд╕реЗрдЯрд▓рд╛рдЗрдЯреНрд╕ рдкрд░ рдХрд╛рдлреА рдлрдВрд╕ рдЬрд╛рдПрдВрдЧреЗред рдЬрдм рддрдХ рдЖрдк рд╕реЗрдЯрдлрд╝реВрд▓ рд╕реЗ рджреВрд░ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП pyproject.toml рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЕрднреА рднреА pipenv install -e . ред

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

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

рд╕рдореБрджрд╛рдп рдиреЗ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп setup.cfg рдореЗрдВ рдирд┐рд░реНрдорд╛рдг рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЛ рд░рдЦрд╛ рд╣реЛрдЧрд╛ред

рдХреНрдпрд╛ рдЖрдкрдХрд╛ рдорддрд▓рдм рдкреЗрдк рд▓реЗрдЦрдХ рд╣реИрдВ? рдЖрдк рдЙрдирд╕реЗ рдкреВрдЫ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЙрдиреНрд╣реЛрдВрдиреЗ рдЕрдкрдирд╛ рдирд┐рд░реНрдгрдп рдХреНрдпреЛрдВ рд▓рд┐рдпрд╛, рд╡реЗ рдЗрд╕реЗ рд╕рднреА рдХреЛ рд░реЗрдЦрд╛рдВрдХрд┐рдд рдХрд░рддреЗ рд╣реИрдВред

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

рдпрд╣ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдореЗрд▓рд┐рдВрдЧ рд╕реВрдЪреА рдореЗрдВ рдЖрдпрд╛ рдерд╛ - рдХрд╣реАрдВ рднреА рдХреБрдЫ рднреА рдирд╣реАрдВ рдорд╛рдирдХ pyproject.toml рдЖрд╕рдкрд╛рд╕ рдХреА рдШреЛрд╖рдгрд╛ рдХреА рд╣реИ рдХрд┐ рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдпрд╣ рдкреНрд░рдгрд╛рд▓реА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреА рдШреЛрд╖рдгрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдХреБрдЫ рднреА рдПрдХ рдзрд╛рд░рдгрд╛ рд╣реИ; рдЖрдк рдЙрд╕ "рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдкрд░рд┐рднрд╛рд╖рд╛ рдореЗрдЯрд╛рдбреЗрдЯрд╛" рдХреЛ рдХреЙрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдирд╣реАрдВ рд╣реИред рдХреЗрд╡рд▓ рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреЛрдИ рдЕрддрд┐рд░рд┐рдХреНрдд рдЬрд╛рдирдХрд╛рд░реА (рдпрд╛рдиреА рдХреЛрдИ pep-345 рдЕрдиреБрд░реВрдк рдореЗрдЯрд╛рдбреЗрдЯрд╛) рдХреЗ рд╕рд╛рде рдПрдХ рдмрд┐рд▓реНрдб рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ рдФрд░ рдЗрд╕реЗ pypi рдкрд░ рдЕрдкрд▓реЛрдб рдХрд░реЗрдВ рдФрд░ рдореБрдЭреЗ рдмрддрд╛рдПрдВ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдЬрд╛рддрд╛ рд╣реИред

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

рдХреМрди рдХрд╣ рд░рд╣рд╛ рд╣реИ рдХрд┐ рдЖрд╡реЗрджрдиреЛрдВ рдХреЛ рдкреНрд░рд╡реЗрд╢ рдмрд┐рдВрджреБ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ? рдкрд┐рдкреЗрдирд╡ рдХреЗ рдкрд╛рд╕ рдЗрд╕реЗ рд╕рдВрднрд╛рд▓рдиреЗ рдХрд╛ рдкреВрд░рд╛ рдирд┐рд░реНрдорд╛рдг рд╣реИред

рдЗрд╕рд▓рд┐рдП рдкрд┐рдкреЗрдирд╡ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЬрд╛рд░реА рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдо рд╕реЗрдЯрдкреВрд▓реЛрдВ рдкрд░ рдХрд╛рдлреА рд╕рдордп рддрдХ рдЕрдЯрдХреЗ рд░рд╣реЗрдВрдЧреЗ, рдХреНрдпреЛрдВрдХрд┐ рдЖрдк рд╕реЗрдЯрдкреВрд▓ рд╕реЗ рджреВрд░ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП pyproject.toml рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдлрд┐рд░ рднреА рдкрд┐рдкреЗрдирд╡ рдЗрдВрд╕реНрдЯреЙрд▓-рдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

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

рдпрд╣ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдореЗрд▓рд┐рдВрдЧ рд╕реВрдЪреА рдкрд░ рдЖрдпрд╛ рдерд╛ - рдХрд╣реАрдВ рднреА рдХреБрдЫ рднреА pyproject.toml рдЖрд╕рдкрд╛рд╕ рдПрдХ рдорд╛рдирдХ рдШреЛрд╖рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ

рдпрд╣ рд╕рд╣реА рд╣реИ, рдпрд╣ рдПрдХ "рдорд╛рдирдХ" рдирд╣реАрдВ рд╣реИ, рдлрд┐рд░ рднреА рдЙрд╕реА рд╕реВрддреНрд░ рдореЗрдВ рдпрд╣ рдорд╛рдиреНрдпрддрд╛ рд╣реИ рдХрд┐ pyproject.toml рдХреЛ рдХреЙрд▓ рдХрд░рдХреЗ рдЙрдиреНрд╣реЛрдВрдиреЗ рд▓реЛрдЧреЛрдВ рд╕реЗ рдЗрд╕ рдлрд╛рдЗрд▓ рдХреЛ рдЕрдиреНрдп рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕рдВрдмрдВрдзрд┐рдд рд╕реЗрдЯрд┐рдВрдЧреНрд╕ / рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рд╛ред

рддреЛ рдЙрд╕реА рддрд░реНрдХ рд╕реЗ рдЖрдкрдиреЗ рдпрд╣рд╛рдБ рдЖрд╣реНрд╡рд╛рди рдХрд┐рдпрд╛:

рдбрд┐рд╕реНрдЯреБрдЯрд┐рд▓ рдорд╛рдирдХ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИ рдФрд░ рд╕реЗрдЯрдкреВрд▓ рдЕрдм рдкрд╛рдЗрдк рдХреЗ рд╕рд╛рде рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдХрд╣рдирд╛ рдХрд┐ рдХреЛрдИ рдорд╛рдирдХ рдирд╣реАрдВ рд╣реИ рдереЛрдбрд╝рд╛ рдореВрд░реНрдЦрддрд╛рдкреВрд░реНрдг рд╣реИред

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

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

PEP 517 рд╕рдВрдкрд╛рджрди рдпреЛрдЧреНрдп рдЗрдВрд╕реНрдЯреЙрд▓реНрд╕ рдкрд░ рдкрд┐рди рдХрд┐рдпрд╛ рдЧрдпрд╛ ... рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдЕрдЧрд░ рдЖрдк рд╕реЗрдЯрдЕрдк рдЯреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЬреЛ рд╕рдВрдкрд╛рджрди рдореЛрдб рдореЗрдВ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реИ (рдЬреЛ рдПрдХ рдЕрд╡рдзрд╛рд░рдгрд╛ рд╡рд┐рдХрд╕рд┐рдд рдореЛрдб рдХреЗ рд░реВрдк рдореЗрдВ рдЬрд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИ, рддреЛ рд╕рдВрдкрд╛рджрди рдпреЛрдЧреНрдп рдореЛрдб рдореЗрдВ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рдорд╛рдирдХ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИред

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

рд╣рд╛рдБ, рдмрд┐рд▓реНрдб рд╕рд┐рд╕реНрдЯрдо рдХреЛ PEP 345 рдореЗрдВ рд╡рд░реНрдгрд┐рдд PKG-INFO рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЖрдЙрдЯрдкреБрдЯ рдХрд░рдиреЗ рдХреА рдЙрдореНрдореАрдж рд╣реИред рдпрд╣ рдПрдХ рд╕реНрдерд╛рдирд╛рдВрддрд░рдг рдкреНрд░рд╛рд░реВрдк рд╣реИ рдЬреЛ рдПрдХ sdist рдпрд╛ рд╡реНрд╣реАрд▓ рдореЗрдВ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ setup.py/setup.cfg рд╕реЗ рдЬрдирд░реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдпрд╣ рдХреЛрдИ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдирд╣реАрдВ рд╣реИ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛-рд╕рд╛рдордирд╛ рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдХреЗ рд▓рд┐рдП рдЗрд╕ рддрд░рд╣ред PEP 518 рдХрд╛ pyproject.toml рдХрд╛ рдЙрдкрдпреЛрдЧ рдПрдХ рдирд┐рд░реНрдорд╛рдг рдкреНрд░рдгрд╛рд▓реА рдХреЗ рд░реВрдк рдореЗрдВ рдбрд┐рд╕реНрдЯреБрдЯрд┐рд▓реНрд╕ / рд╕реЗрдЯрдкреНрдЯреВрд▓ рдХреЗ рд╡рд┐рдХрд▓реНрдк рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИ, рдХреЛрдИ рднреА рдЕрднреА sdist / рд╡реНрд╣реАрд▓ рдкреНрд░рд╛рд░реВрдкреЛрдВ рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИред рдЙрди рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдмрд┐рд▓реНрдб рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдЕрдкрдиреЗ рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдХреЛ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЬрдЧрд╣ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдФрд░ рд╕реМрднрд╛рдЧреНрдп рд╕реЗ PEP 517 рдиреЗ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрди рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП tool. рдирд╛рдо рд╕реНрдерд╛рди рдЖрд░рдХреНрд╖рд┐рдд рдХрд┐рдпрд╛ред рдпрд╣ рдПрдХ рдзрд╛рд░рдгрд╛ рдирд╣реАрдВ рд╣реИ - "рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдбреЗрдлрд┐рдирд┐рд╢рди рдореЗрдЯрд╛рдбреЗрдЯрд╛" рдХреЗ рд▓рд┐рдП рдлреНрд▓рд┐рдЯ рдФрд░ рдХрд╡рд┐рддрд╛ рджреЛрдиреЛрдВ рдиреЗ рдЗрд╕ рдирд╛рдо рд╕реНрдерд╛рди рдХреЛ рдЕрдкрдирд╛рдпрд╛ рд╣реИред

рдХреЗрд╡рд▓ рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреЛрдИ рдЕрддрд┐рд░рд┐рдХреНрдд рдЬрд╛рдирдХрд╛рд░реА (рдпрд╛рдиреА рдХреЛрдИ pep-345 рдЕрдиреБрд░реВрдк рдореЗрдЯрд╛рдбреЗрдЯрд╛) рдХреЗ рд╕рд╛рде рдПрдХ рдмрд┐рд▓реНрдб рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ рдФрд░ рдЗрд╕реЗ pypi рдкрд░ рдЕрдкрд▓реЛрдб рдХрд░реЗрдВ рдФрд░ рдореБрдЭреЗ рдмрддрд╛рдПрдВ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдЬрд╛рддрд╛ рд╣реИред

рдХрд┐рддрдирд╛ рд░рдЪрдирд╛рддреНрдордХред

рдХреМрди рдХрд╣ рд░рд╣рд╛ рд╣реИ рдХрд┐ рдЖрд╡реЗрджрдиреЛрдВ рдХреЛ рдкреНрд░рд╡реЗрд╢ рдмрд┐рдВрджреБ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ? рдкрд┐рдкреЗрдирд╡ рдХреЗ рдкрд╛рд╕ рдЗрд╕реЗ рд╕рдВрднрд╛рд▓рдиреЗ рдХрд╛ рдкреВрд░рд╛ рдирд┐рд░реНрдорд╛рдг рд╣реИред

рдпрд╣ рдирд┐рд░реНрдорд╛рдг рдХрд╣рд╛рдВ рд╣реИ? рдореИрдВ https://pipenv.readthedocs.io/en/latest/ рдкрд░ рдкрд┐рдкреЗрдирд╡ рджрд╕реНрддрд╛рд╡реЗрдЬ рдХреЗ рдХрд┐рд╕реА рднреА рдкреГрд╖реНрда рдкрд░ "рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐" рд╢рдмреНрдж рднреА рдирд╣реАрдВ рдкрд╛ рд╕рдХрддрд╛ рд╣реВрдВ, рдЗрд╕рд▓рд┐рдП "рдПрдХ рд╕рдВрдкреВрд░реНрдг рдирд┐рд░реНрдорд╛рдг" рдмрд╣реБрдд рджреВрд░ рд▓рдЧрддрд╛ рд╣реИ? рдпрджрд┐ рдЖрдк рд╕рдВрдкрд╛рджрди рдпреЛрдЧреНрдп рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рд╕реЗ рдорддрд▓рдм рд░рдЦрддреЗ рд╣реИрдВ рддреЛ рд╣рдо рдЙрд╕ рдмрд┐рдВрджреБ рдкрд░ рдкрд╣реБрдВрдЪ рдЧрдП рд╣реИрдВ рдЬреЛ рдореИрдВ рдКрдкрд░ рдмрдирд╛ рд░рд╣рд╛ рдерд╛ - рдкрд┐рдкреЗрдирд╡ рдиреЗ рдЦреБрдж рдХреЛ pipenv install -e . рдореЗрдВ рд╣реБрдХ рдХрд░рдиреЗ рдХрд╛ рдПрдХрдорд╛рддреНрд░ рддрд░реАрдХрд╛ рдФрд░ рдкреИрдХреЗрдЬ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рд╣реИ, рдЬреЛ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдЖрдиреЗ рд╡рд╛рд▓реЗ рдлреЙрд░рдирд╡ рдХреЗ рд╕рдорд░реНрдерди рдХреЗ рд▓рд┐рдП рд╣реИред рдпрд╣рд╛рдБ рд╕реЗрдЯрдкреВрд▓реЛрдВ рдХреЛ рдпреБрдЧреНрдорд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдкреВрд░рд╛ рд╡рд┐рд╡рд╛рдж рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдЙрдмрд▓рддрд╛ рд╣реИ рдФрд░ рд▓реЛрдЧ (рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдореБрдЭреЗ) рдирд┐рд░рд╛рд╢ рд╣реЛрддреЗ рд╣реИрдВ рдХрд┐ рд╣рдо рдЕрдм рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рд╕реЗрдЯрдкреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдкрд┐рдкреЗрдирд╡ рдХреЗ рд╕рд╛рде рдЙрди рдкрд░ рд╡рд┐рдХрд╕рд┐рдд рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕реНрдкрд╖реНрдЯ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдкрд┐рдкреЗрдирд╡ рдХреА рдЧрд▓рддреА рдирд╣реАрдВ рд╣реИ (PEP 518 рдиреЗ рд╕рдВрдкрд╛рджрди рдпреЛрдЧреНрдп рдЗрдВрд╕реНрдЯреЙрд▓реНрд╕ рдкрд░ рдкрдВрдЯ рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ рд╣реИ), рд▓реЗрдХрд┐рди рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдиреЗ рд╕реЗ рдЗрдирдХрд╛рд░ рдХрд░рдиреЗ рд╕реЗ рдкреНрд░рд╡рдЪрди рдореЗрдВ рдирд┐рд░рд╛рд╢рд╛ рд╣реБрдИ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдХрд╡рд┐рддрд╛ рдПрдХ рд╡рд┐рдХрд▓реНрдк рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИ рдЬреЛ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдПрдХ рддрд░рд╣ рд╕реЗ рд╕рдВрднрд╛рд▓рддреА рд╣реИ рдЬреЛ рдХрд┐ рдЕрдиреБрд░реВрдк рд╣реИ pyproject.toml рдкреНрд░рд╛рд░реВрдк рдХреЗ рд╕рд╛рдеред рдкрд┐рдкреЗрдирд╡ рдХрд╣рддрд╛ рд░рд╣рддрд╛ рд╣реИ рдХрд┐ рдХрд╡рд┐рддрд╛ рдмреБрд░реЗ рдирд┐рд░реНрдгрдп рд▓реЗрддреА рд╣реИ рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрдЧреЗ рдХрд╛ рдорд╛рд░реНрдЧ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдирд╣реАрдВ рдХрд░рддреА рд╣реИред

https://pipenv.readthedocs.io/en/latest/advanced/#custom-script- рд╢реЙрд░реНрдЯрдХрдЯ

рдХреГрдкрдпрд╛ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдкрдврд╝реЗрдВред

@bertjwregeer :

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

рдорд╣рд╛рди, рдФрд░ рд╣рдо рдЗрд╕ рдкреНрд░рдгрд╛рд▓реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдирд┐рд░реНрдорд┐рдд sdists рдФрд░ рдкрд╣рд┐рдпреЛрдВ рдХреЛ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЦреБрд╢ рд╣реИрдВ рдФрд░ рдЬрдм рддрдХ рд╕рдВрдкрд╛рджрди рдпреЛрдЧреНрдп рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдорд╛рдирдХ рдирд╣реАрдВ рд╣реИ рддрдм рддрдХ рд╣рдо sdists рдФрд░ рдкрд╣рд┐рдпреЛрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╛рдЗрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦреЗрдВрдЧреЗ рдФрд░ рдирд┐рд░реНрднрд░рддрд╛ рд╕рдВрдХрд▓реНрдк рдХреЛ рд╕рдВрднрд╛рд▓реЗрдВрдЧреЗред рдХреГрдкрдпрд╛ рдореЗрд░реА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рдкреВрд░рд╛ рдкрдврд╝реЗрдВред рдкрд╛рдЗрдк рдХреЗ рд▓реЗрдЦрдХ рдФрд░ рдЕрдиреБрд░рдХреНрд╖рдХ, рдкреНрд░рд╢реНрди рдореЗрдВ рдкреЗрдкреНрд╕ рдХреЗ, рдФрд░ рдЦреБрдж рдХреЛ рдФрд░

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

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

https://pipenv.readthedocs.io/en/latest/advanced/#custom-script- рд╢реЙрд░реНрдЯрдХрдЯ
рдХреГрдкрдпрд╛ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдкрдврд╝реЗрдВред

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

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

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

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

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

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

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

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

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

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