在學習python過程當中,centos系統自帶的python版本比較滯後。在測試過程當中,每每須要多個版本,但又不想影響系統自帶的版本;尤爲是在學習django過程當中,python版本切換更加頻繁,所以有了多版本切換需求。python
在網上查了相關的文檔,起初寫了幾個腳本,完成多版本的部署和切換,最終效果不太理想。git
剛好最近在學習ansible,決定使用ansible來部署python的多版本環境。github
v1.0 基本實現了python多環境的部署;
v1.1 使用role從新組織了playbook,增長了卸載功能pyuninstall
v1.1.1 因爲網絡問題,安裝python每每過慢,增長使用本地安裝包進行安裝,默認並無啓用,能夠修改use_local_python_targz: true
啓用。django
克隆並配置好對應主機的ip後,直接運行playbook,默認會安裝python3.6.0;
在命令行運行py360
便可啓動虛擬環境,運行pyd
便可關閉虛擬環境;centos
git clone https://git.coding.net/echohiyang/pyinstall.git
或者下載指定的版本網絡
wget https://coding.net/u/echohiyang/p/pyinstall/git/archive/v1.1.1.zip
python_version_to_install: 3.6.0 python_version: 3.6.0 python_alias: py360
python_version_to_install
將要安裝的python版本,所要安裝的版本已經存在時,安裝步驟會跳過;python_version_to_deploy
指向的python_version_to_install
已經存在或者正在被安裝,則會建立python的虛擬環境,別名爲python_alias
;實際上就是用哪一個版本建立python虛擬開發環境;
python_alias:建立虛擬環境的別名學習
ansible-play pyinstall.yml
ansible-play pyuninstall.yml
部署結束測試
前面部署過程當中已經添加了python_alias別名,能夠直接使用別名來啓動python虛擬環境。.net
這裏一個只能創建一個開發環境,多個開發環境須要執行屢次;因爲ansible具備冪等性,屢次相同的執行並不會致使覆蓋。命令行
/usr/local/pyenv 主目錄 /usr/local/pyenv/path.d/ 自定義的PATH變量
此項目直接引用瞭如下兩個開源項目
https://github.com/yyuu/pyenv...
https://github.com/yyuu/pyenv...