Pipenv: рд▓реЙрдХ рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛ рдмрд╣реБрдд рдзреАрдорд╛ рд╣реИ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 5 рдЕрдкреНрд░реИрд▓ 2018  ┬╖  47рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: pypa/pipenv

рд▓реЙрдХрдлрд╛рдЗрд▓ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛ рдмрд╣реБрдд рдзреАрдорд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдПрдХ рдорд╛рдирдХ pipenv lock рдЖрд╕рд╛рдиреА рд╕реЗ рдореЗрд░реЗ рд▓рд┐рдП рдПрдХ рдорд┐рдирдЯ рд╕реЗ рдЕрдзрд┐рдХ рд╕рдордп рд▓реЗрддрд╛ рд╣реИ:

$ time pipenv lock 
Locking [dev-packages] dependenciesтАж
Locking [packages] dependenciesтАж
Updated Pipfile.lock (abef76)!

real    1m56.988s
user    0m21.805s
sys 0m2.417s

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

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

рдкрд╛рдЗрдкрдлрд╛рдЗрд▓ рдХреЗ рд▓реЙрдХ рд╣реЛрдиреЗ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рддреЗ рд╣реБрдП рдЗрд╕реЗ рдкрдврд╝реЗрдВ...:) рдЕрдЧрд░ рдХреЛрдИ рд╕рдорд╛рдзрд╛рди рд╣реЛрддрд╛ рддреЛ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрддрд╛ред

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

рд╣рдо рдЬрд╛рдЧрд░реВрдХ рд╣реИрдВ рдФрд░ рдЗрд╕ рд╡рд┐рд╖рдп рдХреЛ рдЯреНрд░реИрдХ рдХрд░рдиреЗ рдореЗрдВ рдХрдИ рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реИрдВред рджреЗрдЦреЗрдВ #1785 #1886 #1891 рдФрд░ рдкреАрдЖрд░ #1896

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

рдЕрдиреНрдп рдореБрджреНрджреЛрдВ рдореЗрдВ рдЯреНрд░реИрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдВрджред

рд╡рд╣реА рдпрд╣рд╛рдБ рдореИрдВ рдЗрд╕реЗ рдЕрднреА рдЖрдЬрд╝рдорд╛ рд░рд╣рд╛ рд╣реВрдБ рдФрд░ django рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА 10 рдорд┐рдирдЯ рдФрд░ рдЬрд╛ рд░рд╣рд╛ рд╣реИ

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрджрд┐ рдЖрдк рдПрдХ рд╕рдордп рдореЗрдВ рдПрдХ рдЬреЛрдбрд╝реЗ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдпрд╣ рдзреАрдорд╛ рд╣реЛрддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдпрджрд┐ рдЖрдк рдПрдХ рд╕рдордп рдореЗрдВ рдПрдХ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдпрд╣ рдереЛрдбрд╝рд╛ рддреЗрдЬрд╝ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ

рдпрджрд┐ рдЖрдк рдПрдХ рдкрд┐рдкрдлрд╛рдЗрд▓ рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдзреАрдореЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдкреБрди: рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ рддреЛ рдпрд╣ рд╕рд╣рд╛рдпрдХ рд╣реЛрдЧрд╛ - рдзрдиреНрдпрд╡рд╛рдж

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

рдХреНрдпрд╛ рдпрд╣ рдЕрднреА рднреА рдорд╛рдорд▓рд╛ рд╣реИ рдЬрдм рдкреИрдХреЗрдЬ рдХрд╛ рдЕрдкрдирд╛ Pipfile.lock , рдпрд╛ рдЬрдм рд╕рдВрднрд╡ рд╣реЛ рддреЛ рдирд┐рд░реНрднрд░рддрд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП pipenv рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдЧрд╛?

рдирд┐рд░реНрднрд░рддрд╛рдУрдВ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрдм рд╕рдВрднрд╡ рд╣реЛ рддреЛ рдкрд┐рдкреЗрдирд╡ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдЧрд╛?

рдирд╣реАрдВред рдкрд┐рдкреЗрдирд╡ рдПрдХ рдПрдкреНрд▓реАрдХреЗрд╢рди рдбрд┐рдкреЗрдВрдбреЗрдВрд╕реА рд░рд┐рдЬреЙрд▓реНрдпреВрд╢рди рдЯреВрд▓ рд╣реИред рдЬрдм рдХрд┐рд╕реА рдЕрдиреНрдп рдПрдкреНрд▓рд┐рдХреЗрд╢рди рджреНрд╡рд╛рд░рд╛ рдПрдХ рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рдкрд╛рдпрдерди рдкреИрдХреЗрдЬ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдЕрдм рдПрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдирд╣реАрдВ рд╣реИред рдЗрд╕рдХреА рдирд┐рд░реНрднрд░рддрд╛ setup.py (рдпрд╛ setup.cfg рдпрд╛ рдЬреЛ рднреА рдЖрдк PyPI рдкрд░ рдЕрдкрд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ) рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХреА рдЬрд╛рддреА рд╣реИрдВред рд▓реЙрдХ рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдирд┐рд░реНрднрд░рддрд╛ рд▓реЛрдб рдХрд░рдирд╛ рдирд┐рд░реНрднрд░рддрд╛ рдирд░рдХ рдХреЗ рд▓рд┐рдП рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдорд╛рд░реНрдЧ рд╣реИ, рд╣рдо рд╢рд╛рдпрдж рдРрд╕рд╛ рдХрднреА рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗред

рдпрд╣ рдЕрднреА рднреА рдмрд╣реБрдд рдзреАрдорд╛ рд╣реИ

@iddan рдЕрдиреБрд╕реНрдорд╛рд░рдХ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдХрдкреНрддрд╛рди рд╕реНрдкрд╖реНрдЯ!

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

рдКрдкрд░ --skip-lock рдХрд╛ @techalchemy рдиреЛрдЯ рдЕрджреНрднреБрдд рд╣реИред рдпрд╣ рдПрдХ рдЕрдзрд┐рдХ рд╕реБрд▓рдн рдпрд╛ рдкреНрд░рдЪрд╛рд░рд┐рдд рд╡рд┐рдХрд▓реНрдк рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдХреНрдпрд╛ рд╣рдо рдЗрд╕реЗ рдХрд╣реАрдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

@techalchemy рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдЕрдЧрд░ рдореЗрд░реЗ рдмреНрд░рд╛рдВрдб рдХреЗ рдирдП рдореИрдХ рдкреНрд░реЛ рдХреЗ рд╕рд╛рде 20 рдорд┐рдирдЯ рд▓рдЧрддреЗ рд╣реИрдВ?

рдКрдкрд░ --skip-lock рдХрд╛ @techalchemy рдиреЛрдЯ рдЕрджреНрднреБрдд рд╣реИред рдпрд╣ рдПрдХ рдЕрдзрд┐рдХ рд╕реБрд▓рдн рдпрд╛ рдкреНрд░рдЪрд╛рд░рд┐рдд рд╡рд┐рдХрд▓реНрдк рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдХреНрдпрд╛ рд╣рдо рдЗрд╕реЗ рдХрд╣реАрдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдореИрдВ рдЗрдХрдЯреНрдард╛ рдХрд░рддрд╛ рд╣реВрдВ, рдкрд┐рдкреЗрдирд╡ рдХрд╛ рдЕрддреНрдпрдзрд┐рдХ рд▓рд╛рдн рдпрд╣ рд╣реИ рдХрд┐ рдЖрд╢реНрд╡рд╛рд╕рди рдирд┐рд░реНрднрд░рддрд╛ рдПрдХ рд╕рд╛рде рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдЦреЗрд▓реЗрдВрдЧреЗ - рди рдХреЗрд╡рд▓ рдЖрдкрдХреЗ рд▓рд┐рдП, рдмрд▓реНрдХрд┐ рдмрд╛рдж рдореЗрдВ рдЖрдкрдХреЗ рдХреЛрдб рдореЗрдВ рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХрд┐рд╕реА рднреА рд╡реНрдпрдХреНрддрд┐ рдХреЗ рд▓рд┐рдПред рдЙрд╕ рдЖрд╢реНрд╡рд╛рд╕рди рдХрд╛ рдЙрддреНрдкрд╛рдж, рд▓реЙрдХ рдлрд╝рд╛рдЗрд▓, рдХрд┐рд╕реА рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рдпрд╛ рдЗрдЪреНрдЫрд╛ рд╕реЗ рдЕрдзрд┐рдХ рд╕рдордп рд▓реЗрддрд╛ рд╣реИ, _рджреЗрд╡реЛрдВ рд╕рд╣рд┐рдд_ - # 2200 рджреЗрдЦреЗрдВред

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

рдпрджрд┐ --skip-lock рдХреЛ рдкрд┐рдкрдлрд╛рдЗрд▓ рдореЗрдВ рдПрдХ рд╕реНрдерд╛рдпреА рдзреНрд╡рдЬ рдпрд╛ рдПрдХ рдкрд┐рдкреЗрдирд╡ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рдПрдХ рд╕реЗрдЯрд┐рдВрдЧ рдмрдирдирд╛ рдерд╛, рддреЛ рдкрд┐рдкреЗрдирд╡ рдХреА рдзрд╛рд░рдгрд╛ рдзреАрд░реЗ-рдзреАрд░реЗ "рдмреЗрд╣рддрд░ рдкрд╛рдЗрдк" рдХреА рдУрд░ рдмрдврд╝ рдЬрд╛рдПрдЧреА, рдФрд░ рдХреНрд╖рд┐рддрд┐рдЬ рдореЗрдВ рдПрдХ рдФрд░ рдХрджрдо рдкрддреНрдерд░ рд▓реБрдкреНрдд рд╣реЛ рдЬрд╛рдПрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рд╕рдореБрджрд╛рдп рдЕрдВрддрддрдГ рдЙрддрд░рд╛ рдерд╛ рдПрдХ рдХрдо рд╕рдордЭреМрддрд╛ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдЖрдзреНрдпрд╛рддреНрдорд┐рдХ рдЙрддреНрддрд░рд╛рдзрд┐рдХрд╛рд░реАред

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

рдкрд╛рдпрдерди рдХреА рдЕрд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд░реВрдк рд╕реЗ рд╡рд┐рд╢рд╛рд▓ рдорд╛рдирдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдПрдХ рдмрд╣реБрдд рдмрдбрд╝реА рд╕рдВрдкрддреНрддрд┐ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЗрддрд┐рд╣рд╛рд╕ рдереЛрдкрдиреЗ рдХреА рдирд┐рд░рдВрддрд░рддрд╛ рдХреЗ рдХрдИ рдпреБрдЧреЛрдВ рд╕реЗ рдЧреБрдЬрд░рд╛ рд╣реИред рдпрд╣ рдХрд┐ рдЕрдзрд┐рдХрд╛рдВрд╢ рдорд╛рдирдХ рдкреИрдХреЗрдЬ рдПрдХ рд╕рд╛рде рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдЪрд▓рддреЗ рд╣реИрдВ, рдпрд╣ рдПрдХ рдмрд╣реБрдд рдмрдбрд╝реА рдЙрдкрд▓рдмреНрдзрд┐ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдХрдИ рд▓реЛрдЧ рдХрдИ рд╡рд░реНрд╖реЛрдВ рд╕реЗ рд╡рд┐рдЪрд╛рд░ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдПрдХ рджрд┐рди, рд╡рд╣ рдкреНрд▓реЗ-рдиреАрд╕-рдХреНрд╖рдорддрд╛ рд╡реЗрдм рдкрд░ рдЖрдиреЗ рд╡рд╛рд▓реА рдЕрдзрд┐рдХрд╛рдВрд╢ рдкрд╛рдпрдерди рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рддрдХ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рд╣реЛрдЧреА - stdlib рд╕реЗ рдмрд╣реБрдд рджреВрд░, рдФрд░ рдмрд╣реБрдд рдХрдо рдкреАрдИрдкреА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рд╕рд╛рде (_рдФрд░ рджреВрд░, рдирд┐рд░рд╛рд╢рд╛ рдореЗрдВ рдЦрд╛рд▓реА рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдмрд╣реБрдд рдХрдо рдмреАрдбреАрдПрдлрдПрд▓)ред рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рдХреЗ рдкреНрд░рднрд╛рд╡ рдПрдХрддрд░рдлрд╛ рдордХреНрдЦрди рдЕрдиреБрднрд╡ рдХреЛ рдорд╛рдкрдиреЗ рдХреЗ рд▓рд┐рдП рдореБрд╢реНрдХрд┐рд▓ рд╣реИ, рд▓реЗрдХрд┐рди рддрддреНрдХрд╛рд▓ рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП рд╡реИрдЪрд╛рд░рд┐рдХ рдЕрдЦрдВрдбрддрд╛ рдХреЗ рд╕рд╛рде рд╕рдордЭреМрддрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдореМрдЬреВрджрд╛ рднрд╛рд╖рд╛рдУрдВ _did_ рдХрдЪрд░реЗ ... рдФрд░ рдУрд╣, рд╕реНрдерд╛рдиреЛрдВ рд╡реЗ рдХрд░реЗрдВрдЧреЗ рдЬрд╛рдУ ред

рддреЛ _yes_, рд▓реЙрдХрдлрд╝рд╛рдЗрд▓ рдЬрдирд░реЗрдЯ рдХрд░рдирд╛ рдзреАрдорд╛ рд╣реИ, рдФрд░ _yes_, рдпрд╣ рдирд┐рд░рд╛рд╢рд╛рдЬрдирдХ рд╣реИ рдЬрдм рдЖрдк рдХреЗрд╡рд▓ pip install --save ред рд▓реЗрдХрд┐рди рдпрд╣ рдХреЗрд╡рд▓ рдЗрд╕рд▓рд┐рдП рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рд╡рд░реНрд╖реЛрдВ рд╕реЗ рдПрдХ рд╣рд╛рдереА рдХреЛ рдХреЛрдард░реА рдореЗрдВ рдШреБрдорд╛ рд░рд╣реЗ рд╣реИрдВ - рдпрд╣ рдорд╛рдирддреЗ рд╣реБрдП рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдмрд╛рд╣рд░реА рдирд┐рд░реНрднрд░рддрд╛ рд╕реЗ рдЕрдкреЗрдХреНрд╖рд╛рдУрдВ рдФрд░ рдЗрд░рд╛рджреЛрдВ рдХреА рдЙрд▓рдЭреА рд╣реБрдИ рдЧрдбрд╝рдмрдбрд╝реА рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ _ "рдпрд╣ рдореЗрд░реА рдорд╢реАрди рдкрд░ рдареАрдХ рд╕реНрдерд╛рдкрд┐рдд рд╣реИ"_ред

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

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

рд▓реЙрдХ рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдиреЗ рдореЗрдВ рдореЗрд░реА рдорд╢реАрди рдкрд░ 38 рдорд┐рдирдЯ рдХрд╛ рд╕рдордп рд▓рдЧрд╛ред рд╡рд┐рдВрдбреЛрдЬ 10 рдЪрд▓рд╛рдирд╛ рдФрд░ рдкрд╛рдпрдерди 3.7 . рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛

рдХреЗрд╡рд▓ рд╕реБрдиреНрди рдФрд░ рддрдХрд┐рдпрд╛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕реНрдерд╛рдкрд┐рдд рдереЗ рдФрд░ рд╕реБрдиреНрди рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдореЗрдВ <1 рд╕реЗрдХрдВрдб рдФрд░ рдЗрд╕реЗ рд▓реЙрдХ рдХрд░рдиреЗ рдореЗрдВ 25 рдорд┐рдирдЯ рдХрд╛ рд╕рдордп рд▓рдЧрд╛ред рдХреНрдпрд╛ рдкрд┐рдкреЗрдирд╡ рд▓реЙрдХ рдкрд░ рд╣рд░ рд▓рд┐рдм рдХреЛ рдЬрдмрд░рди рд╕рдВрдХрд▓рд┐рдд рдХрд░рддрд╛ рд╣реИ рдпрд╛ рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ?

FYI рдХрд░реЗрдВ рд▓рдЧрд╛рддрд╛рд░ рд╕реНрдХрд┐рдк рд▓реЙрдХ auto_envvar_prefix рд▓рд┐рдП рд╕реНрд╡рд┐рдЪ рдХреЛ рдлреНрд▓рд┐рдк рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рдХрд╛ рдЗрдВрддрдЬрд╛рд░ рдХрд░ рд░рд╣рд╛ рд╣реИ рдЬреЛ рдПрдХ рдХреНрд▓рд┐рдХ рд╕реЗрдЯрд┐рдВрдЧ рд╣реИред рдореИрдВ рдореВрд▓ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдкрд░ 100% рдХреЗрдВрджреНрд░рд┐рдд рд░рд╣рд╛ рд╣реВрдВ рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдЕрднреА рддрдХ рдЗрд╕реЗ рджреЗрдЦрдиреЗ рдХрд╛ рдореМрдХрд╛ рдирд╣реАрдВ рдорд┐рд▓рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдЗрддрдирд╛ рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рд╣реИ

рдЯреАрдПрд▓рдбреАрдЖрд░; рд╡рд┐рд╢рд┐рд╖реНрдЯ pipenv install рдордВрдЧрд▓рд╛рдЪрд░рдг: рд╕рдордп : 144.82 рд╡рд╛рд╕реНрддрд╡рд┐рдХ 33.68 рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ 5.77 sys. --skip-lock : рд╕рдордп : 4.54 рд╡рд╛рд╕реНрддрд╡рд┐рдХ 5.33 рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ 0.87 sys.

рдкрдВрдбреЛрдВ-рдбреЗрдЯрд╛рд░реЗрдбрд░ рдЗрдВрд╕реНрдЯреЙрд▓ рдкрд╣рд▓реЗ рдкреНрд░рдпрд╛рд╕ рдореЗрдВ рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рд╕рдВрднрд╡рддрдГ lock рд▓рдЯрдХрдиреЗ рдХрд╛ рдХрд╛рд░рдгред рдХреНрдпрд╛ рдпрд╣ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдХреЛрдИ рдЕрдиреНрдп рдкреИрдХреЗрдЬ рдХреЗ рд╕рд╛рде рджреЗрдЦ рд░рд╣рд╛ рд╣реИ?

рд╕рдВрд╕реНрдХрд░рдг 2018.11.26 . рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛

$ pipenv --version
pipenv, version 2018.11.26

requirements.txt

sklearn
pandas
numpy
matplotlib
statsmodels

рд╡рд┐рд╢рд┐рд╖реНрдЯ pipenv install рдЖрдордВрддреНрд░рдгред time (рдмреАрдПрд╕рдбреА) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рдордпрдмрджреНрдз рдирд┐рд╖реНрдкрд╛рджрдиред

рдкрд░рд┐рдгрд╛рдо : 144.82 рд╡рд╛рд╕реНрддрд╡рд┐рдХ 33.68 рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ 5.77 sys

$ time pipenv install -r requirements.txt
Requirements file provided! Importing into PipfileтАж
Pipfile.lock (0fdb67) out of date, updating to (a65489)тАж
Locking [dev-packages] dependenciesтАж
Locking [packages] dependenciesтАж
тЬФ Success!
Updated Pipfile.lock (0fdb67)!
Installing dependencies from Pipfile.lock (0fdb67)тАж
  ЁЯОЕ   тЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙ 15/15 тАФ 00:00:04
To activate this project's virtualenv, run pipenv shell.
Alternatively, run a command inside the virtualenv with pipenv run.
      144.82 real        33.68 user         5.77 sys

w\ --skip-lock рдЖрд╣реНрд╡рд╛рди

рдкрд░рд┐рдгрд╛рдо : 4.54 рд╡рд╛рд╕реНрддрд╡рд┐рдХ 5.33 рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ 0.87 sys

$ time pipenv install -r requirements.txt --skip-lock
Requirements file provided! Importing into PipfileтАж
Installing dependencies from PipfileтАж
  ЁЯОЕ   тЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙ 6/6 тАФ 00:00:01
To activate this project's virtualenv, run pipenv shell.
Alternatively, run a command inside the virtualenv with pipenv run.
        4.54 real         5.33 user         0.87 sys

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ https://github.com/pandas-dev/pandas/ рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ? рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рднреА рд╕рдордп рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдмрд╛рдд рд╣реИред

рд╣рд╛рд▓рд╛рдВрдХрд┐ pytest рднреА рдПрдХ рдореБрджреНрджрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ:\

рдпрд╣ рдореЗрд░реА рдорд╢реАрди рдкрд░ рднреА рдЦрддреНрдо рдирд╣реАрдВ рд╣реЛрдЧрд╛:

Installing pandasтАж
Adding pandas to Pipfile's [packages]тАж
Installation Succeeded
Pipfile.lock not found, creatingтАж
Locking [dev-packages] dependenciesтАж
Locking [packages] dependenciesтАж
Traceback (most recent call last):
  File "c:\python36\lib\site-packages\pipenv\vendor\pexpect\expect.py", line 109, in expect_loop
    return self.timeout()
  File "c:\python36\lib\site-packages\pipenv\vendor\pexpect\expect.py", line 82, in timeout
    raise TIMEOUT(msg)
pexpect.exceptions.TIMEOUT: <pexpect.popen_spawn.PopenSpawn object at 0x00000292ADCCCDD8>
searcher: searcher_re:
    0: re.compile('\n')

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

@ theY4Kman рд╕рд▓рд╛рд╣ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред pipenv рдПрдХ рд╣реА ubuntu рдФрд░ рдмреИрд╢ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде рдПрдХ рдФрд░ рдкреАрд╕реА рдкрд░ рдареАрдХ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ ...

рдкрд╛рдЗрдкрдлрд╛рдЗрд▓ рдХреЗ рд▓реЙрдХ рд╣реЛрдиреЗ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рддреЗ рд╣реБрдП рдЗрд╕реЗ рдкрдврд╝реЗрдВ...:) рдЕрдЧрд░ рдХреЛрдИ рд╕рдорд╛рдзрд╛рди рд╣реЛрддрд╛ рддреЛ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрддрд╛ред

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

рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛтАЛтАЛрд╣реИ рдХрд┐ рдмрдВрдбрд▓рд░ рдФрд░ рд░реВрдмреА рд░рддреНрди рдРрд╕рд╛ рдХреБрдЫ рдмрдирд╛рдП рд░рдЦрддрд╛ рд╣реИ рдФрд░ рдЙрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред

рдЬрд╛рд╡рд╛ рдореЗрдВ рдкреАрдУрдПрдо рдлрд╛рдЗрд▓реЗрдВ (рдПрдХреНрд╕рдПрдордПрд▓) рднреА рд╣реИрдВ рдЬрд┐рдирдореЗрдВ рдкреИрдХреЗрдЬ рдирд┐рд░реНрднрд░рддрд╛рдПрдВ рдФрд░ рдкреИрдХреЗрдЬ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдиреНрдп рдЬрд╛рдирдХрд╛рд░реА рд╣реЛрддреА рд╣реИред рдЙрдиреНрд╣реЗрдВ рд╕рдВрдХрд▓рд┐рдд рдЬрд╛рд░ рд╕реЗ рдЕрд▓рдЧ рд╕реЗ рдЕрдкрд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдкреНрд░рддреНрдпреЗрдХ рдирдП рдкреИрдХреЗрдЬ рдкреНрд░рдмрдВрдзрдХ рдХреЗ рдкрд╛рд╕ рдХреБрдЫ рдЕрд▓рдЧ рдореЗрдЯрд╛ рдлрд╝рд╛рдЗрд▓реЗрдВ рд╣реЛрддреА рд╣реИрдВ (рдПрдирдкреАрдПрдо/рдпрд╛рд░реНрди, рд╕рдВрдЧреАрддрдХрд╛рд░, рдЧреНрд░реЗрдбрд▓/рдореЗрд╡реЗрди, рдХрд╛рд░реНрдЧреЛ, рд░реВрдмреА рд░рддреНрди/рдмрдВрдбрд▓рд░, ...)

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджрд╛:
https://github.com/pypa/warehouse/issues/474

рдЖрдк рд╕рдВрдкреВрд░реНрдг рдмрдВрдбрд▓ рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдП рдмрд┐рдирд╛ PyPi рд╕реЗ рдирд┐рд░реНрднрд░рддрд╛ рдХреА рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рджреЗрдЦреЗрдВ PEP 566, рдЬрд┐рд╕рдиреЗ PEP 426 рдХрд╛ рд╕реНрдерд╛рди рд▓рд┐рдпрд╛)ред

package_name = 'Django'
PYPI_API_URL = 'https://pypi.python.org/pypi/{package_name}/json'
package_details_url = PYPI_API_URL.format(package_name=package_name)
response = requests.get(package_details_url)
data = json.loads(response.content)
data['info'].get('requires_dist')
data['info'].get('requires')
data['info'].get('setup_requires')
data['info'].get('test_requires')
data['info'].get('install_requires')

@techalchemy рдХреНрдпрд╛ рдЖрдкрдиреЗ рдКрдкрд░ рдЯрд┐рдкреНрдкрдгреА рджреЗрдЦреА?

рдпрд╣ рдХрд╛рдлреА рд▓рдЧрд╛рддрд╛рд░ рд╣реЛ рд░рд╣рд╛ рд╣реИ, рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ pipenv рд╢рд╣рд░ рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рдЬрд╛ рд░рд╣рд╛ рд╣реИ рдЬрдмрдХрд┐ рдХреБрдЫ "рд▓реЙрдХ" рдХрд░ рд░рд╣рд╛ рд╣реИ: рдпрд╣ рдореБрджреНрджрд╛ рдХреНрдпреЛрдВ рдмрдВрдж рд╣реИ?

рд╕рдордЭреЗрдВ рдХрд┐ --skip-lock рдЬрд╛рдиреЗ рдХрд╛ рд░рд╛рд╕реНрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдмрд┐рд▓реНрдХреБрд▓ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ рдХрд┐ "рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рдирд╛" рдореЗрдВ рдХреБрдЫ рд╕реЗрдХрдВрдб рдХреНрдпреЛрдВ рд▓рдЧрддреЗ рд╣реИрдВ, рдФрд░ "рд▓реЙрдХрд┐рдВрдЧ" рд╣рдореЗрд╢рд╛ рдХреЗ рд▓рд┐рдП рд▓реЗрддрд╛ рд╣реИ: рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рдХрдо рд╕реЗ рдХрдо рд▓реЙрдХ рдХрдорд╛рдВрдб рдХреБрдЫ рдкреНрд░рдЧрддрд┐ рдХрд╛ рдЙрддреНрд╕рд░реНрдЬрди рдХрд░реЗрдЧрд╛ /рдЕрдкрдбреЗрдЯ рд▓реЙрдЧ: рдЬреИрд╕реЗ-рдЬреИрд╕реЗ рдЪреАрдЬреЗрдВ рдЦрдбрд╝реА рд╣реЛрддреА рд╣реИрдВ, рдпрд╣ рднреА рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХреЗ while True рд╣рдореЗрд╢рд╛ рдХреЗ рд▓рд┐рдП рдлрдВрд╕ рдЧрдпрд╛ рд╣реИ ...

рдореИрдВ рдХрдо рд╕реЗ рдХрдо рдпрд╣ рдЬрд╛рдирдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рдореИрдВ рдХреБрдЫ рдЧрд▓рдд рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдпрд╛ рд╕рд┐рд░реНрдл рдкрд┐рдкреЗрдирд╡ рдХреА "рдлреАрдЪрд░"ред

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

рдореИрдВ PyTorch рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдЗрд╕реЗ рд▓реЙрдХ рд╣реЛрдиреЗ рдореЗрдВ 20 рдорд┐рдирдЯ рдХрд╛ рд╕рдордп рд▓рдЧрд╛ рдФрд░ рдлрд┐рд░ рдпрд╣ рдирд┐рдореНрди рддреНрд░реБрдЯрд┐ рдХреЛ рдЦреАрдВрдЪрддрд╛ рд╣реИ:

Installing initially failed dependenciesтАж
[pipenv.exceptions.InstallError]:   File "/usr/local/lib/python3.6/dist-packages/pipenv/core.py", line 1992, in do_install
[pipenv.exceptions.InstallError]:       skip_lock=skip_lock,
[pipenv.exceptions.InstallError]:   File "/usr/local/lib/python3.6/dist-packages/pipenv/core.py", line 1253, in do_init
[pipenv.exceptions.InstallError]:       pypi_mirror=pypi_mirror,
[pipenv.exceptions.InstallError]:   File "/usr/local/lib/python3.6/dist-packages/pipenv/core.py", line 859, in do_install_dependencies
[pipenv.exceptions.InstallError]:       retry_list, procs, failed_deps_queue, requirements_dir, **install_kwargs
[pipenv.exceptions.InstallError]:   File "/usr/local/lib/python3.6/dist-packages/pipenv/core.py", line 763, in batch_install
[pipenv.exceptions.InstallError]:       _cleanup_procs(procs, not blocking, failed_deps_queue, retry=retry)
[pipenv.exceptions.InstallError]:   File "/usr/local/lib/python3.6/dist-packages/pipenv/core.py", line 681, in _cleanup_procs
[pipenv.exceptions.InstallError]:       raise exceptions.InstallError(c.dep.name, extra=err_lines)
[pipenv.exceptions.InstallError]: ['Collecting pytorch==1.0.2 (from -r /tmp/pipenv-pb00kf8t-requirements/pipenv-vae35p2d-requirement.txt (line 1))', '  Using cached https://files.pythonhosted.org/packages/ee/67/f403d4ae6e9cd74b546ee88cccdb29b8415a9c1b3d80aebeb20c9ea91d96/pytorch-1.0.2.tar.gz', 'Building wheels for collected packages: pytorch', '  Building wheel for pytorch (setup.py): started', "  Building wheel for pytorch (setup.py): finished with status 'error'", '  Running setup.py clean for pytorch', 'Failed to build pytorch', 'Installing collected packages: pytorch', '  Running setup.py install for pytorch: started', "    Running setup.py install for pytorch: finished with status 'error'"]
[pipenv.exceptions.InstallError]: ['ERROR: Complete output from command /home/alex/.local/share/virtualenvs/pytorch-umelu-tG/bin/python3 -u -c \'import setuptools, tokenize;__file__=\'"\'"\'/tmp/pip-install-hix3yz6v/pytorch/setup.py\'"\'"\';f=getattr(tokenize, \'"\'"\'open\'"\'"\', open)(__file__);code=f.read().replace(\'"\'"\'\\r\\n\'"\'"\', \'"\'"\'\\n\'"\'"\');f.close();exec(compile(code, __file__, \'"\'"\'exec\'"\'"\'))\' bdist_wheel -d /tmp/pip-wheel-f_h8w1pz --python-tag cp36:', '  ERROR: Traceback (most recent call last):', '    File "<string>", line 1, in <module>', '    File "/tmp/pip-install-hix3yz6v/pytorch/setup.py", line 15, in <module>', '      raise Exception(message)', '  Exception: You tried to install "pytorch". The package named for PyTorch is "torch"', '  ----------------------------------------', '  ERROR: Failed building wheel for pytorch', '    ERROR: Complete output from command /home/alex/.local/share/virtualenvs/pytorch-umelu-tG/bin/python3 -u -c \'import setuptools, tokenize;__file__=\'"\'"\'/tmp/pip-install-hix3yz6v/pytorch/setup.py\'"\'"\';f=getattr(tokenize, \'"\'"\'open\'"\'"\', open)(__file__);code=f.read().replace(\'"\'"\'\\r\\n\'"\'"\', \'"\'"\'\\n\'"\'"\');f.close();exec(compile(code, __file__, \'"\'"\'exec\'"\'"\'))\' install --record /tmp/pip-record-xr7o93_5/install-record.txt --single-version-externally-managed --compile --install-headers /home/alex/.local/share/virtualenvs/pytorch-umelu-tG/include/site/python3.6/pytorch:', '    ERROR: Traceback (most recent call last):', '      File "<string>", line 1, in <module>', '      File "/tmp/pip-install-hix3yz6v/pytorch/setup.py", line 11, in <module>', '        raise Exception(message)', '    Exception: You tried to install "pytorch". The package named for PyTorch is "torch"', '    ----------------------------------------', 'ERROR: Command "/home/alex/.local/share/virtualenvs/pytorch-umelu-tG/bin/python3 -u -c \'import setuptools, tokenize;__file__=\'"\'"\'/tmp/pip-install-hix3yz6v/pytorch/setup.py\'"\'"\';f=getattr(tokenize, \'"\'"\'open\'"\'"\', open)(__file__);code=f.read().replace(\'"\'"\'\\r\\n\'"\'"\', \'"\'"\'\\n\'"\'"\');f.close();exec(compile(code, __file__, \'"\'"\'exec\'"\'"\'))\' install --record /tmp/pip-record-xr7o93_5/install-record.txt --single-version-externally-managed --compile --install-headers /home/alex/.local/share/virtualenvs/pytorch-umelu-tG/include/site/python3.6/pytorch" failed with error code 1 in /tmp/pip-install-hix3yz6v/pytorch/']
ERROR: ERROR: Package installation failed...

рддреНрд░реБрдЯрд┐ рдЕрдкрдард┐рдд рд╣реИ, рдкрддрд╛ рдирд╣реАрдВ рдХреНрдпрд╛ рдЧрд▓рдд рд╣реБрдЖред рдкрд░реНрдпрд╛рд╡рд░рдг рдореЗрдВ рдкрд╛рдЗрдк рдХреЗ рд╕рд╛рде рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ! рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рд╢реЛ рд╕реНрдЯреЙрдкрд░ рд╣реИред рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдкрд░ рд╡рд╛рдкрд╕ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВред txt...

рдпрд╣ рд╡рд╣ рд╕рдорд╛рдзрд╛рди рд╣реИ рдЬрд┐рд╕рдХрд╛ рдореИрдВ рдЕрднреА рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ:

export PIPENV_SKIP_LOCK=true

рдлрд┐рд░ pipenv install foo рд▓реЙрдХ рдирд╣реАрдВ рд╣реЛрдЧрд╛ рдФрд░ рдЬрдм рдЖрдкрдХреЗ рдкрд╛рд╕ pipenv lock рдЪрд▓рд╛рдХрд░ рд╕рдордп рд╣реЛ рддреЛ рдЖрдк рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд▓реЙрдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

@awhillas рдмрд╣реБрдд рдпрдХреАрди рд╣реИ рдХрд┐ рдЖрдЦрд┐рд░реА рдкрдВрдХреНрддрд┐ рдЖрдкрдХреЛ рдмрд╕ рдЗрддрдирд╛ рд╣реА рдХрд╣рддреА рд╣реИ:

рдЖрдкрдиреЗ "рдкрд╛рдЗрдЯреЛрд░рдЪ" рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ред PyTorch рдХреЗ рд▓рд┐рдП рдирд╛рдорд┐рдд рдкреИрдХреЗрдЬ "рдорд╢рд╛рд▓" рд╣реИ

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

рдХреНрдпрд╛ рд╣рдо рдХрдо рд╕реЗ рдХрдо рдХреБрдЫ рд╕рд╛рдореВрд╣рд┐рдХ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдмрд╛рдзрд╛рдУрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдпрд╛ рдЬрд╛ рд╕рдХреЗ рдФрд░ рдЙрдирдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдпрд╛ рдЬрд╛ рд╕рдХреЗ? рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдЙрдЪрд┐рдд рд░рдирдЯрд╛рдЗрдо рдореЗрдВ рд▓реЗрдиреЗ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдореЗрдВ рд╡рд╣рд╛рдВ рдХреБрдЫ рдореВрд░реНрдЦрддрд╛рдкреВрд░реНрдг рдХрдо рд▓рдЯрдХрддреЗ рдлрд▓ рд╣реИрдВред

pipenv version 2018.11.26

рдкрд┐рдкрдлрд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП:

[[source]]
url = "https://pypi.org/simple"
verify_ssl = true
name = "pypi"

[packages]

[dev-packages]
keras = "*"
tensorflow = "~=1.13"
setuptools = "*"
wheel = "*"
twine = "*"

[requires]
python_version = ">=3.6"
Pipfile.lock (63b275) out of date, updating to (5e165c)тАж
Locking [dev-packages] dependenciesтАж
Traceback (most recent call last):
  File "/usr/local/Cellar/pipenv/2018.11.26_2/libexec/lib/python3.7/site-packages/pipenv/vendor/pexpect/expect.py", line 109, in expect_loop
    return self.timeout()
  File "/usr/local/Cellar/pipenv/2018.11.26_2/libexec/lib/python3.7/site-packages/pipenv/vendor/pexpect/expect.py", line 82, in timeout
    raise TIMEOUT(msg)
pexpect.exceptions.TIMEOUT: <pexpect.popen_spawn.PopenSpawn object at 0x105a17210>
searcher: searcher_re:
    0: re.compile('\n')

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/Cellar/pipenv/2018.11.26_2/libexec/bin/pipenv", line 11, in <module>
    load_entry_point('pipenv==2018.11.26', 'console_scripts', 'pipenv')()
  File "/usr/local/Cellar/pipenv/2018.11.26_2/libexec/lib/python3.7/site-packages/pipenv/vendor/click/core.py", line 764, in __call__
    return self.main(*args, **kwargs)
  File "/usr/local/Cellar/pipenv/2018.11.26_2/libexec/lib/python3.7/site-packages/pipenv/vendor/click/core.py", line 717, in main
    rv = self.invoke(ctx)
  File "/usr/local/Cellar/pipenv/2018.11.26_2/libexec/lib/python3.7/site-packages/pipenv/vendor/click/core.py", line 1137, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/usr/local/Cellar/pipenv/2018.11.26_2/libexec/lib/python3.7/site-packages/pipenv/vendor/click/core.py", line 956, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/usr/local/Cellar/pipenv/2018.11.26_2/libexec/lib/python3.7/site-packages/pipenv/vendor/click/core.py", line 555, in invoke
    return callback(*args, **kwargs)
  File "/usr/local/Cellar/pipenv/2018.11.26_2/libexec/lib/python3.7/site-packages/pipenv/vendor/click/decorators.py", line 64, in new_func
    return ctx.invoke(f, obj, *args, **kwargs)
  File "/usr/local/Cellar/pipenv/2018.11.26_2/libexec/lib/python3.7/site-packages/pipenv/vendor/click/core.py", line 555, in invoke
    return callback(*args, **kwargs)
  File "/usr/local/Cellar/pipenv/2018.11.26_2/libexec/lib/python3.7/site-packages/pipenv/vendor/click/decorators.py", line 17, in new_func
    return f(get_current_context(), *args, **kwargs)
  File "/usr/local/Cellar/pipenv/2018.11.26_2/libexec/lib/python3.7/site-packages/pipenv/cli/command.py", line 254, in install
    editable_packages=state.installstate.editables,
  File "/usr/local/Cellar/pipenv/2018.11.26_2/libexec/lib/python3.7/site-packages/pipenv/core.py", line 1992, in do_install
    skip_lock=skip_lock,
  File "/usr/local/Cellar/pipenv/2018.11.26_2/libexec/lib/python3.7/site-packages/pipenv/core.py", line 1221, in do_init
    pypi_mirror=pypi_mirror,
  File "/usr/local/Cellar/pipenv/2018.11.26_2/libexec/lib/python3.7/site-packages/pipenv/core.py", line 1068, in do_lock
    lockfile=lockfile
  File "/usr/local/Cellar/pipenv/2018.11.26_2/libexec/lib/python3.7/site-packages/pipenv/utils.py", line 649, in venv_resolve_deps
    c = resolve(cmd, sp)
  File "/usr/local/Cellar/pipenv/2018.11.26_2/libexec/lib/python3.7/site-packages/pipenv/utils.py", line 517, in resolve
    result = c.expect(u"\n", timeout=environments.PIPENV_INSTALL_TIMEOUT)
  File "/usr/local/Cellar/pipenv/2018.11.26_2/libexec/lib/python3.7/site-packages/pipenv/vendor/delegator.py", line 215, in expect
    self.subprocess.expect(pattern=pattern, timeout=timeout)
  File "/usr/local/Cellar/pipenv/2018.11.26_2/libexec/lib/python3.7/site-packages/pipenv/vendor/pexpect/spawnbase.py", line 341, in expect
    timeout, searchwindowsize, async_)
  File "/usr/local/Cellar/pipenv/2018.11.26_2/libexec/lib/python3.7/site-packages/pipenv/vendor/pexpect/spawnbase.py", line 369, in expect_list
    return exp.expect_loop(timeout)
  File "/usr/local/Cellar/pipenv/2018.11.26_2/libexec/lib/python3.7/site-packages/pipenv/vendor/pexpect/expect.py", line 119, in expect_loop
    return self.timeout(e)
  File "/usr/local/Cellar/pipenv/2018.11.26_2/libexec/lib/python3.7/site-packages/pipenv/vendor/pexpect/expect.py", line 82, in timeout
    raise TIMEOUT(msg)
pexpect.exceptions.TIMEOUT: <pexpect.popen_spawn.PopenSpawn object at 0x105a17210>
searcher: searcher_re:
    0: re.compile('\n')

рдкрд┐рдЫрд▓реА рдЯрд┐рдкреНрдкрдгреА рдХреЗ рдПрдХ рдкрд░рд┐рд╢рд┐рд╖реНрдЯ рдХреЗ рд░реВрдк рдореЗрдВ, pip lock рдЕрд▓рдЧ рд╕реЗ рдЪрд▓рд╛рдиреЗ рдореЗрдВ рдЙрдЪрд┐рдд рд╕рдордп рд▓рдЧрд╛, ~15 рд╕реЗрдХрдВрдб, рдкрд╣рд▓реА рдмрд╛рд░ pip install --skip-lock рдЪрд▓рд╛рдиреЗ рдХреЗ рдмрд╛рджред рддреЛ рд╢рд╛рдпрдж рд▓реЙрдХ рдХрд╛ рдкреЛрд╕реНрдЯ-рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдкреБрд░рд╛рдирд╛ рд╣реИ рдпрд╛ рдЕрдиреНрдпрдерд╛ рджреЛрд╖рдкреВрд░реНрдг рд╣реИред :)

FYI рдХрд░реЗрдВ рдореИрдВрдиреЗ рдкрд╛рдпрд╛ рдХрд┐ рдЯреЗрдВрд╕рд░рдлрд╝реНрд▓реЛ рдзреАрдореЗ/рд╕рдордп рд╕рдорд╛рдкреНрдд рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рд▓реЙрдХ рдХрд╛ рдЕрдкрд░рд╛рдзреА рд╣реИ, рдЕрдЧрд░ рд╡рд╣ рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ pipenv рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИ! (рдЕрднреА рднреА рдЗрд╕реЗ рдПрдХ рдкрд┐рдкреЗрдирд╡ рд╕рдорд╕реНрдпрд╛ рдорд╛рдиреЗрдВ ...)

Tensorflow рдХрдИ рдкреИрдХреЗрдЬреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ рдЬреЛ рдкрд┐рдкреЗрдирд╡ рдХреЛ рдореВрд▓ рд░реВрдк рд╕реЗ рдПрдХ рдмреЗрдХрд╛рд░ рдЙрдкрдХрд░рдг рдмрдирдиреЗ рдХрд╛ рдХрд╛рд░рдг рдмрди рд╕рдХрддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдореБрдЭреЗ рдЧреНрд░реБрдк рдкреНрд░реЛрдлрд╛рдЗрд▓рд┐рдВрдЧ рдХрд╛ рд╕реБрдЭрд╛рд╡ рдкрд╕рдВрдж рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдПрдХ рдЙрддреНрдХреГрд╖реНрдЯ рд╡рд┐рдЪрд╛рд░ рд╣реИред рдмрд╕ рдкреБрди: рдкреБрдирд░рд╛рд╡реГрддрд┐ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдкреАрдИрдкреА релремрем рдиреЗ рдкреВрд░реЗ рд╕реНрд░реЛрдд рдХреЛ рд▓реЛрдб рдХрд┐рдП рдмрд┐рдирд╛ рдПрдиреНрдпреВрдорд░реЗрдЯрд┐рдВрдЧ рдирд┐рд░реНрднрд░рддрд╛ (рдкреАрдкреАрдЖрдИ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ) рдХреЛ рд╕рдХреНрд╖рдо рдХрд┐рдпрд╛, рдЬреЛ рдорджрджрдЧрд╛рд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ: https://github.com/pypa/pipenv/issues/1914#issuecomment -457965038

@brandonrobertz рдЬреЛ рдореИрдВ рджреЗрдЦрддрд╛ рд╣реВрдВ, рдирд┐рд░реНрднрд░рддрд╛рдУрдВ рдХреЗ рд╕рднреА рдкреИрдХреЗрдЬреЛрдВ рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдирд╛ рд╡рд╣ рдЬрдЧрд╣ рд╣реИ рдЬрд╣рд╛рдВ рдЕрдзрд┐рдХрддрд░ рд╕рдордп рдмрд┐рддрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рдХреА рдкреБрд╖реНрдЯрд┐ рдкрд╣рд▓реЗ рднреА рд╣реЛ рдЪреБрдХреА рд╣реИред

рдЗрд╕реЗ рдХреИрд╕реЗ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░реЗрдВ:

  • рд▓реЙрдХрд┐рдВрдЧ рд╕рдХреНрд╖рдо рдХреЗ рд╕рд╛рде рдПрдХ рдирдпрд╛ Pipfile рдФрд░ рдЙрд╕рдореЗрдВ scipy (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП) рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ
  • рд▓реЙрдХрд┐рдВрдЧ рдкреВрд░реНрдг рд╣реЛрдиреЗ рддрдХ рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗрдВред (рдореЗрд░реА рдорд╢реАрди рдкрд░ рд▓рдЧрднрдЧ 5 рдорд┐рдирдЯ рд▓рдЧрддреЗ рд╣реИрдВ)
  • Pipfile.lock рдирд┐рдХрд╛рд▓реЗрдВ
  • pipenv lock рдЪрд▓рд╛рдПрдВ - рдЕрдм рд▓реЙрдХ рдХрд░рдиреЗ рдореЗрдВ рдмрд╣реБрдд рдХрдо рд╕рдордп рд▓рдЧреЗрдЧрд╛ (рдореЗрд░реА рдорд╢реАрди рдкрд░ 6 рд╕реЗрдХрдВрдб), рдХреНрдпреЛрдВрдХрд┐ рд╕рднреА рдкреИрдХреЗрдЬ рдкрд╣рд▓реЗ рд╣реА рдбрд╛рдЙрдирд▓реЛрдб рд╣реЛ рдЪреБрдХреЗ рд╣реИрдВ рдФрд░ рдкрд┐рдкреЗрдирд╡ рдХреИрд╢ рдореЗрдВ рд░рдЦреЗ рдЧрдП рд╣реИрдВ рдЬреЛ рдЖрдорддреМрд░ рдкрд░ ~/.cache/pipenv

рдпрд╣рд╛рдБ Dockerfile рдореИрдВ рдЗрд╕рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:

FROM python:3.6
ENV WORKDIR=/work/
WORKDIR /work/
RUN python3 -m pip install --upgrade pip
RUN python3 -m pip install pipenv
RUN PIPENV_SKIP_LOCK=true pipenv install scipy
RUN date
RUN pipenv lock
RUN date
RUN rm Pipfile.lock
RUN pipenv lock
RUN date

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

рдХреБрдЫ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдпрд╣ рд╢рд╛рдпрдж рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛, рдЦрд░рд╛рдм рдЧреБрдгрд╡рддреНрддрд╛ рдФрд░ рдЦрд░рд╛рдм рдкреНрд░рдерд╛рдУрдВ (setup.py рдпрд╛ рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ.txt рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рдиреЗ) рдХреЗ рдХрд╛рд░рдгред рд▓реЗрдХрд┐рди рдЪреВрдВрдХрд┐ рдХреБрдЫ рдкреНрд░рдореБрдЦ рдЕрдкрд░рд╛рдзреА рдмрд╣реБрдд рд▓реЛрдХрдкреНрд░рд┐рдп рдкреБрд╕реНрддрдХрд╛рд▓рдп (рдЯреЗрдВрд╕рд░рдлреНрд▓реЛ, numpy) рдкреНрд░рддреАрдд рд╣реЛрддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рд╕реБрдкрд░ рд╕реНрд▓реЛ рдкреНрд░реЛрд╕реЗрд╕ рдореЗрдВ рдлреЙрд▓рдмреИрдХ рдХреЗ рд╕рд╛рде рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рд░рд╛рд╕реНрддрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рдХреНрдпрд╛ рдЖрдк рдореБрдЭреЗ рдЙрд╕ рдХреЛрдб рдХреЛ рдЦреЛрдЬрдиреЗ рдХреА рджрд┐рд╢рд╛ рдореЗрдВ рдЗрдВрдЧрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ? рдореИрдВ рдЗрд╕реЗ рдПрдХ рдХрд╛рдВрдЯреЗ рдореЗрдВ рд╕рдорд╛рдирд╛рдВрддрд░ рдХрд░рдиреЗ рдкрд░ рдПрдХ рдЫреБрд░рд╛ рд▓реЗ рд╕рдХрддрд╛ рдерд╛ред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ https://github.com/pandas-dev/pandas/ рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ? рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рднреА рд╕рдордп рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдмрд╛рдд рд╣реИред

рд╣рд╛рд▓рд╛рдВрдХрд┐ pytest рднреА рдПрдХ рдореБрджреНрджрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ:\

рдореБрдЭреЗ рдРрд╕рд╛ рдирд╣реАрдВ рд▓рдЧрддрд╛, рдпрд╣ рдореЗрд░реА рдорд╢реАрди рдкрд░ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд╕рдорд╕реНрдпрд╛ рдЙрд╕рд╕реЗ рдХрд╣реАрдВ рдЕрдзрд┐рдХ рд╕рд╛рдорд╛рдиреНрдп рд▓рдЧрддреА рд╣реИ

рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рд╕рдорд╕реНрдпрд╛ рдкрд┐рд▓рд┐рдВрдЯ рд▓рдЧрддреА рд╣реИред pipenv install pylint рдЪрд▓рд╛рдиреЗ рдкрд░ рдпрд╣ рд╣рдореЗрд╢рд╛ рд▓реЙрдХ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ https://github.com/pypa/pipenv/issues/2284#issuecomment -569457752 рджреЗрдЦреЗрдВ

рдореБрдЭреЗ рдЕрдкрдиреА рд╕рднреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИред
рдЗрд╕рдХрд╛ рдХрд╛рд░рдг рдкрд╛рдЗрд▓рд┐рдВрдЯ рд▓рдЧрддрд╛ рд╣реИред
рдкрд┐рдкреЗрдирд╡ (рдкрд╛рдЗрдк) рдЗрд╕реЗ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рд╕реНрдерд╛рдкрд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд▓реЙрдХрд┐рдВрдЧ рд╣рдореЗрд╢рд╛ рдХреЗ рд▓рд┐рдП рд▓реЗрддрд╛ рд╣реИ!
pipenv, version 2018.11.26

рдиреНрдпреВрдирддрдо рдХрд╛рд░реНрдп рдЙрджрд╛рд╣рд░рдг

djbrown@DESKTOP-65P6D75:~$ mkdir test
djbrown@DESKTOP-65P6D75:~$ cd test
djbrown@DESKTOP-65P6D75:~/test$ pipenv install --dev pylint --verbose
Creating a virtualenv for this projectтАж
Pipfile: /home/djbrown/test/Pipfile
Using /usr/bin/python3 (3.6.9) to create virtualenvтАж
та╕ Creating virtual environment...Already using interpreter /usr/bin/python3
Using base prefix '/usr'
New python executable in /home/djbrown/.local/share/virtualenvs/test-PW-auWy_/bin/python3
Also creating executable in /home/djbrown/.local/share/virtualenvs/test-PW-auWy_/bin/python
Installing setuptools, pip, wheel...done.

тЬФ Successfully created virtual environment!
Virtualenv location: /home/djbrown/.local/share/virtualenvs/test-PW-auWy_
Creating a Pipfile for this projectтАж
Installing pylintтАж
таЛ Installing...Installing 'pylint'
$ ['/home/djbrown/.local/share/virtualenvs/test-PW-auWy_/bin/pip', 'install', '--verbose', '--upgrade', 'pylint', '-i', 'https://pypi.org/simple']
Adding pylint to Pipfile's [dev-packages]тАж
тЬФ Installation Succeeded
Pipfile.lock not found, creatingтАж
Locking [dev-packages] dependenciesтАж
таЗ Locking...

рд╣рдо рдЬрд╛рдЧрд░реВрдХ рд╣реИрдВ рдФрд░ рдЗрд╕ рд╡рд┐рд╖рдп рдХреЛ рдЯреНрд░реИрдХ рдХрд░рдиреЗ рдореЗрдВ рдХрдИ рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реИрдВред рджреЗрдЦреЗрдВ #1785 #1886 #1891 рдФрд░ рдкреАрдЖрд░ #1896

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

рдЕрдиреНрдп рдореБрджреНрджреЛрдВ рдореЗрдВ рдЯреНрд░реИрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдВрджред

4 рдЕрдиреНрдп рдореБрджреНрджреЛрдВ рдореЗрдВ рд╕реЗ 3 рдЕрдм рдмрдВрдж рд╣реЛ рдЧрдП рд╣реИрдВ рдФрд░ рд╢реЗрд╖ рдиреЗ 2018 рдХреЗ рдмрд╛рдж рд╕реЗ рдХреЛрдИ рдЧрддрд┐рд╡рд┐рдзрд┐ рдирд╣реАрдВ рджреЗрдЦреА рд╣реИред рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдЕрднреА рднреА рдмрдиреА рд╣реБрдИ рд╣реИ, рддреЛ рд╢рд╛рдпрдж рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓рдирд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдЪрд╛рд░ рд╣реЛрдЧрд╛?

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

рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдпрд╣ рдЕрднреА рднреА рдкрд╣рд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рд╣реА рд╣реИ, рдЬреЛ рдЕрдм рдЕрдзрд┐рдХрд╛рдВрд╢ рдкреИрдХреЗрдЬ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП?

рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдореБрдЭреЗ рдХрдо рд╕реЗ рдХрдо рд╣рд░ рдмрд╛рд░ dlib рдХреЗ рд▓рд┐рдП рдкрд╣рд┐рдпрд╛ рдмрдирд╛рдирд╛ рд╣реЛрдЧрд╛, рдЬреЛ рдХрд┐ рднрдпрд╛рдирдХ рд╣реИред

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

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

virtualenv + pip ( requirements.txt ) рдЕрдм рдЙрддреНрдкрд╛рдж рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдХреЗ рд▓рд┐рдП рднреА рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ; рдФрд░ рдХрд┐рд╕реА рднреА рдШрдЯрдирд╛ рдореЗрдВ, рдХреЛрдИ рдЗрди рджрд┐рдиреЛрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рддреИрдпрд╛рд░ рдХрдВрдЯреЗрдирд░ рдХреЛ рддреИрдирд╛рдд рдХрд░рддрд╛ рд╣реИ; рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкрд┐рдкреЗрдирд╡ рдореЗрдВ рдЖрдиреЗ рдХреЗ рдмрд╛рдж, рдореБрдЭреЗ рдЕрдм рдЗрд╕рдХрд╛ рдорддрд▓рдм рдирд╣реАрдВ рджрд┐рдЦ рд░рд╣рд╛ рд╣реИред

рдХреГрдкрдпрд╛ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓реЗрдВред
рдЕрдиреНрдпрдерд╛ рдкрд┐рдкреЗрдирд╡ рдХрднреА рднреА рд╕рдВрджрд░реНрдн рдкреИрдХреЗрдЬрд┐рдВрдЧ рдЙрдкрдХрд░рдг рдирд╣реАрдВ рд╣реЛрдЧрд╛

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

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

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

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

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

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

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