使用Vagrant搭建跨平臺的Python開發環境
最近升級了Win10之后感覺系統萌萌噠,不過也可惜了自己之前花費很大力氣搭建的開發環境。由于最近跨平臺的需求比較大,就考慮搭建一套跨平臺的開發環境。
Vagrant
Vagrant是一個相對輕量級的虛擬機管理軟件,根據官方的說明:
(Vagrant) Create and configure lightweight, reproducible, and portable development environments.
所以選擇了Vagrant來管理開發環境。Vagrant的下載和安裝非常的容易,在它的官方網站https://www.vagrantup.com/downloads.html 中下載需要的版本即可。
Virtual Box
Vagrant本身并不包含虛擬機管理軟件,因此我們需要配合Vagrant安裝一個虛擬機軟件。Vagrant支持VMware, Virtual Box, Hyper-V 等多種虛擬機軟件,我選擇的是Virtual Box。 免費,跨平臺。
Virtual Box的安裝也非常的容易,官方網站下載即可,在此就不再贅述了。
Tips:為什么有了虛擬機軟件還需要使用Vagrant?
因為簡單的虛擬機并不能滿足我們的需要,我們希望一個新的環境,開機就幫我們解決了一切。使用Vagrant可以方便的幫助我們在搭建系統之后,自動的管理端口映射/軟件包安裝等等問題。
同時,更重要的,Vagrant還可以方便的設定同步文件夾,讓我們在宿主機內對程序的修改,可以方便的同步到客戶機,在調試程序時,這是一個非常優秀的特質。
選擇客戶機系統
Vagrant 的客戶機可以支持多種系統,具體支持那些,可以前往 https://atlas.hashicorp.com/boxes/search 查看,我選擇的是Ubuntu 14.04 x64的版本,也就是https://atlas.hashicorp.com/ubuntu/boxes/trusty64 這個版本。
如果你沒有其他的需求,僅僅是需要一個干凈的ubuntu,選擇好之后在一個文件夾里執行vagrant init ubuntu/trusty64即可初始化一個Ubuntu 14.04 x64的虛擬機。
此時文件夾中會出現一個Vagrantfile的文件,就是這個客戶機的配置文件了。
修改配置文件
修改配置文件主要有兩個目的,一是配置端口映射,使我們可以從宿主機的端口去訪問客戶機,另一個目的是使得客戶機在系統加載完成時執行一個Shell腳本來安裝所需要的程序文件。
Vagrant會默認初始化一個端口映射為guest:22, host:2222也就是說客戶機的22端口,將被映射到宿主機的2222端口。
修改端口映射
我們在Vagrantfile文件內找到
# config.vm.network "forwarded_port", guest: 80, host: 8080
這一行,去掉#號,并按照我們的需要來修改端口號,我的設置如下:
config.vm.network "forwarded_port", guest: 5000, host: 15000
這樣就設置了客戶機的5000端口轉發到宿主機的15000端口,或者說宿主機的15000端口將轉發到客戶機的5000端口。
加載配置腳本
Vagrant可以設置一個配置腳本,以方便我們來設定配置:找到
# config.vm.provision "shell", inline: <<-SHELL # sudo apt-get update # sudo apt-get install -y apache2 # SHELL
這幾行,將其修改為
config.vm.provision "shell", path: "python_env.sh"
表面首次啟動后,將找到python_env.sh并執行。我們就可以通過設定這個腳本來完成配置不同的環境,我的配置如下:
echo "---------------------Upgrading System......---------" sudo rm -R /var/lib/apt/lists/* sudo apt-get update -y sudo apt-get upgrade -y sudo apt-get build-dep python echo "---------------------Upgrading System......---------" wget -c https://www.python.org/ftp/python/2.7.9/Python-2.7.9.tgz tar -xzvf Python-2.7.9.tgz cd Python-2.7.9/ LDFLAGS="-L/usr/lib/x86_64-linux-gnu" ./configure make sudo make install echo "---------------------Checking Installation-----------" python --version echo "---------------------Setting pip---------------------" sudo apt-get install build-essential sudo apt-get install python-dev sudo apt-get install python-pip -y echo "---------------------Upgrading pip-------------------" sudo pip install --upgrade pip
此時的目錄如下:
啟動
這一切做好之后,我們就可以啟動客戶機了。在目錄下執行vagrant up
配置環境中,可以看到已經在執行Shell腳本,更新系統了。這個時候只需要默默等待就好...
開始使用
Vagrant在啟動之后會為我們創建一個Private Key以供登陸,你可以直接在Windows的命令行下輸入vagrant ssh來進行SSH的操作,也可以像我一樣,使用其他的客戶端。我使用MobaXterm作為Windows下的SSH Client。
輸入之后,即可進入到開發環境中。
同步文件夾
不妨在終端中輸入cd /vagrant和ls,你看到了什么?
沒錯,我們之前在Windows中創建的python_env.sh和Vagrantfile赫然出現在了客戶機中。這就是同步文件夾了。該文件夾和Windows中的對應文件夾同步。
這樣,我們就可以輕松的在虛擬機中進行操作了。
來自:http://fermi.fantasist.cc/2015/07/31/shi-yong-vagrantda-jian-kua-ping-tai-de-pythonkai-fa-huan-jing/