рд╕рднреА рдХреЛ рд╢реБрдн рджрд┐рдиред
рдЖрдЬ, рдкрд╛рдпрдерди рди рдХреЗрд╡рд▓ рд╕реНрд╡рдпрдВ рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдЙрддреНрдкрд╛рдж рдмрдирд╛рдиреЗ, рдмрд▓реНрдХрд┐ рдЙрдирдХрд╛ рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪрд╛ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИред рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдХрдИ рдбреЗрд╡реЙрдкреНрд╕ рдХреЛ, рдЪрд╛рд╣реЗ рдЙрдирдХреА рдЗрдЪреНрдЫрд╛ рд╕реЗ рдпрд╛ рдЗрд╕рдХреЗ рд╡рд┐рд░реБрджреНрдз, рдЕрдЪреНрдЫреА рдкреБрд░рд╛рдиреА рдмреИрд╢ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдкреВрд░рдХ рдХреЗ рд░реВрдк рдореЗрдВ рдмрд╛рдж рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдИ рднрд╛рд╖рд╛ рд╕реАрдЦрдиреА рдкрдбрд╝реАред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдмреИрд╢ рдФрд░ рдкрд╛рдпрдерди рдХреЛрдб рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ-рдЕрд▓рдЧ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд░рдЦрддреЗ рд╣реИрдВ рдФрд░ рдЙрдирдХреА рдХреБрдЫ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рд╣реИрдВ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдмреИрд╢ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ "рд╕реНрдиреЗрдХ рд▓реИрдВрдЧреНрд╡реЗрдЬ" рдореЗрдВ рдкреЛрд░реНрдЯ рдХрд░рдирд╛ рдХрднреА-рдХрднреА рдПрдХ рд╡рд┐рд╢рд╛рд▓ рдФрд░ рддреБрдЪреНрдЫ рдХрд╛рд░реНрдп рд╕реЗ рджреВрд░ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред
рдбреЗрд╡реЙрдкреНрд╕ рдХреЗ рдЬреАрд╡рди рдХреЛ рдЖрд╕рд╛рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдкрд╛рдпрдерди рдореЗрдВ рдХрдИ рдЙрдкрдпреЛрдЧреА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдФрд░ рдЙрдкрдпреЛрдЧрд┐рддрд╛рдПрдБ рдмрдирд╛рдИ рдЧрдИ рд╣реИрдВ рдФрд░ рдмрдирд╛рдИ рдЬрд╛ рд░рд╣реА рд╣реИрдВред рдпрд╣ рдЖрд▓реЗрдЦ рдЗрд╕ рдкреЛрд╕реНрдЯ рдХреЗ рд▓реЗрдЦрдХ рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдИ рдЧрдИ рджреЛ рдирдИ рд▓рд╛рдЗрдмреНрд░реЗрд░реАрдЬрд╝ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИ -
рдЬрд┐рд╕ рдХрд┐рд╕реА рдХреА рд░реБрдЪрд┐ рд╣реЛ, рдХреГрдкрдпрд╛ рдмрд┐рд▓реНрд▓реА рджреЗрдЦреЗрдВред
рдирдИ "рд╕рд╛рдЗрдХрд┐рд▓реЗрдВ"?
рдРрд╕рд╛ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ, рдмрд┐рд▓реНрдХреБрд▓ рд╕рд╛рдорд╛рдиреНрдп рдкрд░рд┐рдЪрд╛рд▓рдиреЛрдВ рдХреЗ рд▓рд┐рдП рдирдП рдкреИрдХреЗрдЬ рдХреНрдпреЛрдВ рдмрдирд╛рдПрдВ? рдЖрдкрдХреЛ 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
рд╡рд┐рдЪрд╛рд░ рдпрд╣ рд╣реИ:
- рдПрдХ рдПрдХрд▓ рд╡рд░реНрдЧ рдЬреЛ рдкрд╛рдпрдерди рджреБрдирд┐рдпрд╛ рдореЗрдВ рдмреИрд╢ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддрд╛ рд╣реИ;
- рдкреНрд░рддреНрдпреЗрдХ рдмреИрд╢ рдХрдорд╛рдВрдб рдХреЛ рд╢реЗрд▓ рдХреНрд▓рд╛рд╕ рдХрд╛ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ;
- рдлрд┐рд░ рдкреНрд░рддреНрдпреЗрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓ рдХреЗ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рд╕рдВрдмрдВрдзрд┐рдд рдмреИрд╢ рдХрдорд╛рдВрдб рдХреЙрд▓ рдореЗрдВ рдкрд╛рд╕ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ;
- рдкреНрд░рддреНрдпреЗрдХ рдХрдорд╛рдВрдб рдХреЛ "рдпрд╣рд╛рдБ рдФрд░ рдЕрднреА" рдЙрд╕реА рд╕рдордп рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрдм рдЙрд╕реЗ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рддред рд╕рдордХрд╛рд▓рд┐рдХ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ;
- stdout рдореЗрдВ рдХрд┐рд╕реА рдХрдорд╛рдВрдб рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рд╕рд╛рде-рд╕рд╛рде рдЙрд╕рдХреЗ рд░рд┐рдЯрд░реНрди рдХреЛрдб рддрдХ рдкрд╣реБрдВрдЪрдирд╛ рд╕рдВрднрд╡ рд╣реИ;
- рдпрджрд┐ рдХрдорд╛рдВрдб рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдирд╣реАрдВ рд╣реИ, рддреЛ рдПрдХ рдЕрдкрд╡рд╛рдж рдлреЗрдВрдХ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рд╕реНрдорд╛рд░реНрдЯ-рдПрдирд╡реА рдХреА рддрд░рд╣, Python 2 рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рд╣реИ (рд╣рд╛рд▓рд╛рдБрдХрд┐ рдереЛрдбрд╝рд╛ рдЕрдзрд┐рдХ рд░рдХреНрдд рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереА) рдФрд░ Python 3.0-3.4 рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╕рдорд░реНрдерди рдирд╣реАрдВ рд╣реИред
рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╡рд┐рдХрд╛рд╕ рдпреЛрдЬрдирд╛
рдЕрдм рдЖрдк рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ: рджреЛрдиреЛрдВ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ PyPI рдкрд░ рдкреЛрд╕реНрдЯ рдХрд┐рдП рдЧрдП рд╣реИрдВред рд╕реНрд░реЛрдд рдЬреАрдердм рдкрд░ рдЙрдкрд▓рдмреНрдз рд╣реИрдВ (рдиреАрдЪреЗ рджреЗрдЦреЗрдВ)ред
рджреЛрдиреЛрдВ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рд░реБрдЪрд┐ рд░рдЦрдиреЗ рд╡рд╛рд▓реЛрдВ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдлреАрдбрдмреИрдХ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдП рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдФрд░, рдпрджрд┐ рд╕реНрдорд╛рд░реНрдЯ-рдПрдирд╡реА рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреА рдирдИ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдЖрдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рддреЛ рдкрд╛рдпрдерди-рд╢реЗрд▓ рдореЗрдВ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдФрд░ рд╣реИ:
- рдЧреИрд░-рдЕрд╡рд░реБрджреНрдз рдХреЙрд▓ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди;
- рдЯреАрдо рдХреЗ рд╕рд╛рде рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡ рд╕рдВрдЪрд╛рд░ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ (рд╕реНрдЯрдбреАрди рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛);
- рдирдП рдЧреБрдг рдЬреЛрдбрд╝рдирд╛ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, stderr рд╕реЗ рдЖрдЙрдЯрдкреБрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЧреБрдг);
- рдЙрдкрд▓рдмреНрдз рдЖрджреЗрд╢реЛрдВ рдХреА рдПрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди (dir() рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╕рд╛рде рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП);
- рдЖрджрд┐
рд╕рдВрджрд░реНрднреЛрдВ
- рд╕реНрдорд╛рд░реНрдЯ-рдПрдирд╡реА рд▓рд╛рдЗрдмреНрд░реЗрд░реА:
Github ╨╕PyPI - рдкрд╛рдпрдерди-рд╢реЗрд▓ рд▓рд╛рдЗрдмреНрд░реЗрд░реА:
Github ╨╕PyPI рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рдЪреИрдирд▓ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдЕрджреНрдпрддрди
рдпреВрдкреАрдбреА 23.02.2020:
* рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд╕рдВрдмрдВрдзрд┐рдд рд▓рд┐рдВрдХ рдЕрдкрдбреЗрдЯ рдХрд░ рджрд┐рдП рдЧрдП рд╣реИрдВ
* рд╕рдВрд╕реНрдХрд░рдг Python-shell==1.0.1 29.02.2020/XNUMX/XNUMX рдХреЛ рд░рд┐рд▓реАрдЬрд╝ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдореЗрдВ рдХрдорд╛рдВрдб рд╕реНрд╡рдд: рдкреВрд░реНрдг рдФрд░ рдбреАрдЖрдИрдЖрд░ (рд╢реЗрд▓) рдХрдорд╛рдВрдб рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди, рдЕрдорд╛рдиреНрдп рдкрд╛рдпрдерди рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдХреЗ рд╕рд╛рде рдХрдорд╛рдВрдб рдЪрд▓рд╛рдирд╛ рдФрд░ рдмрдЧ рдлрд┐рдХреНрд╕ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред
рд╕реНрд░реЛрдд: www.habr.com