使用Vagrant搭建跨平台的Python开发环境

jopen 9年前

最近升级了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的虚拟机。

使用Vagrant搭建跨平台的Python开发环境

此时文件夹中会出现一个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搭建跨平台的Python开发环境

启动

这一切做好之后,我们就可以启动客户机了。在目录下执行vagrant up

使用Vagrant搭建跨平台的Python开发环境

配置环境中,可以看到已经在执行Shell脚本,更新系统了。这个时候只需要默默等待就好... 使用Vagrant搭建跨平台的Python开发环境

开始使用

Vagrant在启动之后会为我们创建一个Private Key以供登陆,你可以直接在Windows的命令行下输入vagrant ssh来进行SSH的操作,也可以像我一样,使用其他的客户端。我使用MobaXterm作为Windows下的SSH Client。

使用Vagrant搭建跨平台的Python开发环境

输入之后,即可进入到开发环境中。

同步文件夹

不妨在终端中输入cd /vagrant和ls,你看到了什么?

使用Vagrant搭建跨平台的Python开发环境

没错,我们之前在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/