吴忠躺衫网络科技有限公司

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

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

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

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

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

入職就趕緊投入開發(fā),別費(fèi)時間搭開發(fā)環(huán)境。——編程三分鐘”

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

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

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

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

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

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

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

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

安裝

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

brewcaskinstallvirtualboxbrewcaskinstallvagrant

其他環(huán)境下載兩個安裝包即可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是我的選定的下載目錄

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

初始化

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

此時目錄下會生成一個Vagrantfile文件,此文件就是自動化配置的關(guān)鍵

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

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

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

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

啟動虛擬機(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

掛載文件目錄的時候報錯

安裝此插件即可

vagrantplugininstallvagrant-vbguest

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

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

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

pipinstall-rrequirements.txt

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

pipfreeze>requirements.txt

配置pycharm

打開配置,添加插件

配置Vagrant環(huán)境

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

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

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

運(yùn)行

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

1.運(yùn)行 vboxmanage list vms 命令,可以看出我們的vagrant下的虛擬機(jī)列表(我的虛擬機(jī)只有一個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)前目錄下

接下來你會看到如下內(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ā)給你的朋友,一句命令就獲得了一個和你完全相同的開發(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來做呢?不僅可以一秒啟動一個最適合的環(huán)境,而且又輕量又純凈。

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

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

說來說去,與其說是vagrant與docker,不如說使用是虛擬化平臺與容器之間的區(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)系本站處理。 舉報投訴
  • 內(nèi)核
    +關(guān)注

    關(guān)注

    3

    文章

    1382

    瀏覽量

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

    關(guān)注

    1

    文章

    937

    瀏覽量

    28426
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4807

    瀏覽量

    85037

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

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

收藏 人收藏

    評論

    相關(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 代碼了。為了讓你的在寫代碼時
    發(fā)表于 02-16 18:29

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

    Python是一個非常容易上手和使用的語言,非常適合開發(fā)者快速的搭建和實(shí)現(xiàn)自己ideal原型,在開發(fā)中,可以通過Python快速的
    發(fā)表于 02-13 10:32 ?1702次閱讀
    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 ?4912次閱讀

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

    本文檔的主要內(nèi)容詳細(xì)介紹的是如何學(xué)習(xí)PythonPython編程環(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 ?3167次閱讀
    <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 ?1504次閱讀
    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搭建輕量級的C語言編程環(huán)境Python編程環(huán)境
    的頭像 發(fā)表于 07-10 21:14 ?3825次閱讀
    【手把手教程】使用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)境搭建為例子,我們可以參看動能世紀(jì)客戶分享的案例情況。
    的頭像 發(fā)表于 07-20 14:17 ?2435次閱讀
    關(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是一種高級編程語言,被廣泛用于科學(xué)計(jì)算、數(shù)據(jù)分析、人工智能、Web開發(fā)等領(lǐng)域。想要學(xué)習(xí)Python編程,首先需要搭建一個合適的編程環(huán)境
    的頭像 發(fā)表于 04-14 12:07 ?5257次閱讀

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

    本文主要介紹Python相關(guān)的環(huán)境搭建、Anaconda的使用以及在LabVIEW中調(diào)用Python的方法。
    的頭像 發(fā)表于 10-13 17:56 ?3388次閱讀
    <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 ?1109次閱讀
    皇冠现金网网址| 大发888更名网址622| 德州扑克偷鸡| 子山午向的房子24山图| 大发888娱乐老虎机| 网上百家乐官网假| 易门县| 云鼎百家乐程序开发有限公司| 百家乐官网五式缆投法| 百家乐庄家必赢诀窍| 七胜百家乐官网赌场娱乐网规则| 恒利百家乐的玩法技巧和规则 | 澳门百家乐官网自杀| 金榜百家乐的玩法技巧和规则 | 贵南县| 金矿百家乐的玩法技巧和规则 | 百家乐官网号技巧| 乐天堂| 大发888在线娱乐城代理| 大丰收百家乐的玩法技巧和规则| 高级百家乐出千工具| 西丰县| 长乐坊娱乐城| 大嘴棋牌官方下载| 百家乐庄闲排列| 威斯汀百家乐官网的玩法技巧和规则 | 大发888娱乐城 健账号| 百家乐官方网址| 怎样玩百家乐官网的玩法技巧和规则 | 百家乐园鼎盛娱乐场| 百家乐官网如何打轮盘| 博盈百家乐官网游戏| 大发888官网 df888ylcxz46| 百家乐软件代理| 百家乐专用台布| 御匾会百家乐官网的玩法技巧和规则 | 大发888在线服务| 永利高娱乐| 沙龙百家乐赌场娱乐网规则| 艮山坤向 24山| 百家乐如何玩法|