RM新时代网站-首页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

使用Vagrant搭建python開發(fā)環(huán)境的實(shí)例講解

馬哥Linux運(yùn)維 ? 來源:未知 ? 2019-08-03 11:20 ? 次閱讀

入職就趕緊投入開發(fā),別費(fèi)時(shí)間搭開發(fā)環(huán)境?!?a href="http://hljzzgx.com/v/tag/1315/" target="_blank">編程三分鐘”

每每新同事入職,都要在自己電腦上配置一堆環(huán)境,費(fèi)神費(fèi)力;每每開發(fā)測試都要重新配置開發(fā)環(huán)境,手工搭建,步驟很繁瑣,極易出錯(cuò)。

大神在時(shí),大神搭建,大神不在,以手撫膺坐長嘆。為此,VVVVVagrant橫空出世!??!

虛擬機(jī)編排工具Vagrant

他,基于虛擬機(jī),能打造出完美的物理隔離!

他,一次搭建,處處使用,拷貝一個(gè)鏡像就能讓新員工立即投入開發(fā),當(dāng)屬老板的最愛!

他,只需要一個(gè)文本,寥寥幾行,就能駕馭網(wǎng)絡(luò)配置、建立集群!

良好的第三方支持也讓他如魚得水,支持shell腳本、支持ansible自動(dòng)部署等等。他就是我們的主角Vagrant。

這次,我們就以搭建python開發(fā)環(huán)境為例,享受vagrant給我們帶來的便利。

安裝

mac環(huán)境兩行命令

brewcaskinstallvirtualboxbrewcaskinstallvagrant

其他環(huán)境下載兩個(gè)安裝包即可vagrant包 https://www.vagrantup.com/downloads.htmlvirtualbox https://www.virtualbox.org/wiki/Downloads

檢查是否安裝成功

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

初始化環(huán)境

第一種下載鏡像的方法

vagrantboxadd--providervirtualboxcentos/7

其中--provider virtualbox代表校驗(yàn)是否是virtualbox官方提供第二種下載方法

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

此處的/Users/pzqu/Documents/code/test/vbox是我的選定的下載目錄

對(duì)box的一系列操作命令文檔見這里https://www.vagrantup.com/docs/cli/box.html。

初始化

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

此時(shí)目錄下會(huì)生成一個(gè)Vagrantfile文件,此文件就是自動(dòng)化配置的關(guān)鍵

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

看一看里面的注釋大概就知道怎么寫了,主要是ruby的語法,可以掛載本地目錄到虛擬機(jī)里,配置網(wǎng)絡(luò)(接入公網(wǎng)、僅虛擬機(jī)訪問都可以)等。

除了對(duì)虛擬機(jī)進(jìn)行一些配置外,還可以通過各類Provisioner自動(dòng)化地安裝軟件、調(diào)整配置。詳見 https://www.vagrantup.com/docs/provisioning/

我的配置比較簡單,使用centos/7的系統(tǒng),把本機(jī)代碼項(xiàng)目的目錄掛載到/data/code目錄就可以了。

啟動(dòng)虛擬機(jī)以后直接在虛擬機(jī)里安裝開發(fā)環(huán)境,最后再打成鏡像就妥了。

配置如下

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

掛載文件目錄的時(shí)候報(bào)錯(cuò)

安裝此插件即可

vagrantplugininstallvagrant-vbguest

搭建開發(fā)環(huán)境

在Vagrantfile所在目錄下,使用vagrant up啟動(dòng)虛擬機(jī)再用vagrant ssh登陸虛擬機(jī)

然后執(zhí)行以下命令自動(dòng)安裝我們想要的python環(huán)境,注意requirements.txt是python項(xiàng)目自動(dòng)生成的

pipinstall-rrequirements.txt

補(bǔ)充:自動(dòng)生成requirements文件的方法

pipfreeze>requirements.txt

配置pycharm

打開配置,添加插件

配置Vagrant環(huán)境

指定虛擬機(jī)中的Python路徑,第一步選 show all

選擇Vagrant選擇鏡像目錄與虛擬機(jī)中python路徑

配置啟動(dòng)方式,這里我生成swagger,主要是Python interpreterpython路徑,Working direftory項(xiàng)目路徑(注意是虛擬機(jī)中映射的路徑,我這里在上一節(jié)配置的/data/code,我們在本地開發(fā)的時(shí)候會(huì)自動(dòng)同步修改)

運(yùn)行

導(dǎo)出box鏡像文件給別人使用

1.運(yùn)行 vboxmanage list vms 命令,可以看出我們的vagrant下的虛擬機(jī)列表(我的虛擬機(jī)只有一個(gè)box,“vbox_default_1563884434349_3918“。)

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

導(dǎo)出box鏡像先關(guān)機(jī),再導(dǎo)出。vagrant package是導(dǎo)出box的打包命令

vagrantpackage--basevbox_default_1563884434349_3918--outputcentos7_hanah_environment.box

--base代表本地vbox_default_1563884434349_3918是你要導(dǎo)出的box的名稱--output代表導(dǎo)出centos7_hanah_environment.box表示導(dǎo)出后的box名為centos7_hanah_environment.box,并保存在當(dāng)前目錄下

接下來你會(huì)看到如下內(nèi)容,就是導(dǎo)出成功了

$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。這下直接發(fā)給你的朋友,一句命令就獲得了一個(gè)和你完全相同的開發(fā)/測試環(huán)境。

$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來做呢?不僅可以一秒啟動(dòng)一個(gè)最適合的環(huán)境,而且又輕量又純凈。

權(quán)衡利弊,vagrant本身并不是虛擬化技術(shù),要把他跑起來還要安裝virtualbox等虛擬化平臺(tái),他更像是虛擬機(jī)的外掛程序、編排工具;針對(duì)的是批量虛擬機(jī)的管理,常常用于瞬間創(chuàng)建一個(gè)開發(fā)環(huán)境。

而docker本身就是虛擬化技術(shù),構(gòu)建迅速,不占用資源;針對(duì)的是應(yīng)用程序的編排,常常用于統(tǒng)一開發(fā)環(huán)境與生產(chǎn)環(huán)境。

說來說去,與其說是vagrant與docker,不如說使用是虛擬化平臺(tái)與容器之間的區(qū)別。

docker還是依賴于系統(tǒng)內(nèi)核,如果內(nèi)核不同,需要重新構(gòu)建。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 內(nèi)核
    +關(guān)注

    關(guān)注

    3

    文章

    1372

    瀏覽量

    40276
  • 虛擬機(jī)
    +關(guān)注

    關(guān)注

    1

    文章

    914

    瀏覽量

    28160
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4792

    瀏覽量

    84627

原文標(biāo)題:和重復(fù)搭建開發(fā)環(huán)境說 Bye Bye 之Vagrant

文章出處:【微信號(hào):magedu-Linux,微信公眾號(hào):馬哥Linux運(yùn)維】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    python環(huán)境搭建指南

    python 基礎(chǔ)(一)環(huán)境搭建
    發(fā)表于 07-30 14:13

    macOS搭建Python的Oracle開發(fā)環(huán)境

    macOS搭建Python的cx_Oracle開發(fā)環(huán)境
    發(fā)表于 05-13 12:45

    1.2 Python 開發(fā)環(huán)境搭建

    1.2 Python 開發(fā)環(huán)境搭建理論上只需要你安裝了 CPython 解釋器后,就可以開始寫 Python 代碼了。為了讓你的在寫代碼時(shí)
    發(fā)表于 02-16 18:29

    Dragonboard 410c Python交互設(shè)計(jì)——如何搭建PyQt環(huán)境

    Python是一個(gè)非常容易上手和使用的語言,非常適合開發(fā)者快速的搭建和實(shí)現(xiàn)自己ideal原型,在開發(fā)中,可以通過Python快速的
    發(fā)表于 02-13 10:32 ?1660次閱讀
    Dragonboard 410c <b class='flag-5'>Python</b>交互設(shè)計(jì)——如何<b class='flag-5'>搭建</b>PyQt<b class='flag-5'>環(huán)境</b>

    本地搭建Python Web的開發(fā)測試環(huán)境過程詳解

    最近想嘗試一下在IBM Bluemix上使用Python語言創(chuàng)建Web應(yīng)用程序,所以需要在本地搭建Python Web的開發(fā)測試環(huán)境。 關(guān)于
    發(fā)表于 12-12 08:50 ?4900次閱讀

    如何學(xué)習(xí)Python?Python編程環(huán)境搭建詳細(xì)說明

    本文檔的主要內(nèi)容詳細(xì)介紹的是如何學(xué)習(xí)Python?Python編程環(huán)境搭建詳細(xì)說明。
    發(fā)表于 04-26 08:00 ?25次下載
    如何學(xué)習(xí)<b class='flag-5'>Python</b>?<b class='flag-5'>Python</b>編程<b class='flag-5'>環(huán)境</b><b class='flag-5'>搭建</b>詳細(xì)說明

    python開發(fā)環(huán)境搭建步驟

    在正式學(xué)習(xí)Python編程之前,要先安裝Python,這包括“標(biāo)準(zhǔn)Python”、“第三方Python包”、“Python程序
    的頭像 發(fā)表于 05-05 22:23 ?3111次閱讀
    <b class='flag-5'>python</b><b class='flag-5'>開發(fā)</b><b class='flag-5'>環(huán)境</b><b class='flag-5'>搭建</b>步驟

    如何在Linux環(huán)境下實(shí)現(xiàn)Python環(huán)境搭建

    本文檔的主要內(nèi)容詳細(xì)介紹的是如何在Linux環(huán)境下實(shí)現(xiàn)Python環(huán)境搭建
    發(fā)表于 08-24 12:12 ?14次下載
    如何在Linux<b class='flag-5'>環(huán)境</b>下實(shí)現(xiàn)<b class='flag-5'>Python</b><b class='flag-5'>環(huán)境</b>的<b class='flag-5'>搭建</b>

    python的經(jīng)典實(shí)例相關(guān)講解

    本文檔的主要內(nèi)容詳細(xì)介紹的是python的經(jīng)典實(shí)例相關(guān)講解。
    發(fā)表于 03-02 15:33 ?9次下載

    1.2 Python 開發(fā)環(huán)境搭建

    1.2 Python 開發(fā)環(huán)境搭建 理論上只需要你安裝了 CPython 解釋器后,就可以開始寫 Python 代碼了。為了讓你的在寫代碼
    的頭像 發(fā)表于 02-15 17:16 ?1460次閱讀
    1.2 <b class='flag-5'>Python</b> <b class='flag-5'>開發(fā)</b><b class='flag-5'>環(huán)境</b>的<b class='flag-5'>搭建</b>

    【手把手教程】使用Sublime搭建的C/Python環(huán)境

    一文介紹使用Sublime搭建輕量級(jí)的C語言編程環(huán)境Python編程環(huán)境。
    的頭像 發(fā)表于 07-10 21:14 ?3731次閱讀
    【手把手教程】使用Sublime<b class='flag-5'>搭建</b>的C/<b class='flag-5'>Python</b><b class='flag-5'>環(huán)境</b>

    關(guān)于RISC-V MCU開發(fā)實(shí)例(一):環(huán)境搭建

    關(guān)于RISC-V MCU開發(fā)實(shí)例:咱們以CSM32RV20的開發(fā)環(huán)境搭建為例子,我們可以參看動(dòng)能世紀(jì)客戶分享的案例情況。
    的頭像 發(fā)表于 07-20 14:17 ?2372次閱讀
    關(guān)于RISC-V MCU<b class='flag-5'>開發(fā)</b><b class='flag-5'>實(shí)例</b>(一):<b class='flag-5'>環(huán)境</b><b class='flag-5'>搭建</b>

    如何搭建Python編程環(huán)境

    Python是一種高級(jí)編程語言,被廣泛用于科學(xué)計(jì)算、數(shù)據(jù)分析、人工智能、Web開發(fā)等領(lǐng)域。想要學(xué)習(xí)Python編程,首先需要搭建一個(gè)合適的編程環(huán)境
    的頭像 發(fā)表于 04-14 12:07 ?5158次閱讀

    Python環(huán)境搭建和LabVIEW中的調(diào)用

    本文主要介紹Python相關(guān)的環(huán)境搭建、Anaconda的使用以及在LabVIEW中調(diào)用Python的方法。
    的頭像 發(fā)表于 10-13 17:56 ?3115次閱讀
    <b class='flag-5'>Python</b><b class='flag-5'>環(huán)境</b><b class='flag-5'>搭建</b>和LabVIEW中的調(diào)用

    vagrant下載centos7鏡像

    Vagrant是一款用于構(gòu)建和管理虛擬開發(fā)環(huán)境的工具,通過Vagrant,我們可以輕松地搭建與項(xiàng)目開發(fā)
    的頭像 發(fā)表于 11-23 10:43 ?1025次閱讀
    RM新时代网站-首页