0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

使用Vagrant搭建python开发环境的实例讲解

马哥Linux运维 来源:未知 2019-08-03 11:20 次阅读

入职就赶紧投入开发,别费时间搭开发环境。——编程三分钟”

每每新同事入职,都要在自己电脑上配置一堆环境,费神费力;每每开发测试都要重新配置开发环境,手工搭建,步骤很繁琐,极易出错。

大神在时,大神搭建,大神不在,以手抚膺坐长叹。为此,VVVVVagrant横空出世!!!

虚拟机编排工具Vagrant

他,基于虚拟机,能打造出完美的物理隔离!

他,一次搭建,处处使用,拷贝一个镜像就能让新员工立即投入开发,当属老板的最爱!

他,只需要一个文本,寥寥几行,就能驾驭网络配置、建立集群!

良好的第三方支持也让他如鱼得水,支持shell脚本、支持ansible自动部署等等。他就是我们的主角Vagrant。

这次,我们就以搭建python开发环境为例,享受vagrant给我们带来的便利。

安装

mac环境两行命令

brewcaskinstallvirtualboxbrewcaskinstallvagrant

其他环境下载两个安装包即可vagrant包 https://www.vagrantup.com/downloads.htmlvirtualbox https://www.virtualbox.org/wiki/Downloads

检查是否安装成功

$vagrantversionInstalledVersion:2.2.5LatestVersion:2.2.5You'rerunninganup-to-dateversionofVagrant!

初始化环境

第一种下载镜像的方法

vagrantboxadd--providervirtualboxcentos/7

其中--provider virtualbox代表校验是否是virtualbox官方提供第二种下载方法

vagrantboxadd--namecentos/7--providervirtualbox/Users/pzqu/Documents/code/test/vbox/centos_virtualbox.box

此处的/Users/pzqu/Documents/code/test/vbox是我的选定的下载目录

对box的一系列操作命令文档见这里https://www.vagrantup.com/docs/cli/box.html。

初始化

cd/Users/pzqu/Documents/code/test/vboxvagrantinitcentos/7

此时目录下会生成一个Vagrantfile文件,此文件就是自动化配置的关键

https://www.vagrantup.com/docs/vagrantfile/

看一看里面的注释大概就知道怎么写了,主要是ruby的语法,可以挂载本地目录到虚拟机里,配置网络(接入公网、仅虚拟机访问都可以)等。

除了对虚拟机进行一些配置外,还可以通过各类Provisioner自动化地安装软件、调整配置。详见 https://www.vagrantup.com/docs/provisioning/

我的配置比较简单,使用centos/7的系统,把本机代码项目的目录挂载到/data/code目录就可以了。

启动虚拟机以后直接在虚拟机里安装开发环境,最后再打成镜像就妥了。

配置如下

Vagrant.configure("2")do|config|config.vm.box="centos/7"config.vm.synced_folder"/Users/pzqu/Documents/code/gerrit","/data/code"end

挂载文件目录的时候报错

安装此插件即可

vagrantplugininstallvagrant-vbguest

搭建开发环境

在Vagrantfile所在目录下,使用vagrant up启动虚拟机再用vagrant ssh登陆虚拟机

然后执行以下命令自动安装我们想要的python环境,注意requirements.txt是python项目自动生成的

pipinstall-rrequirements.txt

补充:自动生成requirements文件的方法

pipfreeze>requirements.txt

配置pycharm

打开配置,添加插件

配置Vagrant环境

指定虚拟机中的Python路径,第一步选 show all

选择Vagrant选择镜像目录与虚拟机中python路径

配置启动方式,这里我生成swagger,主要是Python interpreterpython路径,Working direftory项目路径(注意是虚拟机中映射的路径,我这里在上一节配置的/data/code,我们在本地开发的时候会自动同步修改)

运行

导出box镜像文件给别人使用

1.运行 vboxmanage list vms 命令,可以看出我们的vagrant下的虚拟机列表(我的虚拟机只有一个box,“vbox_default_1563884434349_3918“。)

$vboxmanagelistvms"vbox_default_1563884434349_3918"{59864f0b-9731-4839-baa2-95d9a6aab731}

导出box镜像先关机,再导出。vagrant package是导出box的打包命令

vagrantpackage--basevbox_default_1563884434349_3918--outputcentos7_hanah_environment.box

--base代表本地vbox_default_1563884434349_3918是你要导出的box的名称--output代表导出centos7_hanah_environment.box表示导出后的box名为centos7_hanah_environment.box,并保存在当前目录下

接下来你会看到如下内容,就是导出成功了

$vagrantpackage--basevbox_default_1563884434349_3918--outputcentos7_hanah_environment.box==>vbox_default_1563884434349_3918:ExportingVM...==>vbox_default_1563884434349_3918:Compressingpackageto:/Users/pzqu/Documents/code/test/vbox/centos7_hanah_environment.box

喝完一瓶奶的功夫就完成了,这取决于你的box的大小,我的box大约900M。这下直接发给你的朋友,一句命令就获得了一个和你完全相同的开发/测试环境。

$vagrantboxaddcentos7_hanah_environment./centos7_hanah_environment.box==>box:Boxfilewasnotdetectedasmetadata.Addingitdirectly...==>box:Addingbox'centos7_hanah_environment'(v0)forprovider:box:Unpackingnecessaryfilesfrom:file:///Users/pzqu/Documents/code/test/vbox/centos7_hanah_environment.box==>box:Successfullyaddedbox'centos7_hanah_environment'(v0)for'virtualbox'!

vagrant box add 别名 box名

其他想法

听起来vagrant所做的这些事情和docker有很多重叠的地方,为什么不直接用docker来做呢?不仅可以一秒启动一个最适合的环境,而且又轻量又纯净。

权衡利弊,vagrant本身并不是虚拟化技术,要把他跑起来还要安装virtualbox等虚拟化平台,他更像是虚拟机的外挂程序、编排工具;针对的是批量虚拟机的管理,常常用于瞬间创建一个开发环境。

而docker本身就是虚拟化技术,构建迅速,不占用资源;针对的是应用程序的编排,常常用于统一开发环境与生产环境。

说来说去,与其说是vagrant与docker,不如说使用是虚拟化平台与容器之间的区别。

docker还是依赖于系统内核,如果内核不同,需要重新构建。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 内核
    +关注

    关注

    3

    文章

    1309

    浏览量

    39843
  • 虚拟机
    +关注

    关注

    1

    文章

    854

    浏览量

    27371
  • python
    +关注

    关注

    51

    文章

    4674

    浏览量

    83464

原文标题:和重复搭建开发环境说 Bye Bye 之Vagrant

文章出处:【微信号:magedu-Linux,微信公众号:马哥Linux运维】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    python环境搭建指南

    python 基础(一)环境搭建
    发表于 07-30 14:13

    macOS搭建Python的Oracle开发环境

    macOS搭建Python的cx_Oracle开发环境
    发表于 05-13 12:45

    1.2 Python 开发环境搭建

    1.2 Python 开发环境搭建理论上只需要你安装了 CPython 解释器后,就可以开始写 Python 代码了。为了让你的在写代码时
    发表于 02-16 18:29

    本地搭建Python Web的开发测试环境过程详解

    最近想尝试一下在IBM Bluemix上使用Python语言创建Web应用程序,所以需要在本地搭建Python Web的开发测试环境。 关于
    发表于 12-12 08:50 4784次阅读

    搭建C语言开发环境(Windows平台)汇总

    本文给大家汇总了5种在WIN平台下搭建C语言开发环境的方法,包括在Windows平台配置GNU环境,使用Sublime Test开发C语言程
    的头像 发表于 02-01 10:03 3443次阅读

    如何学习PythonPython编程环境搭建详细说明

    本文档的主要内容详细介绍的是如何学习PythonPython编程环境搭建详细说明。
    发表于 04-26 08:00 25次下载
    如何学习<b class='flag-5'>Python</b>?<b class='flag-5'>Python</b>编程<b class='flag-5'>环境</b><b class='flag-5'>搭建</b>详细说明

    python开发环境搭建步骤

    在正式学习Python编程之前,要先安装Python,这包括“标准Python”、“第三方Python包”、“Python程序
    的头像 发表于 05-05 22:23 2905次阅读
    <b class='flag-5'>python</b><b class='flag-5'>开发</b><b class='flag-5'>环境</b><b class='flag-5'>搭建</b>步骤

    如何在Linux环境下实现Python环境搭建

    本文档的主要内容详细介绍的是如何在Linux环境下实现Python环境搭建
    发表于 08-24 12:12 14次下载
    如何在Linux<b class='flag-5'>环境</b>下实现<b class='flag-5'>Python</b><b class='flag-5'>环境</b>的<b class='flag-5'>搭建</b>

    python的经典实例相关讲解

    本文档的主要内容详细介绍的是python的经典实例相关讲解
    发表于 03-02 15:33 9次下载

    1.2 Python 开发环境搭建

    1.2 Python 开发环境搭建 理论上只需要你安装了 CPython 解释器后,就可以开始写 Python 代码了。为了让你的在写代码
    的头像 发表于 02-15 17:16 1237次阅读
    1.2 <b class='flag-5'>Python</b> <b class='flag-5'>开发</b><b class='flag-5'>环境</b>的<b class='flag-5'>搭建</b>

    【手把手教程】使用Sublime搭建的C/Python环境

    一文介绍使用Sublime搭建轻量级的C语言编程环境Python编程环境
    的头像 发表于 07-10 21:14 2526次阅读
    【手把手教程】使用Sublime<b class='flag-5'>搭建</b>的C/<b class='flag-5'>Python</b><b class='flag-5'>环境</b>

    关于RISC-V MCU开发实例(一):环境搭建

    关于RISC-V MCU开发实例:咱们以CSM32RV20的开发环境搭建为例子,我们可以参看动能世纪客户分享的案例情况。
    的头像 发表于 07-20 14:17 2000次阅读
    关于RISC-V MCU<b class='flag-5'>开发</b><b class='flag-5'>实例</b>(一):<b class='flag-5'>环境</b><b class='flag-5'>搭建</b>

    如何搭建Python编程环境

    Python是一种高级编程语言,被广泛用于科学计算、数据分析、人工智能、Web开发等领域。想要学习Python编程,首先需要搭建一个合适的编程环境
    的头像 发表于 04-14 12:07 4494次阅读

    Python环境搭建和LabVIEW中的调用

    本文主要介绍Python相关的环境搭建、Anaconda的使用以及在LabVIEW中调用Python的方法。
    的头像 发表于 10-13 17:56 767次阅读
    <b class='flag-5'>Python</b><b class='flag-5'>环境</b><b class='flag-5'>搭建</b>和LabVIEW中的调用

    vagrant下载centos7镜像

    Vagrant是一款用于构建和管理虚拟开发环境的工具,通过Vagrant,我们可以轻松地搭建与项目开发
    的头像 发表于 11-23 10:43 473次阅读