成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Virtualenv + SublimeText 的Python開發(fā)環(huán)境

Airmusic / 2023人閱讀

摘要:最近在上使用遇到了問題,由于使用了庫,其同時存在于和,的庫中,版本為,而最新的為。建議使用參數(shù)將上的開發(fā)目錄掛載到容器中,這樣僅僅使用了容器提供的環(huán)境,而代碼跟容器本身并沒有關(guān)系。支持多種,,,之類,的確非常方便。

最近在Mac上使用Python遇到了問題,由于使用了pyOpenSSL庫,其同時存在于/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/Library/Python/2.7/site-packages,Mac python的庫中,pyOpenSSL版本為0.13,而最新的pyOpenSSL為0.15.1。使用sudo pip install --upgrade pyopenssl==0.15.1無法將Mac python的庫升級,所以無法使用0.15.1的pyopenssl。

嘗試了Docker, vagrant, virtualenv,這幾個東西都可以實現(xiàn)創(chuàng)建一個較為干凈的python開發(fā)環(huán)境,在嘗試了他們之后在這里分享一下心得,僅供參考,這里假定讀者也有以上工具的相關(guān)經(jīng)驗,不喜勿噴。

1. 基于Docker

其實docker的出現(xiàn),一定程度上就是為了解決這類問題,我把所有的代碼,庫文件,二進制,配置文件之類的,放到集裝箱里,一并打包給你,所以你就得到了一個跟我環(huán)境一模一樣的環(huán)境,不管是在開發(fā),測試還是生成環(huán)境,對于應用來說,周圍的環(huán)境都一模一樣,減少了部署,遷移之類的不必要的麻煩。

如果想要用Docker搭建一個Python開發(fā)環(huán)境,極為簡單,只需要去官方下載Python的docker image即可,啟動后,你可能需要安裝一些包,然后記得commit保存下你對鏡像的修改,下次啟動或者把鏡像導給你的同事,得到的環(huán)境都是一模一樣的。

但是千萬記得,別把你的代碼直接放到docker image中,這是個很不好的選擇,萬一哪次忘記commit就躲墻角里哭去吧。

建議使用-v參數(shù)將Host上的開發(fā)目錄掛載到容器中,這樣僅僅使用了容器提供的環(huán)境,而代碼跟容器本身并沒有關(guān)系。

OK,說到這,你可能覺得我說了一大堆的廢話,的確廢話,因為這一切在Docker中太簡單了。

2. 基于Vagrant

Vagrant是什么鬼?前段時間我一直想問這個問題,后來用RancherOS,官方推薦用這貨來啟動RancherOS,就試了一下。這貨實際上就是一個Wrapper,你看到的是統(tǒng)一的接口,但是其背后是各種虛擬機,默認是VirtualBox。

說白了,用Vagrant享受的服務是虛擬機提供的,其box的概念,實際上就是虛擬機的鏡像文件。Vagrant支持多種provider,VB,VMWare,AWS之類,的確非常方便。它對環(huán)境的打包比Docker更兇猛,直接打包的Virtual machine,和Vagrant的配置,想來并不是那么高效,但是的確方便可行。

如何在Vagrant上,也就是虛擬技術(shù)搭建Python環(huán)境,就變得很簡單了,就跟在一個獨立的系統(tǒng)上一樣,又是一大堆的廢話就不在重復了

3. Buildout

一個致力于給Python提供友好干凈的開發(fā)環(huán)境的工具,網(wǎng)上說這廝已經(jīng)到了機械時代,virtualenv+pip還處于手工時代,但是個人感覺比virtualenv+pip還復雜,看了一眼,就不想看了

4. Virtualenv

恩,這家伙差不多解決了我的問題,所以非常有好感。

Mac上可以通過pip或代碼安裝virtualenv,不詳細說了。安裝之后,通過命令創(chuàng)建一個新的環(huán)境,假定我們要創(chuàng)建的環(huán)境是叫test-cloud-env,執(zhí)行如下命令:

$ virtualenv test-cloud-env

這會再當前目錄創(chuàng)建test-cloud-env這個目錄,并在其下創(chuàng)建bin/,lib/,include/

接下來,你會發(fā)現(xiàn)有不少東西放在了bin/目錄下,其中有python的解釋器,以及一些腳本以及我們的activate腳本?,F(xiàn)在,我們馬上就要創(chuàng)建一個虛擬的獨立Python開發(fā)環(huán)境了,一個命令也就搞定,為了有個直觀的體驗,請看以下實例:

$ env python -c "import OpenSSL as a; print a.__version__"
0.13.1
$ source test-cloud-env/bin/activate
$ env python -c "import OpenSSL as a; print a.__version__"
0.15.1

看到區(qū)別了吧,啟用之前Python使用的是系統(tǒng)的庫,啟用之后使用新創(chuàng)建的庫。

如何給這個env安裝依賴庫?我使用了requirements.txt來保存需要安裝的庫及其版本,剩下的交給pip去搞定就行了

$ cat requirements.txt

pexpect
pyOpenSSL == 0.15.1
requests

$ pip install -r requirements.txt

安裝完成后,一個虛擬的獨立的Python開發(fā)環(huán)境就OK了。你可以為不同項目創(chuàng)建不同的env。

5. something else?

寫到這就打住就沒什么意思了,網(wǎng)上不是都搜得到么。。。

我比較喜歡Sublime Text,定制性比較高,已經(jīng)成為我主要的編輯器了。為了能夠讓編輯器里的代碼直接在Sublime Text里使用我們定制的env執(zhí)行,我們得開始定制一個build system。

打開編輯器,Tools->Build System->New Build System,添加代碼:

{
    "cmd": ["/path/test-cloud/pyenv.sh", "$file"],
    "file_regex": "^[ ]*File "(...*?)", line ([0-9]*)",
    "selector": "source.python"
}

保存為Python-Virtualenv.sublime-build。

這里用到一個腳本pyenv.sh,這個腳本所做的事情就是激活env,然后執(zhí)行當前腳本,我們再看看pyenv.sh的內(nèi)容

#!/bin/bash

pyfile=$1

source /path/to/env/bin/activate
# echo $PWD
env python -u $pyfile

記得給這個腳本加個可執(zhí)行權(quán)限。最后在sublime text 的build system里選擇Python-Virtualenv,然后你的腳本就會再自己定制的env中執(zhí)行了。

另外,對于使用其他環(huán)境的Python環(huán)境,比如Docker之類,同樣可以通過定制Build system來實現(xiàn)遠程執(zhí)行,具體可以參照我的另一篇文章?;舅悸肥且粯拥?,隨意定制。

virtualenv還有個管理器virtualenvwrapper,個人覺得用處不大,因為virtualenv實在是太輕量級了,以至于沒有必要折騰復用,當然大型項目除外,呵呵。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/37573.html

相關(guān)文章

  • Linux下使用 virtualenv 虛擬獨立 Python 環(huán)境

    摘要:另一個好處是,虛擬環(huán)境不需要管理員權(quán)限。當一個虛擬環(huán)境被激活后,程序的位置會被添加到中。比如,安裝到虛擬環(huán)境中,使用如下命令安裝過程會將和它的依賴集安裝到虛擬環(huán)境中。 簡介 在開發(fā)不同的應用時,我們可能需要不同的 Python 版本,同時可能還需要處理包的依賴、版本和間接權(quán)限問題。在同系統(tǒng)中,要解決這些問題往往非常棘手。在 Python 的開發(fā)環(huán)境中,為解決這樣的問題最常用的方法是使用...

    付永剛 評論0 收藏0
  • 使用 pyenv + virtualenv 打造多版本 Python 開發(fā)環(huán)境

    摘要:本文最早發(fā)表于個人博客配置環(huán)境在工作開發(fā)中,一直使用來管理的包環(huán)境。很好的解決了不同項目使用不同包的需求。建議路徑為添加環(huán)境變量。設置面向程序的本地版本,通過將版本號寫入當前目錄下的文件的方式。若找不到,就用版本。 本文最早發(fā)表于個人博客Pylixmwiki: http://pylixm.cc 配置環(huán)境: CentOS release 6.8 pyenv 20160509 在工作開...

    JerryWangSAP 評論0 收藏0
  • 創(chuàng)建Python虛擬環(huán)境——上

    摘要:如果應用需要,應用需要怎么辦這種情況下,每個應用需要各有一個獨立的運行環(huán)境。虛擬環(huán)境是一個創(chuàng)建隔離開發(fā)環(huán)境的工具。創(chuàng)建一個包含所有必要的可執(zhí)行文件的文件夾,用來使用工程所需要的依賴包。 Python應用程序開發(fā)中,如果系統(tǒng)只安裝了Python3.6.6。當開發(fā)者使用pip安裝第三方包時,所安裝的包會進入Python安裝目錄下的site-packages目錄中。Python的優(yōu)勢之一是有...

    ctriptech 評論0 收藏0
  • Python多版本切換工具-Pyenvvirtualenv及Anaconda科學計算環(huán)境配置

    摘要:為了安裝科學計算環(huán)境,控制好版本,今天上午總算折騰好了。切換和使用新的虛擬環(huán)境這樣就能切換為這個版本的虛擬環(huán)境。通過輸入查看現(xiàn)在版本,可以發(fā)現(xiàn)處于虛擬環(huán)境下了。指定包的版本多個版本并存,尤其是和的并存。下面用創(chuàng)建一個名叫的版本為的環(huán)境。 為了安裝Anaconda科學計算環(huán)境,控制好python版本,今天上午總算折騰好了。 學習python有時希望在python2.7環(huán)境下,有時希望在...

    rozbo 評論0 收藏0
  • 【機器學習】深度學習開發(fā)環(huán)境搭建

    摘要:打開命令提示符輸入出現(xiàn)下面提示說明已經(jīng)安裝成功安裝添加的環(huán)境變量環(huán)境變量中加上的路徑,例如。在命令提示符輸入安裝完成,建立一個全新的環(huán)境,例如我們想建立一個叫的開發(fā)環(huán)境,路徑為,那么我們輸入安裝完成。 工欲善其事,必先利其器。首先我們需要花費一些時間來搭建開發(fā)環(huán)境。 1.安裝python。python是人工智能開發(fā)首選語言。 2.安裝virtualenv。virtualenv可以為一個...

    galaxy_robot 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<