使用Vagrant搭建跨平台的Python开发环境
admin
2023-07-30 22:23:34
0

最近升级了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文件内找到

1 # config.vm.network \”forwarded_port\”, guest: 80, host: 8080

这一行,去掉#号,并按照我们的需要来修改端口号,我的设置如下:

1 config.vm.network \”forwarded_port\”, guest: 5000, host: 15000

这样就设置了客户机的5000端口转发到宿主机的15000端口,或者说宿主机的15000端口将转发到客户机的5000端口。

加载配置脚本

Vagrant可以设置一个配置脚本,以方便我们来设定配置:找到

1234   # config.vm.provision \”shell\”, inline: <<-SHELL  #   sudo apt-get update  #   sudo apt-get install -y apache2  # SHELL

这几行,将其修改为

1   config.vm.provision \”shell\”, path: \”python_env.sh\”

表明首次启动后,将找到python_env.sh并执行。我们就可以通过设定这个脚本来完成配置不同的环境,我的配置如下:

1234567891011121314151617181920 echo \”———————Upgrading System……———\”  sudo rm R /var/lib/apt/lists/*  sudo aptget update y  sudo aptget upgrade y  sudo aptget builddep python  echo \”———————Upgrading System……———\”  wget c https://www.python.org/ftp/python/2.7.9/Python-2.7.9.tgz  tar xzvf Python2.7.9.tgz  cd Python2.7.9/  LDFLAGS=\”-L/usr/lib/x86_64-linux-gnu\” ./configure  make  sudo make install  echo \”———————Checking Installation———–\”  python version  echo \”———————Setting pip———————\”  sudo aptget install buildessential  sudo aptget install pythondev  sudo aptget install pythonpip 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中的对应文件夹同步。

这样,我们就可以轻松的在虚拟机中进行操作了。


相关内容

热门资讯

500 行 Python 代码... 语法分析器描述了一个句子的语法结构,用来帮助其他的应用进行推理。自然语言引入了很多意外的歧义,以我们...
定时清理删除C:\Progra... C:\Program Files (x86)下面很多scoped_dir开头的文件夹 写个批处理 定...
65536是2的几次方 计算2... 65536是2的16次方:65536=2⁶ 65536是256的2次方:65536=256 6553...
Mobi、epub格式电子书如... 在wps里全局设置里有一个文件关联,打开,勾选电子书文件选项就可以了。
scoped_dir32_70... 一台虚拟机C盘总是莫名奇妙的空间用完,导致很多软件没法再运行。经过仔细检查发现是C:\Program...
pycparser 是一个用... `pycparser` 是一个用 Python 编写的 C 语言解析器。它可以用来解析 C 代码并构...
小程序支付时提示:appid和... [Q]小程序支付时提示:appid和mch_id不匹配 [A]小程序和微信支付没有进行关联,访问“小...
python绘图库Matplo... 本文简单介绍了Python绘图库Matplotlib的安装,简介如下: matplotlib是pyt...
Prometheus+Graf... 一,Prometheus概述 1,什么是Prometheus?Prometheus是最初在Sound...
微信小程序使用slider实现... 众所周知哈,微信小程序里面的音频播放是没有进度条的,但最近有个项目呢,客户要求音频要有进度条控制,所...