рдкрд╛рдпрдерди рдФрд░ рдмреИрд╢ рдореИрддреНрд░реА рдмрдирд╛рдирд╛: рд╕реНрдорд╛рд░реНрдЯ-рдПрдирд╡реА рдФрд░ рдкрд╛рдпрдерди-рд╢реЗрд▓ рд▓рд╛рдЗрдмреНрд░реЗрд░реА

рд╕рднреА рдХреЛ рд╢реБрдн рджрд┐рдиред

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

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

рдЬрд┐рд╕ рдХрд┐рд╕реА рдХреА рд░реБрдЪрд┐ рд╣реЛ, рдХреГрдкрдпрд╛ рдмрд┐рд▓реНрд▓реА рджреЗрдЦреЗрдВред

рдирдИ "рд╕рд╛рдЗрдХрд┐рд▓реЗрдВ"?

рдРрд╕рд╛ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ, рдмрд┐рд▓реНрдХреБрд▓ рд╕рд╛рдорд╛рдиреНрдп рдкрд░рд┐рдЪрд╛рд▓рдиреЛрдВ рдХреЗ рд▓рд┐рдП рдирдП рдкреИрдХреЗрдЬ рдХреНрдпреЛрдВ рдмрдирд╛рдПрдВ? рдЖрдкрдХреЛ os.environ рдФрд░ рд╕рдмрдкреНрд░реЛрд╕реЗрд╕.<рдЕрдкрдиреА рдкрд╕рдВрдж рдХреА рд╡рд┐рдзрд┐ рдпрд╛ рдХрдХреНрд╖рд╛> рдХрд╛ рд╕реАрдзреЗ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдХреНрдпрд╛ рд░реЛрдХрддрд╛ рд╣реИ?

рдореИрдВ рдкреНрд░рддреНрдпреЗрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рдкрдХреНрд╖ рдореЗрдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕рд╛рдХреНрд╖реНрдп рдЙрдкрд▓рдмреНрдз рдХрд░рд╛рдКрдВрдЧрд╛ред

рд╕реНрдорд╛рд░реНрдЯ-рдПрдирд╡реА рд▓рд╛рдЗрдмреНрд░реЗрд░реА

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

рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЦреЛрдЬ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд╛ рдЦреБрд▓рд╛рд╕рд╛ рд╣реБрдЖ:

  • рдРрд╕реЗ рдкреИрдХреЗрдЬ рд╣реИрдВ рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреЙрд▓ рдХреЛ os.environ рдореЗрдВ рд▓рдкреЗрдЯрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╕рд╛рде рд╣реА рдЙрдиреНрд╣реЗрдВ рдзреНрдпрд╛рди рднрдЯрдХрд╛рдиреЗ рд╡рд╛рд▓реА рдХрд╛рд░реНрд░рд╡рд╛рдЗрдпреЛрдВ рдХреА рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ (рдХреНрд▓рд╛рд╕ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рдирд╛, рдХреЙрд▓ рдореЗрдВ рд╡рд┐рд╢реЗрд╖ рдкреИрд░рд╛рдореАрдЯрд░ рдЖрджрд┐);
  • рдРрд╕реЗ рдЕрдЪреНрдЫреЗ рдкреИрдХреЗрдЬ рд╣реИрдВ, рдЬреЛ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкрд╛рд░рд┐рд╕реНрдерд┐рддрд┐рдХреА рддрдВрддреНрд░ (рдореБрдЦреНрдп рд░реВрдк рд╕реЗ Django рдЬреИрд╕реЗ рд╡реЗрдм рдлреНрд░реЗрдорд╡рд░реНрдХ) рд╕реЗ рд╕рдЦреНрддреА рд╕реЗ рдмрдВрдзреЗ рд╣реИрдВ рдФрд░ рдЗрд╕рд▓рд┐рдП рдлрд╝рд╛рдЗрд▓ рдХреЗ рдмрд┐рдирд╛ рдмрд┐рд▓реНрдХреБрд▓ рднреА рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рдирд╣реАрдВ рд╣реИрдВ;
  • рдХреБрдЫ рдирдпрд╛ рдХрд░рдиреЗ рдХреЗ рдкреНрд░рдпрд╛рд╕ рджреБрд░реНрд▓рдн рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЯрд╛рдЗрдкрд┐рдВрдЧ рдЬреЛрдбрд╝реЗрдВ рдФрд░ рдЬреИрд╕реЗ рддрд░реАрдХреЛрдВ рдХреЛ рдХреЙрд▓ рдХрд░рдХреЗ рдЪрд░ рдорд╛рдиреЛрдВ рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдкрд╛рд░реНрд╕ рдХрд░реЗрдВ
    get_<typename>(var_name)

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

  • рдРрд╕реЗ рд╕реНрдХреВрд▓-рдЫрд╛рддреНрд░ рд╢рд┐рд▓реНрдк рд╣реИрдВ, рдЬреЛ рдХрд┐рд╕реА рдЕрдЬреНрдЮрд╛рдд рдХрд╛рд░рдг рд╕реЗ, рдЕрдкрд╕реНрдЯреНрд░реАрдо PyPI рдореЗрдВ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЧрдП рдФрд░ рдХреЗрд╡рд▓ рдирдП рдкреИрдХреЗрдЬреЛрдВ рдХреЗ рдирд╛рдордХрд░рдг рдореЗрдВ рд╕рдорд╕реНрдпрд╛рдПрдБ рдкреИрджрд╛ рдХрд░рддреЗ рд╣реИрдВ (рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, "рд╕реНрдорд╛рд░реНрдЯ-рдПрдирд╡реА" рдирд╛рдо рдПрдХ рдЖрд╡рд╢реНрдпрдХ рдЙрдкрд╛рдп рд╣реИ)ред

рдФрд░ рдпрд╣ рд╕реВрдЪреА рдХрд╛рдлреА рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдЪрд▓ рд╕рдХрддреА рд╣реИ. рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЙрдкрд░реЛрдХреНрдд рдмрд┐рдВрджреБ рдореБрдЭреЗ рдХреБрдЫ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдФрд░ рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рдмрдирд╛рдиреЗ рдХреЗ рд╡рд┐рдЪрд╛рд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЙрддреНрд╕рд╛рд╣рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдереЗред

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

  • рд╕рдмрд╕реЗ рд╕рд░рд▓ рдЙрдкрдпреЛрдЧ рдпреЛрдЬрдирд╛
  • рдЖрд╕рд╛рдиреА рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдбреЗрдЯрд╛ рдЯрд╛рдЗрдкрд┐рдВрдЧ рд╕рдорд░реНрдерди
  • рдкрд╛рдпрдерди 2.7 рд╕рдВрдЧрдд
  • рдкрд░реАрдХреНрд╖рдгреЛрдВ рджреНрд╡рд╛рд░рд╛ рдЕрдЪреНрдЫрд╛ рдХреЛрдб рдХрд╡рд░реЗрдЬ

рдЕрдВрддрддрдГ рдпрд╣ рд╕рдм рд╕рд╛рдХрд╛рд░ рд╣реЛ рдЧрдпрд╛ред рдпрд╣рд╛рдБ рдЙрдкрдпреЛрдЧ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ:

from smart_env import ENV

print(ENV.HOME)  # Equals print(os.environ['HOME'])

# assuming you set env variable MYVAR to "True"

ENV.enable_automatic_type_cast()

my_var = ENV.MY_VAR  # Equals boolean True

ENV.NEW_VAR = 100  # Sets a new environment variable

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

рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдЯрд╛рдЗрдкрд┐рдВрдЧ рд╕рдорд░реНрдерди рдореЛрдб рдХреЛ рд╕рдХреНрд╖рдо/рдЕрдХреНрд╖рдо рдХрд░рдирд╛ рджреЛ рд╡рд┐рдзрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ - Enable_automatic_type_cast() рдФрд░ disable_automatic_type_cast()ред рдпрд╣ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдпрджрд┐ рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рдореЗрдВ рдПрдХ рдХреНрд░рдордмрджреНрдз JSON-рдЬреИрд╕реА рд╡рд╕реНрддреБ рдпрд╛ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдХреЗрд╡рд▓ рдПрдХ рдмреВрд▓рд┐рдпрди рд╕реНрдерд┐рд░рд╛рдВрдХ рд╣реЛ (рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рдХреА "рдорд╛рдиреНрдп" рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХреЗ рд╕рд╛рде рддреБрд▓рдирд╛ рдХрд░рдХреЗ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ Django рдореЗрдВ DEBUG рдЪрд░ рд╕реЗрдЯ рдХрд░рдирд╛ рд╕рдмрд╕реЗ рдЖрдо рдорд╛рдорд▓реЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ)ред рд▓реЗрдХрд┐рди рдЕрдм рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдиреЗ рдХреА рдХреЛрдИ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ - рдЕрдзрд┐рдХрд╛рдВрд╢ рдЖрд╡рд╢реНрдпрдХ рдХреНрд░рд┐рдпрд╛рдПрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреА рдЧрд╣рд░рд╛рдИ рдореЗрдВ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд╣реИрдВ рдФрд░ рдХреЗрд╡рд▓ рдХрд╛рд░реНрдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд┐рдЧреНрдирд▓ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд░рд╣реА рд╣реИрдВред ЁЯЩВ рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдЯрд╛рдЗрдкрд┐рдВрдЧ рдкрд╛рд░рджрд░реНрд╢реА рддрд░реАрдХреЗ рд╕реЗ рдХрд╛рдо рдХрд░рддреА рд╣реИ рдФрд░ рд▓рдЧрднрдЧ рд╕рднреА рдЙрдкрд▓рдмреНрдз рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░реЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреА рд╣реИ (рдлреНрд░реЛрдЬрд╝рдирд╕реЗрдЯ, рдХреЙрдореНрдкреНрд▓реЗрдХреНрд╕ рдФрд░ рдмрд╛рдЗрдЯреНрд╕ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛)ред

рдкрд╛рдпрдерди 2 рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЛ рд╡рд╕реНрддреБрддрдГ рдмрд┐рдирд╛ рдХрд┐рд╕реА рдмрд▓рд┐рджрд╛рди рдХреЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ (рдкрд╛рдЗрдерди 3 рдХреЗ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ рдЯрд╛рдЗрдкрд┐рдВрдЧ рдФрд░ рдХреБрдЫ "рдЪреАрдиреА рдХреИрдВрдбреАрдЬ" рдХрд╛ рдкрд░рд┐рддреНрдпрд╛рдЧ), рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рд╕рд░реНрд╡рд╡реНрдпрд╛рдкреА рдЫрд╣ (рдореЗрдЯрд╛рдХреНрд▓рд╛рд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП) рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж ).

рд▓реЗрдХрд┐рди рдХреБрдЫ рдкреНрд░рддрд┐рдмрдВрдз рднреА рд╣реИрдВ:

  • рдкрд╛рдпрдерди 3 рд╕рдорд░реНрдерди рдХрд╛ рдЕрд░реНрде рд╣реИ рд╕рдВрд╕реНрдХрд░рдг 3.5 рдФрд░ рдЙрдЪреНрдЪрддрд░ (рдЖрдкрдХреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдЙрдирдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдпрд╛ рддреЛ рдЖрд▓рд╕реНрдп рдпрд╛ рд╕реБрдзрд╛рд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреА рдХрдореА рдХрд╛ рдкрд░рд┐рдгрд╛рдо рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдХреЛрдИ рд╡рд╕реНрддреБрдирд┐рд╖реНрда рдХрд╛рд░рдг рдмрддрд╛рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИ рдХрд┐ рдЖрдк рдЕрднреА рднреА 3.4 рдкрд░ рдХреНрдпреЛрдВ рд╣реИрдВ);
  • рдкрд╛рдпрдерди 2.7 рдореЗрдВ, рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╕реЗрдЯ рд▓рд┐рдЯрд░рд▓реНрд╕ рдХреЗ рдбрд┐рд╕реЗрд░рд┐рдПрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддреА рд╣реИред рд╡рд┐рд╡рд░рдг рдпрд╣рд╛рдВ. рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдХреЛрдИ рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ, рддреЛ рдЖрдкрдХрд╛ рд╕реНрд╡рд╛рдЧрдд рд╣реИ :);

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

рдкрд╛рдпрдерди-рд╢реЗрд▓ рд▓рд╛рдЗрдмреНрд░реЗрд░реА

рдЕрдм рдореИрдВ рдЖрдкрдХреЛ рджреВрд╕рд░реА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрддрд╛рдКрдВрдЧрд╛ (рдореИрдВ рдореМрдЬреВрджрд╛ рдПрдирд╛рд▓реЙрдЧреНрд╕ рдХреА рдХрдорд┐рдпреЛрдВ рдХрд╛ рд╡рд┐рд╡рд░рдг рдЫреЛрдбрд╝ рджреВрдВрдЧрд╛ - рдпрд╣ рд╕реНрдорд╛рд░реНрдЯ-рдПрдирд╡реА рдХреЗ рд▓рд┐рдП рд╡рд░реНрдгрд┐рдд рдХреЗ рд╕рдорд╛рди рд╣реИред рдПрдирд╛рд▓реЙрдЧреНрд╕ - рдпрд╣рд╛рдВ ╨╕ рдпрд╣рд╛рдВ).

рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛ рд╡рд┐рдЪрд╛рд░ рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХрддрд╛рдПрдВ рд╕реНрдорд╛рд░реНрдЯ-рдПрдирд╡реА рдХреЗ рд▓рд┐рдП рд╡рд░реНрдгрд┐рдд рдХреЗ рд╕рдорд╛рди рд╣реИрдВ, рдЬреИрд╕рд╛ рдХрд┐ рдЙрджрд╛рд╣рд░рдг рд╕реЗ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

from python_shell import Shell

Shell.ls('-l', '$HOME')  # Equals "ls -l $HOME"

command = Shell.whoami()  # Equals "whoami"
print(command.output)  # prints your current user name

print(command.command)  # prints "whoami"
print(command.return_code)  # prints "0"
print(command.arguments)  # prints ""

Shell.mkdir('-p', '/tmp/new_folder')  # makes a new folder

рд╡рд┐рдЪрд╛рд░ рдпрд╣ рд╣реИ:

  1. рдПрдХ рдПрдХрд▓ рд╡рд░реНрдЧ рдЬреЛ рдкрд╛рдпрдерди рджреБрдирд┐рдпрд╛ рдореЗрдВ рдмреИрд╢ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддрд╛ рд╣реИ;
  2. рдкреНрд░рддреНрдпреЗрдХ рдмреИрд╢ рдХрдорд╛рдВрдб рдХреЛ рд╢реЗрд▓ рдХреНрд▓рд╛рд╕ рдХрд╛ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ;
  3. рдлрд┐рд░ рдкреНрд░рддреНрдпреЗрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓ рдХреЗ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рд╕рдВрдмрдВрдзрд┐рдд рдмреИрд╢ рдХрдорд╛рдВрдб рдХреЙрд▓ рдореЗрдВ рдкрд╛рд╕ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ;
  4. рдкреНрд░рддреНрдпреЗрдХ рдХрдорд╛рдВрдб рдХреЛ "рдпрд╣рд╛рдБ рдФрд░ рдЕрднреА" рдЙрд╕реА рд╕рдордп рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрдм рдЙрд╕реЗ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рддред рд╕рдордХрд╛рд▓рд┐рдХ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ;
  5. stdout рдореЗрдВ рдХрд┐рд╕реА рдХрдорд╛рдВрдб рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рд╕рд╛рде-рд╕рд╛рде рдЙрд╕рдХреЗ рд░рд┐рдЯрд░реНрди рдХреЛрдб рддрдХ рдкрд╣реБрдВрдЪрдирд╛ рд╕рдВрднрд╡ рд╣реИ;
  6. рдпрджрд┐ рдХрдорд╛рдВрдб рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдирд╣реАрдВ рд╣реИ, рддреЛ рдПрдХ рдЕрдкрд╡рд╛рдж рдлреЗрдВрдХ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рд╕реНрдорд╛рд░реНрдЯ-рдПрдирд╡реА рдХреА рддрд░рд╣, Python 2 рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рд╣реИ (рд╣рд╛рд▓рд╛рдБрдХрд┐ рдереЛрдбрд╝рд╛ рдЕрдзрд┐рдХ рд░рдХреНрдд рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереА) рдФрд░ Python 3.0-3.4 рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╕рдорд░реНрдерди рдирд╣реАрдВ рд╣реИред

рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╡рд┐рдХрд╛рд╕ рдпреЛрдЬрдирд╛

рдЕрдм рдЖрдк рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ: рджреЛрдиреЛрдВ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ PyPI рдкрд░ рдкреЛрд╕реНрдЯ рдХрд┐рдП рдЧрдП рд╣реИрдВред рд╕реНрд░реЛрдд рдЬреАрдердм рдкрд░ рдЙрдкрд▓рдмреНрдз рд╣реИрдВ (рдиреАрдЪреЗ рджреЗрдЦреЗрдВ)ред

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

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

рд╕рдВрджрд░реНрднреЛрдВ

  1. рд╕реНрдорд╛рд░реНрдЯ-рдПрдирд╡реА рд▓рд╛рдЗрдмреНрд░реЗрд░реА: Github ╨╕ PyPI
  2. рдкрд╛рдпрдерди-рд╢реЗрд▓ рд▓рд╛рдЗрдмреНрд░реЗрд░реА: Github ╨╕ PyPI
  3. рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рдЪреИрдирд▓ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдЕрджреНрдпрддрди

рдпреВрдкреАрдбреА 23.02.2020:
* рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд╕рдВрдмрдВрдзрд┐рдд рд▓рд┐рдВрдХ рдЕрдкрдбреЗрдЯ рдХрд░ рджрд┐рдП рдЧрдП рд╣реИрдВ
* рд╕рдВрд╕реНрдХрд░рдг Python-shell==1.0.1 29.02.2020/XNUMX/XNUMX рдХреЛ рд░рд┐рд▓реАрдЬрд╝ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдореЗрдВ рдХрдорд╛рдВрдб рд╕реНрд╡рдд: рдкреВрд░реНрдг рдФрд░ рдбреАрдЖрдИрдЖрд░ (рд╢реЗрд▓) рдХрдорд╛рдВрдб рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди, рдЕрдорд╛рдиреНрдп рдкрд╛рдпрдерди рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдХреЗ рд╕рд╛рде рдХрдорд╛рдВрдб рдЪрд▓рд╛рдирд╛ рдФрд░ рдмрдЧ рдлрд┐рдХреНрд╕ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред

рд╕реНрд░реЛрдд: www.habr.com

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╝реЗрдВ