使用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/