рд╣рдо рдкрд╛рдпрдерди рдФрд░ рдмреИрд╢ рджреЛрд╕реНрдд рдмрдирд╛рддреЗ рд╣реИрдВ: рд╕реНрдорд╛рд░реНрдЯ-рдПрдирд╡ рдФрд░ рдЕрдЬрдЧрд░-рд╢реЗрд▓ рд▓рд╛рдЗрдмреНрд░реЗрд░реА

рд╕рдмрдХреЗ рд▓рд┐рдП рджрд┐рди рдЕрдЪреНрдЫрд╛ рд╣реЛред

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

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

рдХреМрди рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ, рдХреГрдкрдпрд╛, рдмрд┐рд▓реНрд▓реА рдХреЗ рдиреАрдЪреЗред

рдирдИ рд╕рд╛рдЗрдХрд┐рд▓?


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

рдореИрдВ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдХреЗ рдкрдХреНрд╖ рдореЗрдВ рдЕрд▓рдЧ рд╕реЗ рд╕рдмреВрдд рджреВрдВрдЧрд╛ред

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


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

рдЕрдиреБрд╕рд╛рд░ , рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЦреБрд▓рд╛рд╕рд╛ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛:

  • рдРрд╕реЗ рдкреИрдХреЗрдЬ рд╣реИрдВ рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ 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

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЙрджрд╛рд╣рд░рдг рд╕реЗ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдирдП рд╡рд░реНрдЧ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдЖрдпрд╛рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ (рдЖрдкрдХреЛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ - рдЕрддрд┐рд░рд┐рдХреНрдд рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреЛ рдШрдЯрд╛рдХрд░)ред рдХрд┐рд╕реА рднреА рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рддрдХ рдкрд╣реБрдВрдЪ рдХреЛ ENV рд╡рд░реНрдЧ рдЪрд░ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рдХреЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЗрд╕ рдкреНрд░рдгрд╛рд▓реА рдХреЛ рдореВрд▓ рдкреНрд░рдгрд╛рд▓реА рдкрд░реНрдпрд╛рд╡рд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╣рдЬ рдЖрд╡рд░рдг рдмрдирд╛рддрд╛ рд╣реИ, рд╕рд╛рде рд╣реА рдЗрд╕реЗ рд▓рдЧрднрдЧ рдХрд┐рд╕реА рднреА рдкреНрд░рдгрд╛рд▓реА рдХреЗ рд╡рд┐рдиреНрдпрд╛рд╕ рд╡рд╕реНрддреБ рдХреЗ рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рдореЗрдВ рдмрджрд▓ рджреЗрддрд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдорд╛рди рджреГрд╖реНрдЯрд┐рдХреЛрдг, 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. рд╕реНрдЯрдбрдЖрдЙрдЯ рдореЗрдВ рдирд┐рдХрд╛рд╕ рдХрдорд╛рдВрдб рддрдХ рдкрд╣реБрдВрдЪрдирд╛ рд╕рдВрднрд╡ рд╣реИ, рд╕рд╛рде рд╣реА рдЗрд╕рдХрд╛ рд░рд┐рдЯрд░реНрди рдХреЛрдб рднреА;
  6. рдпрджрд┐ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдХрдорд╛рдВрдб рдЕрдиреБрдкрд╕реНрдерд┐рдд рд╣реИ, рддреЛ рдПрдХ рдЕрдкрд╡рд╛рдж рдлреЗрдВрдХ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдЬреИрд╕рд╛ рдХрд┐ рд╕реНрдорд╛рд░реНрдЯ-рдПрдирд╡реА рдХреЗ рд╕рд╛рде, рдкрд╛рдпрдерди 2 рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ (рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЗрд╕рдореЗрдВ рдереЛрдбрд╝рд╛ рдЕрдзрд┐рдХ рдмрд▓рд┐рджрд╛рди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛) рдФрд░ рдкрд╛рдпрдерди 3.0-3.4 рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╕рдорд░реНрдерди рдирд╣реАрдВ рд╣реИред

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


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

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

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

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


  1. рд╕реНрдорд╛рд░реНрдЯ env рдкреБрд╕реНрддрдХрд╛рд▓рдп: Github рдФрд░ PyPI
  2. рдЕрдЬрдЧрд░-рдЦреЛрд▓ рдкреБрд╕реНрддрдХрд╛рд▓рдп: GitHub рдФрд░ pypi
  3. рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдЕрдкрдбреЗрдЯ рдХреЗ рд▓рд┐рдП рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рдЪреИрдирд▓


UPD 02/23/2020:
* рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЗрд╕реА рд▓рд┐рдВрдХ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ
ред 02/29/2020 рдкрд░ рд░рд┐рд▓реАрдЬрд╝ рдХреЗ рд▓рд┐рдП рдЕрдЬрдЧрд░-рд╢реЗрд▓ рд╕рдВрд╕реНрдХрд░рдг == 1.0.1 рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рдмреАрдЪ рдЖрджреЗрд╢реЛрдВ рдХреА рд╕реНрд╡рдд: рдкреВрд░реНрдгрддрд╛ рдФрд░ dir (рд╢реЗрд▓) рдХрдорд╛рдВрдб рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рд╣реИ, рдкрд╛рдпрдерди рдЕрдорд╛рдиреНрдп рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдФрд░ рдмрдЧ рдлрд┐рдХреНрд╕ рдХреЗ рд╕рд╛рде рдЖрджреЗрд╢реЛрдВ рдХрд╛ рд╢реБрднрд╛рд░рдВрднред

UPD 03/01/2020:
* рдЕрдЧрд▓реА рд░рд┐рд▓реАрдЬрд╝ рдкрд░ рдкреЛрд╕реНрдЯ рдХрд░реЗрдВред

All Articles