1. 程式人生 > >用pyenv和virtualenv搭建單機多版本python虛擬開發環境

用pyenv和virtualenv搭建單機多版本python虛擬開發環境

作為主流開發語言, 用python 開發的程式越來越多。 方便的是大多linux系統裡面都預設集成了python, 開發可以隨時隨地開始。 但有時候這也成為了一個短板, 比如說有時候我們需要開發和除錯一些需要安裝在預設python路徑裡的程式, 反覆地修改和安裝會使系統目錄越來越亂,這對於一些有潔癖的程式設計師來說是不可接受的。 還有時候我們需要在不同的python版本上開發, 而系統一般只會自帶一到兩種python版本, 切換起來更是麻煩。

本文將介紹如何利用pyenv 和virtualenv 在單機上搭建多版本python 虛擬開發環境。

首先我們搞清楚pyenv 和virtualenv分別是幹什麼的。

pyenv可以幫助你在一臺開發機上建立多個版本的python環境, 並提供方便的切換方法。

virtualenv則提供了一種功能, 就是將一個目錄建立為一個虛擬的python環境, 這樣的話, 使用者可以建立多個虛擬環境, 每個環境裡面的python版本可以是不同的, 也可以是相同的, 而且環境之間相互獨立。

如果解釋得還不是很清楚的話,我們舉例說明。

首先我們可以用pyenv 安裝多個python 版本, 比如安裝了2.5, 2.6, 3.3 三個版本。 使用者可以隨意切換當前預設的python版本。 但這時候, 每個版本的環境仍是唯一的, 如果我們想在環境中安裝一些庫的話, 還是會導致這個版本的環境被修改。 這個時候, 如果我們用virtual env去建立虛擬環境, 就可以完全保證系統路徑的乾淨。無論你在虛擬環境中安裝了什麼程式, 都不會影響已安裝版本的系統環境。

說了這麼多, 還是動手實踐一下來得實在。本文的例子是在一臺乾淨的Ubuntu機器上進行的

1. 首先我們安裝pyenv

因為我的Ubuntu是乾淨的, 所以還需要先安裝curl 和 git

1 sudo apt-get install curl git-core

接下來安裝pyenv

1 curl https://raw.github.com/yyuu/pyenv-installer/master/bin/pyenv-installer | bash

這個命令會把pyenv安裝到當前使用者的 ~/.pyenv目錄下.

同時, 我們還需要把下面程式碼存到~/.bashrc檔案中:

123456 export PYENV_ROOT="${HOME}/.pyenv"if[-d"${PYENV_ROOT}"];thenexport PATH="${PYENV_ROOT}/bin:${PATH}"eval"$(pyenv init -)"fi

這段程式碼的作用主要是指明pyenv的位置, 以便以後可以直接在命令列裡面執行pyenv命令。 儲存在~/.bashrc 檔案中是為了每次使用者登陸後自動生效。

所以如果你是第一次執行命令並且沒有登出的話, 這一段是不會生效的, 我們還需要執行下面的命令令其生效

1 source~/.bashrc

然後就可以直接在命令列裡面敲pyenv了。

2. 安裝一些必須的包

1 sudo apt-get build-dep python2.7

後面安裝其他版本python的時候會需要這些包

3. 安裝某個版本的python

首先我們可以檢視一下有哪些版本的python 可以安裝

1 pyenv install--list

結果如下:

123456789 2.42.4.12.4.22.4.32.4.42.4.52.4.62.5...

接下來, 作為例子我們安裝兩個版本 (2.7.1 和 3.3.5)

1 pyenv install2.7.1
1 pyenv install3.3.5

安裝完畢後, 我們可以檢視安裝的情況

1 pyenv versions

輸出結果如下:

123 *system(set by/home/tony/.pyenv/version)2.7.13.3.5

簡單來說我們已經在這臺機器上安裝了三個版本的python

system 代表當前系統的python 版本

2.7.1 和 3.3.5是我們用pyenv安裝的

*表示當前的python版本, 可以看到, 我們還在使用的是預設的system 自帶的python版本

4. 切換python版本做一下測試

既然已經安裝了兩個其他版本的python, 我們來做一下測試

1 pyenv global2.7.1

這條命令就是將當前python 版本切換到2.7.1

再次執行 pyenv versions, 結果如下:

123 system *2.7.1(set by/home/tony/.pyenv/version)3.3.5

可以看到當前的python 版本已經切換到2.7.1了, 如果還不放心, 直接執行 ‘python’ 命令進行驗證:

12345 tony@ubuntu:~$pythonPython2.7.1(r271:86832,May92014,01:07:17)[GCC4.8.2]on linux3Type"help","copyright","credits"or"license"formore information.>>>

這裡可以清楚看到, 當前版本確實是2.7.1

同理, 我們可以繼續用python global在各個版本之間進行切換, 如果要切換回系統版本, 請用:

1 pyenv globalsystem

如果要解除安裝某個版本的python, 可以這樣:

1 pyenv uninstallx.x.x

5. 利用virtualenv 建立虛擬python環境

現在我們已經安裝了多個python版本,但是這還不夠, 某些有潔癖的程式設計師是一定要系統環境足夠乾淨的,這時候我們可以使用virtualenv來建立虛擬python環境

virtualenv本是一個獨立的工具,官網在這裡:https://pypi.python.org/pypi/virtualenv

幸運的是,如果你是安裝我們前面的方式安裝pyenv的,那它已經幫我們以plugin的形式安裝好了virtualenv, 我們只要使用就好了

首先我們建立一個2.7.1的虛擬環境

1 pyenv virtualenv2.7.1env271

這條命令在本機上建立了一個名為env271的python虛擬環境,這個環境的真實目錄位於:~/.pyenv/versions/

注意,命令中的 ‘2.7.1’ 必須是一個安裝前面步驟已經安裝好的python版本, 否則會出錯。

然後我們可以繼續通過 ‘pyenv versions’ 命令來檢視當前的虛擬環境, 結果如下:

123 *system(set by/home/tony/.pyenv/version)2.7.13.3.5<br>env271

這裡我們可以看到, 除了已經安裝的python版本, 我們多出了一個env271的python虛擬環境

6. 切換和使用新的python虛擬環境

切換到新的虛擬環境的命令為

1 pyenv activate env271

接下來我們的python環境就已經切換到2.7.1的虛擬環境了, 執行 ‘python’ 命令認證

12345 (env271)tony@ubuntu:~$pythonPython2.7.1(r271:86832,May92014,01:07:17)[GCC4.8.2]on linux3Type"help","copyright","credits"or"license"formore information.>>>

可以看到, python版本已經是2.7.1, 而且是在虛擬環境之中 (env271)

下面基本上你就可以在這個虛擬環境裡面為所欲為了 :) 再也不用擔心繫統路徑被搞亂的問題了。

如果要切換回系統環境, 執行這個命令即可

1 pyenv deactivate

那如果要刪除這個虛擬環境呢? 答案簡單而且粗暴,只要直接刪除它所在的目錄就好:

1 rm-rf~/.pyenv/versions/env271/

至此大功告成!

本文簡單介紹瞭如何利用pyenv 和virtualenv來單機多版本python虛擬開發環境的方法,

這兩個工具還有很多功能, 無法一一詳述,具體可以參考他們的官方文件。 本文只起到一個拋磚引玉的作用, 希望有所幫助

相關推薦

pyenv virtualenv 搭建單機版本python 虛擬開發環境

作為主流開發語言, 用python 開發的程式越來越多。 方便的是大多linux系統裡面都預設集成了python, 開發可以隨時隨地開始。 但有時候這也成為了一個短板, 比如說有時候我們需要開發和除錯一些需要安裝在預設python路徑裡的程式, 反覆地修改和安裝會使系統目錄越來越亂,這對於一些有潔癖的程式設計

pyenvvirtualenv搭建單機版本python虛擬開發環境

作為主流開發語言, 用python 開發的程式越來越多。 方便的是大多linux系統裡面都預設集成了python, 開發可以隨時隨地開始。 但有時候這也成為了一個短板, 比如說有時候我們需要開發和除錯一些需要安裝在預設python路徑裡的程式, 反覆地修改和安裝會使系統目錄越來

Mac OSX python版本管理工具:pyenv virtualenv搭建

macos pyenv pyenv-virtualenv本博文只是簡單介紹如何安裝 概念問題 請自行查詢環境:10.13.1+shell1、安裝brew官網地址:https://brew.sh//usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercon

使用pyenvvirtualenv搭建python虛擬環境實踐總結

介紹 出於種種原因,很多人的電腦上會同時安裝很多個版本的 Python,比如會有 2.7 + 3.4。一般在 windows 下我們都可以通過使用絕對路徑的方式來繞過系統對 PATH 環境變數的查詢;在 Linux 下除了這種方式外,還可以在指令碼檔案開頭顯示

利用pipenvpyenv管理個相互獨立的Python虛擬開發環境

我們經常會遇到這樣的開發需求,比如你手頭有多個開發專案,其中專案A和專案B要求用python3,專案C需要用python2,而專案A和專案B又要求第三方依賴包相互獨立,互不干擾。 為了滿足這樣的開發需求,我們需要在自己的電腦上安裝多個Python版本

pyenvvirtualenv管理python版本版本同時

雜項 http pip git gin 創建 再次 是你 note 1、homebrew安裝: https://brew.sh/index_zh-cn 2、pyenv安裝使用: https://blog.csdn.net/m0_37998140/article/deta

CentOS6 下版本python管理(pyenv+python+virtualenv+ipython)

pyenv是個多版本python管理器,可以同時管理多個python版本共存,如pypy,miniconde等等 1 環境準備 安裝相關軟體和pyenv 1.1 安裝相關軟體 yum install -y readline readline-devel readline-static opens

使用 pyenv + virtualenv 打造版本 Python 開發環境

CentOS release 6.8 pyenv 20160509 在工作開發中,一直使用 virtualenv 來管理python的包環境。很好的解決了不同專案使用不同python包的需求。對於多python版本的問題如何解決一直無解,雖然可以安裝多個 版本的python,靠絕對路徑或靠建立虛擬環境的

pyenvvirtualenv、virtualenvwrapper三種python版本介紹

刷新 ges 根據 raw 方便 ims 名稱 wap 新的 今天有把此前接觸過的三種python實現多版本環境用到的軟件pyenv、virtualenv、virtualenvwrapper,了解了一番,現做如下總結: 一、pyenv: 是針對pyt

Ubuntu下安裝pyenv管理版本python

.com 安裝pyenv version dash pytho brush 我們 ash lvm 安裝Python版本管理工具——Pyenv git clone git://github.com/yyuu/pyenv.git ~/.pyenv e

rabbitmq 集群搭建 單機實例版

rabbitmq 集群 單機多實例版本rabbitmq 是一個開源的AMQP實現,用ERLANG編寫,由於erlang天生支持分布式高並發的語言,這也是rabbitmq被許多開發者所喜愛。 AMQP概念,這裏不做介紹,可以google一下,概念很重要,概念很重要,概念很重要,重要的事說三遍。 下面開始集群搭建

MongoDB復制集搭建(單機實例與不同服務器)

mem 實現 路徑 ext bin 方式 需要 tro ESS MongoDB復制集搭建 一、單機多實例搭建復制集 單機多實例只需要一臺虛擬機,通過復制配置文件使用不同端口來實現。安裝MongoDB請參考我的另外一篇博客博客地址:http://blog.51cto.com/

elasticsearchnuxtjs搭建bt搜索引擎

提升 ges num 測試 total .class warn ava 復雜度 世界上已經有了這麽多種子搜索引擎,為什麽你還要不厭其煩的做一個新的? 可以這麽說,地球上大多數的種子搜索引擎的前後端技術都比較古老,雖然古老的技術既經典又好用,但是作為一個喜歡嘗鮮的人,我仍然決

MinGWMSYS搭建windows下的linux環境模擬器

關於MinGW和MSYS分別是什麼我就不多介紹了,網上很多。【好像以前他倆在一個安裝檔案中,現在他倆成為獨立的project,兩者的安裝沒有什麼前後依賴關係,安裝目錄可以不同。MinG主要負責編譯環境,你可以近似看作GCC工具鏈。MSYS是一個小型GNU工具集,包含bash

Windows7下版本python與pip安裝pip使用

2、分別安裝python27和python36 進入各自安裝目錄,將python.exe重新命名為python2.exe和python3.exe 3、設定環境變數 C:\Python36-32\Scripts\; C:\Python36-32\;

GPUDocker搭建高效靈活的深度學習研發平臺

給資料科學家提供最好的工作工具是非常困難的。他們的電腦上幾乎需要有所有的功能,如極致的效能,最新的軟體,以及隨心所欲的試驗。我們為此開發了一套滿足上述所有需求的方案,並且避免了經常困擾系統管理員和開發團隊構建系統的重複性勞動。 tl;dr - 環境建立程式碼已

CentOSNginxOwnCloud搭建私有云盤

1. 安裝 Nginx 具體安裝步驟見如下連結 : 2. 安裝 OwnCloud 然後解壓到 CentOS 目錄下 , 例如 : /usr/local/owncloud 3. 安裝 PHP 安裝的版本最好是 PHP 5.6 版本以上

BlockBoundQueuec++11實現執行緒生產者消費者問題

最近在讀到陳碩的《linux多執行緒服務端程式設計》這書時,發現了兩個特別好用的模板類 : BlockQueue和BlockBoundQueue,用來實現多執行緒中的生產者消費者問題是特別方便的。但是其原始碼中用到boost庫,所以在這裡我稍微修改下,實現如下。

window下版本Python共存的配置使用

轉載 http://www.jianshu.com/p/9928b741f154 1.python2和python3版本共存的配置 進入python2的安裝路徑如下 修改python.exe,重新命名為python2.exe 進入python3的安裝路徑

clsublime搭建簡易c++開發環境

一些方法。。記錄一下。。僅供日後查閱。。 1.設定正確的環境變數,包括將VC\bin,Common7\IDE加入PATH,設定好INCLUDE和LIB變數。 2.由於使用vc的編譯器CL,所以需要新建一個build-system 我的sublime-build配置檔案: