แแแ แแ แแฆแ แงแแแแแก.
แแฆแแก แแแแแแ แแ แ-แแ แแ แงแแแแแแ แแแแแงแแแแแฃแแ แแแแ แแ แ แแฎแแแแ แแแแแ แแ แแแ แแแฃแแ แแ แแแฃแฅแขแแแแก แจแแฅแแแแก, แแ แแแแ แแแแ แแแคแ แแกแขแ แฃแฅแขแฃแ แแก แฃแแ แฃแแแแแงแแคแแก แกแคแแ แแจแ. แจแแแแแแ, แแแแ แแแแแแก, แแแแแกแ แแแแแ แแฃ แแแก แฌแแแแแฆแแแแ, แแแฃแฌแแ แแฎแแแ แแแแก แกแฌแแแแ, แ แแแ แจแแแแแแแจแ แแแแแแงแแแแแแแแ แซแแแแ แแแ แแ แแแจแแก แแแแฌแแ แแแแแก แแแแแขแแแ. แแฃแแชแ, Bash แแ Python แแกแฌแแแแแแ แแแแกแฎแแแแแแฃแ แแแแแแแแแก แแแแแก แแแฌแแ แแก แแแแแ แ แแ แแฅแแ แแแ แแแแฃแแ แคแฃแแฅแชแแแแ, แ แแช แแแแก แแแจแแแแก, แ แแ Bash แกแแ แแแขแแแแก แแแ แขแแ แแแ โแแแแแแก แแแแแโ แแแแฏแแ แขแแแแแ แแ แขแ แแแแแแฃแ แ แแแแชแแแแกแแแ แจแแ แก แแ แแก.
devops-แแกแแแแก แชแฎแแแ แแแแก แแแกแแแแแแแแแแแ, Python-แจแ แแ แแแแแ แกแแกแแ แแแแแ แแแแแแแแแแ แแ แแแแฃแแแแฃแ แ แแ แแแ แแแ แจแแแฅแแแ แแ แแแ แซแแแแแก แจแแฅแแแแก. แแก แกแขแแขแแ แแฆแฌแแ แก แแ แแแกแขแแก แแแขแแ แแก แแแแ แจแแฅแแแแ แแ แแฎแแ แแแแแแแแแแแก -
แแแกแแช แแแแขแแ แแกแแแ, แแแฎแแแ แแแฎแแ แแแขแ.
แแฎแแแ "แแแแแกแแแแแแแ"?
แ แแแแ แช แฉแแแก, แ แแขแแ แจแแแฅแแแแ แแฎแแแ แแแแแขแแแ แกแแแแแแ แฉแแแฃแแแแ แแแ แแแแ แแชแแแแแกแแแแก? แ แ แแแจแแแ แฎแแแก os.environ แแ subprocess.<แแฅแแแแ แแ แฉแแแแแแก แแแแแแ แแ แแแแกแ> แแแ แแแแแ แแแแแงแแแแแแจแ?
แแแแแแฃแ แแแแแแแแแแแก แกแแกแแ แแแแแแ แชแแ-แชแแแแ แแแแแงแแแ แแขแแแชแแแฃแแแแแแก.
smart-env แแแแแแแแแแ
แกแแแแ แกแแแฃแแแ แแแ แก แแแฌแแ แ, แกแแกแแ แแแแแแ แแแขแแ แแแขแจแ แจแแกแแแ แแ แแแ แแแแแฌแงแแแขแแแแแแแแก แแแซแแแแ. แ แ แแฅแแ แฃแแแ, แแ แกแแแแแก แแแแก แ แแกแแ, แ แแ แแ แแแแแแ แแก, แ แแช แแญแแ แแแแแ, แแแแ แแ แแก แฃแคแ แ "แกแแแแแฆแแแแ แแแแแแแแ". แ แแแแ แช แฌแแกแ, แแก แแแแแแแ แแฃแจแแแแก แแ แแแแแแแแก แแแ แแ แแกแ แแ แซแแแแกแฎแแแแแก.
แจแแแแแแแแก แแแฎแแแแแ
- แแ แแก แแแแแขแแแ, แ แแแแแแแช แ แแแแฃแ แแ แแคแฃแญแแแแ แแแ แแแก os.environ-แแ, แแแแ แแ แแแแแแ แแฃแแแ แกแแญแแ แแแแแ แฃแแแ แแ แงแฃแ แแแฆแแแแก แแแแแขแแแแก แแแฅแแแแแแแแก (แแแแกแแก แแแกแขแแแชแแแก แจแแฅแแแ, แแแ แแแจแ แกแแแชแแแแฃแ แ แแแ แแแแขแ แแแ แแ แ.แจ.);
- แแ แแก แแแ แแ แแแแแขแแแ, แ แแแแแแแช, แแฃแแชแ, แแแแชแ แแ แแ แแก แแแแแฃแแ แแแแแ แแขแฃแ แแแแกแแกแขแแแแกแแแ (แซแแ แแแแแแ แแแ แฉแแ แฉแแแแ, แ แแแแ แแชแแ Django) แแ, แจแแกแแแแแแกแแ, แกแฃแแแช แแ แแ แแก แฃแแแแแ แกแแแฃแ แ แคแแแแแก แแแ แแจแ;
- แแจแแแแแ แแชแแแแแแแแแ แ แแแแ แแฎแแแก แแแแแแแแแก. แฒแแแแแแแแ,
แแแ แแคแแก แแแแแขแแแ แแ แแจแแแ แแ แแแแแแแแแแแ แชแแแแแแก แแแแจแแแแแแแแแ แแกแแแแกแ แแแแแแแแแก แแแแแซแแฎแแแแget_<typename>(var_name)
แแ แแฅ
แแแแแ แแ แแ แแแแแกแแแแแ , แ แแแแแแช, แแฃแแชแ, แแ แฃแญแแ แก แแฎแแ แก แแฎแแ แจแแ แชแฎแแแแแ แแแแแ 2-แก (แ แแแแแแช, แแแฃแฎแแแแแแแแคแแชแแแแฃแ แ RIP , แฏแแ แแแแแ แแ แแก แฌแแ แแแแแแแ แแแแแก แแแแแ แแ แแแแแ แแแแกแแกแขแแแแแ); - แแ แแก แกแแแแแก แแแกแฌแแแแแแ แฎแแแแแแแแแแแแ, แ แแแแแแแช แแแฃแ แแแแแแแ แแแแแแแก แแแแ แแแฎแแแแแ PyPI-แจแ แแ แแฎแแแแ แแฎแแแ แแแแแขแแแแก แแแกแแฎแแแแแแก แแ แแแแแแแก แฅแแแแแ (แแแ แซแแ, แกแแฎแแแฌแแแแแ โsmart-envโ แแฃแชแแแแแแแ แแแแแ).
แแ แแก แกแแ แจแแแซแแแแ แแแแ แซแแแแแก แแแแ แฎแแแก แแแแแแแแแแแจแ. แแฃแแชแ, แแแแแแฆแแแจแแฃแแ แแฃแแฅแขแแแ แกแแแแแ แแกแ แแงแ แแแแกแแแแก, แ แแ แแแแแฎแแ แแแแแ แ แแแแ แแแกแแฎแแ แฎแแแแแ แแ แฃแแแแแ แกแแแฃแ แ แแแแแแแแแก แแแแ.
แแแแฎแแแแแแ, แ แแแแแแแช แจแแแฅแแแ smart-env-แแก แแแฌแแ แแแแ:
- แแแแแงแแแแแแก แงแแแแแแ แแแ แขแแแ แกแฅแแแ
- แแแแแแแ แแแแคแแแฃแ แแ แแแแแ แแแแแชแแแแ แแแ แแคแแก แแฎแแ แแแญแแ แ
- Python 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 แชแแแแแแก แแจแแแ แแ แแแงแแแแแ แแแ แแแแก แชแแแแแแก โแแแแแโ แกแขแ แแฅแแแแแแแ แจแแแแ แแแแก แแแแ แแ แ-แแ แแ แงแแแแแแ แแแแ แชแแแแแฃแแ แจแแแแฎแแแแแ). แแแแ แแ แแฎแแ แแ แแ แแก แกแแญแแ แ แกแขแ แแฅแแแแแแก แแแแคแแแ แแแแแฅแชแแแ - แแฃแชแแแแแแแ แแแฅแแแแแแแแแก แฃแแแขแแกแแแ แฃแแแ แฉแแจแแแแแฃแแแ แแแแแแแแแแแก แกแแฆแ แแแจแ แแ แแฎแแแแ แกแแแแแแแก แแแแแแแแจแแ. ๐ แแแแแแแ, แแแ แแคแ แแฃแจแแแแก แแแแญแแแ แแแแแ แแ แแฎแแ แก แฃแญแแ แก แแแแฅแแแก แงแแแแ แฉแแจแแแแแฃแ แแแแแชแแแแ แขแแแก (แแแงแแแฃแแ แแแแ แแแ, แแแแแแแฅแกแ แแ แแแแขแ แแ แแงแ แแแแแชแแแแ).
Python 2-แแก แแฎแแ แแแญแแ แแก แแแแฎแแแแ แแแแฎแแ แชแแแแแ แแ แแฅแขแแแฃแแแ แแกแฎแแแ แแแแก แแแ แแจแ (แแแ แแคแแก แแแขแแแแแ แแ Python 3-แแก แฃแแฎแแแกแ แแแ แกแแแแแก แแแแแแ แแ โแจแแฅแ แแก แขแแแแแแฃแแโ), แแแ แซแแ, แงแแแแแแ แแแแ แชแแแแแฃแแ แแฅแแกแแก แฌแงแแแแแแ (แแแขแแแแแกแแแแก แแแแแงแแแแแแก แแ แแแแแแแแแก แแแแแกแแญแ แแแแ. ).
แแแแ แแ แแ แกแแแแแก แแแ แแแแฃแแ แจแแแฆแฃแแแแแ:
- Python 3-แแก แแฎแแ แแแญแแ แ แแแจแแแแก 3.5 แแ แฃแคแ แ แแแฆแแ แแแ แกแแแก (แแฅแแแแก แแ แแแฅแขแจแ แแแแ แงแแคแแ แแ แกแแแแ แแแชแแก แแ แแแฃแแฏแแแแกแแแแก แกแแญแแ แแแแแก แแ แแ แกแแแแแแก แจแแแแแแ, แ แแแแแ แซแแแแแ แแแแคแแฅแ แ แแแแแฅแขแฃแ แ แแแแแแ, แแฃ แ แแขแแ แฎแแ แฏแแ แแแแแ 3.4-แแ);
- Python 2.7-แจแ แแแแแแแแแแ แแ แฃแญแแ แก แแฎแแ แก แแแแแแแฅแขแแก แแแขแแ แแแแแแก แแแกแแ แแแแแแแชแแแก. แแฆแฌแแ แ
แแฅ . แแฆแแแ แแฃ แแแแแแก แแแฃแแแแแ แแแกแ แแแแฎแแ แชแแแแแแ, แแแแ แซแแแแแ :);
แแแแแแแแแแแก แแกแแแ แแฅแแก แแแแแแแแแแกแแก แแแฅแแแแแแ แแแแแแแแแแก แจแแชแแแแแแแก แจแแแแฎแแแแแจแ. แแฃ แกแขแ แแฅแแแ แแแ แแฅแแ แแแแชแแแแแแ แ แแแแแแแ แฎแแแแแกแแฌแแแแแ แแแแแแแแขแแ แแก แแแแ , แแแแจแแแแแแแ แ แฉแแแ แกแขแ แแฅแแแแ (แฃแคแ แ แแแขแแช, แแแฎแแ แฎแแแฃแแแแแกแ แแ แฃแแแ แแแแกแแแแแแแแก แแแแ, แฉแแแฃแแแแ แแ แแแแแแแกแแแ, แแฃ แ แแแแ แแฃแจแแแแก แชแแแแแแแ Bash-แจแ).
python-shell แแแแแแแแแแ
แแฎแแ แแ แแแแแงแแแแแ แแแแ แ แแแแแแแแแแแก แจแแกแแฎแแ (แแแแแแขแแแแ แแ แกแแแฃแแ แแแแแแแแแแก แแแแแแแแแแแแแแก แแฆแฌแแ แแก - แแกแแแแกแแ smart-env-แแกแแแแก แแฆแฌแแ แแแแก. แแแแแแแแแ -
แแแแแแแ, แแแแฎแแ แชแแแแแแแก แแแแ แแ แแแกแแ แแแแฎแแแแแแ แแกแแแแกแแ smart-env-แแกแแแแก แแฆแฌแแ แแแแก, แ แแแแ แช แฉแแแก แแแแแแแแแแแ:
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
แแแแ แแกแแแแ:
- แแ แแ แแแแกแ, แ แแแแแแช แฌแแ แแแแแแแแก แแแจแก แแแแแแแก แกแแแงแแ แแจแ;
- แแแแแแฃแแ Bash แแ แซแแแแแ แแฌแแแแแ แ แแแแ แช Shell แแแแกแแก แคแฃแแฅแชแแ;
- แแแแแแฃแแ แคแฃแแฅแชแแแก แแแแแซแแฎแแแแก แแแ แแแแขแ แแแ แแแแแแชแแแ แจแแกแแแแแแก Bash แแ แซแแแแแแก แแแ แก;
- แแแแแแฃแแ แแ แซแแแแแ แจแแกแ แฃแแแแฃแแแ "แแฅ แแ แแฎแแ" แแ แแแแแแขแจแ, แ แแแแกแแช แแก แแแแแแซแแฎแแแ, แ.แ. แแฃแจแแแแก แกแแแฅแ แแแฃแแ แแแแแแแ;
- แจแแกแแซแแแแแแแ แฌแแแแแ stdout-แจแ แแ แซแแแแแแก แแแแแกแแแแแแ, แแกแแแ แแแก แแแแ แฃแแแแแก แแแแแ;
- แแฃ แแ แซแแแแแ แแ แแ แแก แกแแกแขแแแแจแ, แแแแแแแแแแกแ แแแแแ.
แ แแแแ แช smart-env-แแก แจแแแแฎแแแแแจแ, แแ แกแแแแแก Python 2-แแก แแฎแแ แแแญแแ แ (แแฃแแชแ แชแแขแ แแแขแ แแกแฎแแแ แแแจแแฌแแ แฃแแ แกแแกแฎแแ แแงแ แกแแญแแ แ) แแ แแ แแ แแก แแฎแแ แแแญแแ แ Python 3.0-3.4-แแกแแแแก.
แแแแแแแแแแแก แแแแแแแแ แแแแก แแแแแแแ
แแฅแแแ แจแแแแซแแแแ แแแแแแงแแแแ แแแแแแแแแแแแ แแฎแแ: แแ แแแ แแแแแแแกแแแฃแแแ แแคแแชแแแแฃแ PyPI-แแ. แฌแงแแ แแแแ แฎแแแแแกแแฌแแแแแแ Github-แแ (แแฎ. แฅแแแแแ).
แแ แแแ แแแแแแแแแแ แแแแแแแแ แแแแ แแแแแขแแ แแกแแแฃแแ แแแ แแแแกแแแ แจแแแ แแแแแฃแแ แแแแแฎแแแฃแ แแแแก แแแแแแแแกแฌแแแแแแ. แแ แแฃ แจแแแซแแแแ แ แแฃแแ แแงแแก แกแแแ แข-env-แจแ แกแฎแแแแแกแฎแแ แแฎแแแ แคแฃแแฅแชแแแแแก แแแแแแฃแจแแแแแ, แแแจแแ แแแแแ-แจแแแจแ แแแแแแแแแ แแ แแก แแแแแ แ แแฆแแช แแแกแแแแขแแแแแ:
- แแแฃแแแแแแแ แแแ แแแแก แแฎแแ แแแญแแ แ;
- แแฃแแแแแ แแแขแแ แแฅแขแแฃแแ แแแแฃแแแแแชแแแก แจแแกแแซแแแแแแแ (แกแขแแแแแแ แแฃแจแแแแ);
- แแฎแแแ แแแแกแแแแแแก แแแแแขแแแ (แแแแแแแแแ, แแแแกแแแ stderr-แแแ แแแแแกแแแแแก แแแกแแฆแแแแ);
- แฎแแแแแกแแฌแแแแแ แแ แซแแแแแแแแก แแแ แแฅแขแแ แแแก แแแแฎแแ แชแแแแแแ (dir() แคแฃแแฅแชแแแ แแแแแกแแงแแแแแแแ);
- แ.แจ.
แแแขแแ แแขแฃแ แ
- smart-env แแแแแแแแแแ:
Github ะธPyPI - python-shell แแแแแแแแแแ:
Github ะธPyPI แขแแแแแ แฎแ แแแแแแแแแแแก แแแแแฎแแแแแแ
UPD 23.02.2020/XNUMX/XNUMX:
* แกแแชแแแแแ แแแแแขแแแแแแ, แจแแกแแแแแแกแ แแแฃแแแแ แแแแแฎแแแแฃแแแ
* แแแ แกแแ python-shell==1.0.1 แแแแแแแแ แแแแแกแแจแแแแแ 29.02.2020/XNUMX/XNUMX. แชแแแแแแแแแ แแแแชแแแก แแ แซแแแแแแก แแแขแแแแขแฃแ แ แจแแแกแแแแก แแ dir(Shell) แแ แซแแแแแแก แแฎแแ แแแญแแ แแก, แแแแแแแก แแ แแกแฌแแ แ แแแแแขแแคแแแแขแแ แแก แแฅแแแ แแ แซแแแแแแแแก แแแจแแแแแก แแ แจแแชแแแแแแแก แแแแแกแฌแแ แแแแก.
แฌแงแแ แ: www.habr.com