Virtualenv: [рдЖрд░рдПрдлрд╕реА] рд╡рд░реНрдЪреБрдЕрд▓рдПрдиреНрд╡ рдХреА рдЕрдЧрд▓реА рдкреАрдврд╝реА

рдХреЛ рдирд┐рд░реНрдорд┐рдд 10 рдЬреВрди 2019  ┬╖  37рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: pypa/virtualenv

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

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

рдкрд░рд┐рдпреЛрдЬрдирд╛ рд▓рдХреНрд╖реНрдп

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

рдирд┐рдпреЛрдЬрд┐рдд рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ

  • рдпреВрдирд┐рд╡рд░реНрд╕рд▓ рдкреАрдкреАрдЖрдИ рд╡реНрд╣реАрд▓ ,
  • рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо - рд╡рд┐рдВрдбреЛрдЬрд╝, рд╕рднреА рдпреВрдирд┐рдХреНрд╕ рдлреНрд▓реЗрд╡рд░, рдореИрдХреЛрдЬрд╝ред
  • рдЕрдзрд┐рдХрд╛рдВрд╢ рд╕рдорд░реНрдерд┐рдд рдЕрдЬрдЧрд░реЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди , рд╕рдорд░реНрдерд┐рдд рдкрд╛рдпрдерди рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдкреВрд▓: python2.7 , python3.4 , python3.5 , python3.5 , pypy3 , pypy2 (рдХрд┐рд╕реА рдмрд┐рдВрджреБ рдкрд░ рдЖрдпрд░рдирдкреАрдерди рдФрд░ рдЬреНрдпреЛрдерди рдХреА рдЙрдореНрдореАрдж - рдХрд┐рд╕реА рдЕрдиреНрдп рдХрд╛ рд╣рдореЗрдВ рд╕рдорд░реНрдерди рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП?)
  • рд╕рдорд░реНрдерди рдХреА рджреЛ рд╕рд╛рд▓ рдХреА рдЫреВрдЯ рдЕрд╡рдзрд┐ : рд╣рдорд╛рд░рд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдЕрдкрдиреЗ рдИрдУрдПрд▓ рд╕реЗ рджреЛ рдФрд░ рд╡рд░реНрд╖реЛрдВ рддрдХ рджреБрднрд╛рд╖рд┐рдпрд╛ рд╕рдорд░реНрдерди рдХреЛ рдмрдирд╛рдП рд░рдЦреЗрдЧрд╛: рд╡рд░реНрдЪреБрдЕрд▓ рд╡рд╛рддрд╛рд╡рд░рдг рдмрдирд╛рдирд╛ рдЗрддрдирд╛ рдмреБрдирд┐рдпрд╛рджреА рд╣реИ рдХрд┐ рдпрд╣ рдкреИрдХреЗрдЬ рдЖрдЦрд┐рд░реА рд╣реИ рдЬреЛ рд╕рдВрдЧрддрддрд╛ рдХреЛ рдЫреЛрдбрд╝ рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕ рд╕рдВрдХреНрд░рдордгрдХрд╛рд▓реАрди рджреЛ рд╡рд░реНрд╖реЛрдВ рдХреА рдЕрд╡рдзрд┐ рдХреЗ рджреМрд░рд╛рди, рд╣рдо рдмрдЧ рдлрд┐рдХреНрд╕ рдФрд░ рд╕рдВрдЧрддрддрд╛ рдХреА рдЧрд╛рд░рдВрдЯреА рджреЗрддреЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдирдИ рд╕реБрд╡рд┐рдзрд╛ рдХрд╛ рд╕рдорд░реНрдерди рдПрдХ рдмреЗрд╣рддрд░реАрди рдкреНрд░рдпрд╛рд╕ рд╣реИред
  • рд▓рдХреНрд╖реНрдп рдЕрдЬрдЧрд░ рдХреЛ
  • рдмрд┐рд▓реНрдЯ-рдЗрди рд╡реЗрдирд╡ рдХреЛ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рджреЗрдВ : рдпрджрд┐ рд▓рдХреНрд╖реНрдп рдЕрдЬрдЧрд░ рдореЗрдВ рд╡реЗрдирд╡ рд╣реИ рддреЛ рд╣рдо рдЙрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкрд░реНрдпрд╛рд╡рд░рдг рдмрдирд╛рдПрдВрдЧреЗ (рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж рд╣рдорд╛рд░реЗ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдЕрдиреНрдп рдЧрд╛рд░рдВрдЯреА рдХреЛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрд╕ рдкрд░ рдмрд╛рдж рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХрд░реЗрдВ)
  • рдмреАрдЬ рдкреИрдХреЗрдЬреЛрдВ рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ (рдЖрднрд╛рд╕реА рд╡рд╛рддрд╛рд╡рд░рдг рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рдмрд╛рдж рдпрд╣ рдкреИрдХреЗрдЬ рдкрд╣рд▓реЗ рд╣реА рд╕реНрдерд╛рдкрд┐рдд рд╣реЛ рдЬрд╛рдПрдЧрд╛):

    • рд╣рдо рдкреАрдИрдкреА-508 рдкреНрд░рд╛рд░реВрдк рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ,
    • рдирд╡реАрдирддрдо рдорд┐рд▓рд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП PyPi рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреА рдХреНрд╖рдорддрд╛, рдпрд╛ рдХреЗрд╡рд▓ рдСрдлрд╝рд▓рд╛рдЗрди (рдРрд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдкреИрдХреЗрдЬ рдСрдлрд╝рд▓рд╛рдЗрди рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдП)
    • рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ pip , setuptools рдФрд░ wheel рдмреАрдЬ рдкреИрдХреЗрдЬ рд╣реИрдВ (рдпреЗ рдкреИрдХреЗрдЬ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдСрдлрд╝рд▓рд╛рдЗрди рд╡реНрд╣реАрд▓ рдкреИрдХреЗрдЬ рдХреЗ рд░реВрдк рдореЗрдВ рдЗрдВрдЬреЗрдХреНрдЯ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ)
  • рдЗрдВрдЯрд░рдлреЗрд╕ :

    • рд╕реАрдПрд▓рдЖрдИ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ ( python -m virtualenv , virtualenv )
    • рд╡реНрд╣реАрд▓ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ (env PYTHONPATH=/t/path/to/virtualenv.whl python -m virtualenv ) - рдпреВрдирд┐рд╡рд░реНрд╕рд▓ рд╡реНрд╣реАрд▓,
    • рдЬрд╝рд┐рдкреИрдк рдЗрдВрдЯрд░рдлрд╝реЗрд╕,
    • рдПрдкреАрдЖрдИ рдЗрдВрдЯрд░рдлрд╝реЗрд╕: import virtualenv; virtualenv.create("target")
  • рд╢реЗрд▓ рд╕рдорд░реНрдерди - рд╕рдХреНрд░рд┐рдпрдг/рдирд┐рд╖реНрдХреНрд░рд┐рдп рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдФрд░ рд╢реАрдШреНрд░ рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ - рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╣рдо рдЙрддреНрдкрдиреНрди рдХрд░рддреЗ рд╣реИрдВ:

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

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

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

Stdlib venv . рд╕реЗ рдЕрдВрддрд░

рд╣рдо рдорд╛рдирдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╡реЗрдирд╡ рд╕реЗ рдХрд┐рд╕ рдкреНрд░рдХрд╛рд░ рднрд┐рдиреНрди рд╣реИрдВ? рд╡рд░реНрдЪреБрдЕрд▓рдПрдиреНрд╡ рдкреИрдХреЗрдЬ рдХреА рдпреЛрдЬрдирд╛ рд╣реИ:

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

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

рдпрджрд┐ рдЖрдк рд╕рд╣рдордд рд╣реИрдВ рддреЛ PyPy рдХреЗ рд╕рджрд╕реНрдп (рдФрд░ рдЬрдирддрд╛ рдХреГрдкрдпрд╛ рднреА) рдЕрдкрдиреЗ рд╡рд┐рдЪрд╛рд░ рд╕рд╛рдЭрд╛ рдХрд░реЗрдВ рдпрд╛ рдкреНрд▓рд╕ рд╡рдиред @pfmoore @dstufft @di @pradyunsg @cjerdonek @ncoghlan @jaraco @techalchemy @uranusjr @pganssle @ benoit-pierre @dholth @lkollar @takluyver @zooba

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

рдЗрд╕рд▓рд┐рдП рдкреБрдирд░реНрд▓реЗрдЦрди рдПрдХ рдРрд╕реА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдЖ рдЧрдпрд╛, рдЬрд╣рд╛рдВ рдореИрдВ рд╕рд╣рдЬ рдорд╣рд╕реВрд╕ рдХрд░рддрд╛ рд╣реВрдВ рдХрд┐ рд▓реЛрдЧ рдЗрд╕реЗ рджреЗрдЦ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдХреБрдЫ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджреЗ рд░рд╣реЗ рд╣реИрдВред рдЕрдЧрд░ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЗрд╕рдореЗрдВ рдорджрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдЦрд╛рд▓реА рд╕рдордп рд╣реИ рддреЛ рдХреГрдкрдпрд╛ рдореБрдЭрд╕реЗ рд╕рдВрдкрд░реНрдХ рдХрд░реЗрдВ; рдпреЛрдЬрдирд╛ рдЗрд╕реЗ рдорд╣реАрдиреЗ рдХреЗ рдЕрдВрдд рддрдХ рдЬрд╛рд░реА рдХрд░рдиреЗ рдХреА рд╣реИ рдиреЛрдЯ https://github.com/pypa/virtualenv/milestone/7 рдЕрднреА рднреА рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдореВрд▓ рд╡рд┐рдЪрд╛рд░ рд╣реИред

рдкреБрдирд╢реНрдЪ. https://github.com/pypa/virtualenv/pull/1481/ рдХреЗ рддрд╣рдд рдПрдХ рдлреАрдбрдмреИрдХ рдкреАрдЖрд░ рдмрдирд╛рдпрд╛

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

рдПрдХ рдорд╣рддреНрд╡рд╛рдХрд╛рдВрдХреНрд╖реА рдкреНрд░рд╕реНрддрд╛рд╡!

ini рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╕рдорд░реНрдерди (рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рдШрд░ рдореЗрдВ рдореМрдЬреВрдж рдПрдХ рд╡реИрд╢реНрд╡рд┐рдХ рдЖрдИрдПрдирдЖрдИ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди)

рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо-рдкрд╕рдВрджреАрджрд╛ рд╕реНрдерд╛рдиреЛрдВ рдореЗрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдкрдбреАрд░ (рдпрд╛ рд╕рдорд╛рди) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред

appdirs рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдПрдХ рд╡рд┐рдХрд▓реНрдк рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рддрдм рд╣рдореЗрдВ рдЕрдкрдиреЗ рдкреИрдХреЗрдЬ рдореЗрдВ рд╕рд╛рдорд╛рди рдмреЗрдЪрдиреЗ рдХрд╛ рд╡реНрдпрд╡рд╕рд╛рдп рд╢реБрд░реВ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдирд┐рд╖реНрдкрдХреНрд╖ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕рдореЗрдВ рд╕реЗ 70% рдкрд╣рд▓реЗ рд╣реА рдХрд┐рдпрд╛ рдЬрд╛ рдЪреБрдХрд╛ рд╣реИ, рдмрд╕ рдПрдХ рдмреЗрд╣рддрд░ рдкреБрдирд░реНрдЧрдарди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред

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

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

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

PYTHONPATH=/t/path/to/virtualenv.whl python -m virtualenv

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

@gaborbernat рдЖрдкрдХрд╛ рдорддрд▓рдм -p рд╡рд┐рдХрд▓реНрдк рд╕реЗ рд╣реИ? рдореБрдЭреЗ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИрдВред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдареАрдХ рдЙрд╕реА рддрд░рд╣ рдХреА рд╕реНрдерд┐рддрд┐ рд╣реИ рдЬрд┐рд╕рдореЗрдВ zipapps рдХреЛ рдорджрдж рдХрд░рдиреЗ рдХрд╛ рдЗрд░рд╛рджрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдХрд┐рд╕реА рдиреЗ рднреА рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕реЗ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд╡рд┐рд╡рд░рдг рдХреЛ рдЦрддреНрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдХреБрдЫ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИред

@pradyunsg рд╕реЗ :

рдЙрд╣, рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реЛрдЧрд╛ рдХрд┐ рд╣рдо virtualenv рдХреЗ рдХрд┐рд╕реА рднреА рдЕрддрд┐рд░рд┐рдХреНрдд рдкреИрдХреЗрдЬ рдкрд░ рдирд┐рд░реНрднрд░ рдирд╣реАрдВ рд░рд╣ рд╕рдХрддреЗ рд╣реИрдВ

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдХреЗ рд░реВрдк рдореЗрдВ @gaborbernat рдХрд╣рд╛, -p рд╡рд┐рдХрд▓реНрдк рд╢рд╛рдпрдж рдХрд╛ рддрд╛рддреНрдкрд░реНрдп рд╣реИ рдХрд┐ :-( рд▓реЗрдХрд┐рди рдореИрдВ рдЖрд╢реНрдЪрд░реНрдп рдХрд░ рдХрд╛рд░рдг рд╣реИ рдХрд┐ рд╣рдо "рдкрд░ рдкрд╣рд┐рдпрд╛ рдЬрд░реВрд░рдд PYTHONPATH рдХреЗ рд╕рд╛рде рд╣реА рд╡рд┐рдХрд▓реНрдк" zipapp - рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдкрд╣рд┐рдпреЛрдВ рдХрд┐ рджрд┐рдП рдЧрдП PYTHONPATH рдкрд░ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдЕрд╕рдорд░реНрдерд┐рдд рд╣реИрдВ (рд╣рдо рдЙрдиреНрд╣реЗрдВ рд╡рд░реНрдЪреБрдЕрд▓рдПрдиреНрд╡ рдХреЗ рднреАрддрд░ рдЖрдВрддрд░рд┐рдХ рд░реВрдк рд╕реЗ рд╕рд╛рдорд╛рдиреНрдп рдкрд╛рдЗрдк рдмреВрдЯрд╕реНрдЯреНрд░реИрдкрд┐рдВрдЧ рдХрд╛рд░рдгреЛрдВ рдХреЗ рдХрд╛рд░рдг рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ - рдкреАрдЖрдИрдкреА рд╕рдм рдХреБрдЫ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЕрдзрд┐рдХ рдЕрдкрд╡рд╛рдж рд╣реИ ;-))

рд╕рдорд░реНрдерди рдХреА рджреЛ рд╕рд╛рд▓ рдХреА рдЫреВрдЯ рдЕрд╡рдзрд┐

рд╣рдореНрдо...

рдпрд╣рд╛рдВ рдореЗрд░реА рдЪрд┐рдВрддрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЗрд╕рдХреЗ рдиреЗрдЯрд╡рд░реНрдХ рдкреНрд░рднрд╛рд╡ рд╕реЗ рдкрд╛рдпрдерди рдХреЗ рдирдП рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЛ рдЕрдкрдирд╛рдиреЗ рдХреА рдЧрддрд┐ рдзреАрдореА рд╣реЛ рд╕рдХрддреА рд╣реИ рдФрд░ рд╕рдорд░реНрдерд┐рдд рдкрд╛рдпрдерди рдХреА рд╕рдВрдЦреНрдпрд╛ рдХрд╛ рд╕рдВрдпреЛрдЬрди рд╡рд┐рд╕реНрдлреЛрдЯ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред CPython 3.9 рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ-рдЕрд▓рдЧ рд░рд┐рд▓реАрдЬрд╝ рддрд╛рд▓ рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░ рд░рд╣рд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП 2 рд╕рд╛рд▓ рдФрд░ рднреА рдЕрдзрд┐рдХ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдХреБрдЫ рд░рд┐рд▓реАрдЬрд╝ рдХреЛрд░ рдбреЗрд╡рд▓рдкрд░реНрд╕ рд╕реЗ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред

рдЙрд╕ рдиреЗ рдХрд╣рд╛, рдореИрдВ рдЗрд╕реЗ рдЕрд╡рд░реБрджреНрдз рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛, рд▓реЗрдХрд┐рди рдЬреНрдпрд╛рджрд╛рддрд░ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдореИрдВ рдЖрд╡рд╛рдЬ рдЙрдард╛рдКрдВ рдХрд┐ рдореИрдВ рдРрд╕рд╛ рдХрд░рдиреЗ рдХрд╛ рдЗрдЪреНрдЫреБрдХ рдирд╣реАрдВ рд╣реВрдВред

(рдХрд┐рд╕реА рдмрд┐рдВрджреБ рдкрд░ рдЖрдпрд░рдирдкреАрдерди рдФрд░ рдЬреНрдпреЛрдерди рдХреА рдЙрдореНрдореАрдж - рдХрд┐рд╕реА рдЕрдиреНрдп рдХреЛ рд╣рдореЗрдВ рд╕рдорд░реНрдерди рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдП?)

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

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЖрдИрдПрдирдЖрдИ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╕рдорд░реНрдерди (рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рдШрд░ рдореЗрдВ рдореМрдЬреВрдж рдПрдХ рд╡реИрд╢реНрд╡рд┐рдХ рдЖрдИрдПрдирдЖрдИ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди),

рдореИрдВ рдкрдХреНрд╖рдкрд╛рддреА рд╣реВрдВ - рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕реЗ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп TOML рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред :)

(рдореИрдВрдиреЗ рдЕрднреА рддрдХ рдЗрд╕реЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдВрд╕рд╛рдзрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдореБрдЭреЗ рдХрд╣реАрдВ рдЬрд╛рдирд╛ рд╣реИ - рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рдорд╣рд╛рди рд╕рдордЧреНрд░ рд▓рдХреНрд╖реНрдп рдХреА рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ!)

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

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

рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдореИрдВ рдЗрд╕рдХреЗ рд▓рд┐рдП рддрд░реНрдХ рдХреЛ рд╕рдордЭрддрд╛ рд╣реВрдВред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ virtualenv рдХреЗ рд░рдЦрд░рдЦрд╛рд╡ рдХреЛ рдХрдард┐рди рдмрдирд╛ рджреЗрдЧрд╛ рдФрд░ рдпрд╣ рдЕрдВрддрд┐рдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рд╕рдордЭрдирд╛ рдХрдард┐рди рдмрдирд╛ рджреЗрдЧрд╛ред setuptools рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдмрдВрджрд░ рдкреИрдЪ рдЬрд╛рд░реА рд░рдЦрдиреЗ рдХреЗ рдмрдЬрд╛рдп distutils рдХреЛ рдЕрд╡рд╢реЛрд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдХреЗ рджреВрд╕рд░реА рддрд░рдл рдЬрд╛ рд░рд╣рд╛ рд╣реИред

@pganssle рд╕реНрдХреЛрдк рдЕрд▓рдЧ рд╣реИ рдФрд░ рдкреНрд░реЙрдмреНрд▓рдо рд╕реНрдкреЗрд╕ рднреАред virtualenv рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЕрдХреНрд╕рд░ рд╕рд┐рд╕реНрдЯрдо рд╕рд┐рд╕реНрдЯрдо рдкреИрдХреЗрдЬ рдкрд░ рдЕрддрд┐рд░рд┐рдХреНрдд рдмрд╛рдзрд╛рдПрдВ рдбрд╛рд▓рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╡реЗ рдмрдВрджрд░ рдЗрди рдХрд╛ рдкрд╛рд▓рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд╡реЗрдирд╡ рдХреЛ рдкреИрдЪ рдХрд░рддреЗ рд╣реИрдВред рдЗрди рд╕рднреА рдХреЛ рджреЛрд╣рд░рд╛рдирд╛ рдХрдард┐рди рд╣реЛрдЧрд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП #1362 рджреЗрдЦреЗрдВред

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

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

рдПрдлрдбрдмреНрд▓реНрдпреВрдЖрдИрдбрдмреНрд▓реНрдпреВ рдореИрдВ рдЕрдкрдиреА рдкреБрд░рд╛рдиреА рдкреБрдирд░реНрд▓реЗрдЦрди рд╡рд░реНрдЪреБрдЕрд▓рдПрдиреНрд╡ рд╢рд╛рдЦрд╛ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреА рдЕрдиреБрд╢рдВрд╕рд╛ рдХрд░рддрд╛ рд╣реВрдВ, рдЗрд╕рдиреЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЗрдирдореЗрдВ рд╕реЗ рдмрд╣реБрдд рд╕реА рдЪреАрдЬреЗрдВ рдХреА рд╣реИрдВред

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

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

697 -- @dstufft рдХрд╛ рдкреБрд░рд╛рдирд╛ PR

PYTHONPATH=/t/path/to/virtualenv.whl python -m virtualenv

рдУрдЯреАрдУрдПрдЪ, рд╣рдореЗрдВ рд╢рд╛рдпрдж рдРрд╕рд╛ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП - https://www.python.org/dev/peps/pep-0427/#is -it-possible-to-import-python-code-directly-from- рдПрдХ рдкрд╣рд┐рдпрд╛ рдлрд╝рд╛рдЗрд▓

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

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

1 рд▓реЗрдХрд┐рди рдореИрдВ рдХрд┐рд╕реА рднреА рдЬрдЯрд┐рд▓ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рд╕реЗ рдмрдЪреВрдВрдЧрд╛ - рдЙрд╕ рдкрд╣рд┐рдпреЗ рд╕реЗ рдкрд╛рдЗрдк рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрде рдкрд░ рдПрдХ рдкрд╣рд┐рдпрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдареАрдХ рд╣реЛрдиреЗ рдХреА рдХрд╛рдлреА рдЧрд╛рд░рдВрдЯреА рд╣реИред рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ рд╕рдорд╕реНрдпрд╛рдПрдБ рд╣реЛ рд╕рдХрддреА рд╣реИрдВ рдпрджрд┐ рдЖрдк, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЗрд╕ рддрд░рд╣ рдХреЗ рдкрд╣рд┐рдпреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрдВрдЯрд░рдиреЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЬреИрд╕рд╛ рдХрд┐ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рд░реНрдЯрд┐рдлрд┐рдХреЗрдЯ рдХреЛ рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдлрд╝рд╛рдЗрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдЕрдкрдиреЗ рдПрдореНрдмреЗрдбреЗрдб рд╕рд░реНрдЯрд┐рдлрд┐рдХреЗрдЯ рдмрдВрдбрд▓ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ (рд▓реЗрдХрд┐рди рдореИрдВ рдЧрд▓рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реВрдВ, рдЗрд╕рд╕реЗ рдореБрдЭреЗ рдХрднреА рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реБрдИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ get-pip.py рдЗрд╕ рдмрд┐рдВрджреБ рдХреЛ рд╕рдВрдмреЛрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдкрд╣рд┐рдпрд╛ рд╕реЗ рдкреНрд░рдорд╛рдг рдкрддреНрд░ рдирд┐рдХрд╛рд▓рддрд╛ рд╣реИред

рдХрд┐рд╕реА рднреА рдХрд╛рд░рдг рд╕реЗ рд╣рдо рдкрд╛рдЗрдк рдХреЛ zipapp рд░реВрдк рдореЗрдВ рд╢рд┐рдк рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ? рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдВ, рдЗрд╕ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╕реЗ рдмрдЪрдирд╛ рд╣реЛрдЧрд╛, рдФрд░ zipapp рдХреЛ рдЕрдЬрдЧрд░ 2.7 рдХреЗ рд╕рд╛рде рд╕рдорд░реНрдерд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ

@gaborbernat рдХреНрдпрд╛ рдЖрдкрдиреЗ рдХреЛрд╢рд┐рд╢ рдХреА рд╣реИ? рдХреНрдпрд╛ рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ? рдпрджрд┐ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдЙрд▓реНрд▓рд┐рдЦрд┐рдд рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╡рд┐рдВрдбреЛрдЬрд╝ рдкрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рддреЛ рдореБрдЭреЗ рдХреЛрдИ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдЪрд┐рдВрддрд╛ рдирд╣реАрдВ рд╣реИ рд▓реЗрдХрд┐рди @uranusjr рдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╣реЛрдЧреАред рдореЗрд░реА рдХреЗрд╡рд▓ рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдВ @dstuff рдХреЗ рдЕрдиреБрд░реВрдк рд╣реИрдВ рдЬреЛ рдХрд╣рдирд╛ рд╣реИ - рд╕рд░рд▓ рдмреЗрд╣рддрд░ рд╣реИ

рдХрд┐рд╕реА рднреА рдХрд╛рд░рдг рд╕реЗ рд╣рдо рдЬрд╝рд┐рдк рдХреЛ рдЬрд╝рд┐рдк рдХреЗ рд░реВрдк рдореЗрдВ рдХреНрдпреЛрдВ рдирд╣реАрдВ рднреЗрдЬрддреЗ?

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

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

рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣, рдРрд╕рд╛ рдирд╣реАрдВ рд╣реЛрдиреЗ рдХреЗ рдореБрдЦреНрдп рдХрд╛рд░рдг рд╣реИрдВ:

  1. рдпрд╣ рдХрд┐рд╕реА рдиреЗ рдирд╣реАрдВ рд╕реЛрдЪрд╛ред
  2. рдЗрд╕реЗ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рдХреЗ рдкрд╛рд╕ рд╕рдордп/рдкреНрд░реЗрд░рдгрд╛ рдирд╣реАрдВ рдереАред
  3. рд╡рд░реНрддрдорд╛рди рджреГрд╖реНрдЯрд┐рдХреЛрдг рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдФрд░ рддрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдбрд╝реА рдордЫрд▓рд┐рдпрд╛рдБ рд╣реИрдВред

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

рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рд╣рдореЗрдВ рдпрд╣рд╛рдВ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ - рд╡рд░реНрдЪреБрдЕрд▓рдПрдиреНрд╡ рд╕реНрд╡рдпрдВ рдЖрдИрдЖрдИрдЖрд░рд╕реА рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╛рдЗрдк рд╡реНрд╣реАрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдареАрдХ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЬреИрд╕рд╛ рдХрд┐ @pfmoore рдиреЗ рдХрд╣рд╛, рдХреЗрд╡рд▓ "рдЕрддрд┐рд░рд┐рдХреНрдд" рдЪреАрдЬ рдЬреЛ get-pip.py рдХрд░рддреА рд╣реИ рд╡рд╣ рд╣реИ рдкреНрд░рдорд╛рдгрдкрддреНрд░реЛрдВ рдХреЛ рдЕрдирдкреИрдХ рдХрд░рдирд╛ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдПрдХ рдкрде рдкреНрд░рджрд╛рди рдХрд░рдирд╛ред рдЪреВрдВрдХрд┐ рд╡рд░реНрдЪреБрдЕрд▓рдПрдиреНрд╡ рдХрд╛ рдЙрдкрдпреЛрдЧрдХреЗрд╕ рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рдирд╣реАрдВ рдЖрдПрдЧрд╛, рдЗрд╕рд▓рд┐рдП рд╣рдореЗрдВ рдпрд╣рд╛рдВ рдХреБрдЫ рднреА рдирдпрд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред

рд╡рд░реНрддрдорд╛рди рджреГрд╖реНрдЯрд┐рдХреЛрдг рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдФрд░ рддрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдбрд╝реА рдордЫрд▓рд┐рдпрд╛рдБ рд╣реИрдВред

рдпрд╣, рдЕрдиреНрдп IMO рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╣реИред рд╣рдо рдХрд░ рд╕рдХрддреЗ рдереЗ рд▓реЗрдХрд┐рди рдирд┐рдкрдЯрдиреЗ рдХреЗ рд▓рд┐рдП рдФрд░ рдЕрдзрд┐рдХ рдкреНрд░рднрд╛рд╡рд╢рд╛рд▓реА рдореБрджреНрджреЗ рд╣реИрдВред :)

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

рдпрд╣ рдЕрдм рдереЛрдбрд╝рд╛ рдЬрдЯрд┐рд▓ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдкреАрдИрдкреА 517 рдХреЗ рд▓рд┐рдП рдкреАрдЖрдИрдкреА рдЦреБрдж рдХреЛ рдПрдХ рдЙрдкрдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдЖрдордВрддреНрд░рд┐рдд рдХрд░рддрд╛ рд╣реИред рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рд▓реЗрдХрд┐рди рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рддрд▓рд╛рд╢рдиреЗ рд▓рд╛рдпрдХ рд╣реИред

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

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

рдПрдХ рдпреЛрдЬрдирд╛ рдХреА рддрд░рд╣ рд▓рдЧрддрд╛ рд╣реИ [рдЬрд┐рд╕рдХрд╛ рд╣рдо рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЕрдиреБрд╕рд░рдг рдХрд░ рд░рд╣реЗ рд╣реИрдВред ;)]

рд▓рд┐рдВрдХ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдлреАрдбрдмреИрдХ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдореИрдВрдиреЗ https://github.com/gaborbernat/virtualenv/tree/rewrite/src/virtualenv рдкрд░ рдХреБрдЫ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдХрд╛рд░реНрдп рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ рд╣реИ 20.0.0 ред

рд╡реЗрдирд╡ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП +1 рдпрджрд┐ рдпрд╣ рдореМрдЬреВрдж рд╣реИред рдпрд╣ рдкреАрдкреАрдкреА рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдХреЛ рдЖрд╕рд╛рди рдмрдирд╛ рджреЗрдЧрд╛ред

рдЗрд╕рд▓рд┐рдП рдкреБрдирд░реНрд▓реЗрдЦрди рдПрдХ рдРрд╕реА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдЖ рдЧрдпрд╛, рдЬрд╣рд╛рдВ рдореИрдВ рд╕рд╣рдЬ рдорд╣рд╕реВрд╕ рдХрд░рддрд╛ рд╣реВрдВ рдХрд┐ рд▓реЛрдЧ рдЗрд╕реЗ рджреЗрдЦ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдХреБрдЫ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджреЗ рд░рд╣реЗ рд╣реИрдВред рдЕрдЧрд░ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЗрд╕рдореЗрдВ рдорджрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдЦрд╛рд▓реА рд╕рдордп рд╣реИ рддреЛ рдХреГрдкрдпрд╛ рдореБрдЭрд╕реЗ рд╕рдВрдкрд░реНрдХ рдХрд░реЗрдВ; рдпреЛрдЬрдирд╛ рдЗрд╕реЗ рдорд╣реАрдиреЗ рдХреЗ рдЕрдВрдд рддрдХ рдЬрд╛рд░реА рдХрд░рдиреЗ рдХреА рд╣реИ рдиреЛрдЯ https://github.com/pypa/virtualenv/milestone/7 рдЕрднреА рднреА рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдореВрд▓ рд╡рд┐рдЪрд╛рд░ рд╣реИред

рдкреБрдирд╢реНрдЪ. https://github.com/pypa/virtualenv/pull/1481/ рдХреЗ рддрд╣рдд рдПрдХ рдлреАрдбрдмреИрдХ рдкреАрдЖрд░ рдмрдирд╛рдпрд╛

рдлрд╝реАрдЪрд░ рдЕрдиреБрд░реЛрдз: рдХрд╕реНрдЯрдо рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рддрдВрддреНрд░ рдкреНрд░рджрд╛рди рдХрд░реЗрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдорд╛рдирдХ рдкреНрд░рд╛рд░реВрдк рдХреЗ рд╕рд╛рде venv рдмрд┐рди рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ env.txt рдлрд╝рд╛рдЗрд▓ рд░рдЦрдХрд░:

VARNAME=value
OTHERVAR=othervalue

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

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВред рдПрдирдПрдо. рдореИрдВ рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдЖрдкрдиреЗ https://github.com/pypa/virtualenv/issues/1124 рдкрд░ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд┐рдпрд╛ рд╣реИ

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

рд░реЛрд▓рдЖрдЙрдЯ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рд╣рдорд╛рд░реА рдХреНрдпрд╛ рдпреЛрдЬрдирд╛ рд╣реИ? рдХреНрдпрд╛ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдореБрдЦреНрдп рд░рд┐рд▓реАрдЬрд╝ рд╕реЗ рдкрд╣рд▓реЗ рдмреАрдЯрд╛ рд░рд┐рд▓реАрдЬрд╝ рд╣реЛрдЧрд╛?

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

рдореБрдЭреЗ 100% рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдПрдХ рд╕рдкреНрддрд╛рд╣ рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛрдЧрд╛ рдФрд░ рд╣рдореЗрдВ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдХрдИ рдЪреИрдирд▓реЛрдВ рдкрд░ рд╕рдВрд╡рд╛рдж рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рд╣рдо рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рд▓реЛрдЧ рдмреАрдЯрд╛ рдХреЛ рдЖрдЬрд╝рдорд╛рдПрдВред

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

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

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