久久国产乱子伦精品免费M,亚洲一区二区三区91,欧美国产在线视频,国产精品视频久久

用Pyenv 和 Virtualenv 搭建單機(jī)多版本 Python 虛擬開發(fā)環(huán)境

作為主流開發(fā)語言, 用Python 開發(fā)的程序越來越多。 方便的是大多Linux系統(tǒng)里面都默認(rèn)集成了Python, 開發(fā)可以隨時(shí)隨地開始。 但有時(shí)候這也成為了一個(gè)短板, 比如說有時(shí)候我們需要開發(fā)和調(diào)試一些需要安裝在默認(rèn)Python路徑里的程序, 反復(fù)地修改和安裝會(huì)使系統(tǒng)目錄越來越亂,這對于一些有潔癖的程序員來說是不可接受的。 還有時(shí)候我們需要在不同的Python版本上開發(fā), 而系統(tǒng)一般只會(huì)自帶一到兩種Python版本, 切換起來更是麻煩。

本文將介紹如何利用pyenv 和virtualenv 在單機(jī)上搭建多版本Python 虛擬開發(fā)環(huán)境。

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

pyenv可以幫助你在一臺(tái)開發(fā)機(jī)上建立多個(gè)版本的Python環(huán)境, 并提供方便的切換方法。

virtualenv則提供了一種功能, 就是將一個(gè)目錄建立為一個(gè)虛擬的Python環(huán)境, 這樣的話, 用戶可以建立多個(gè)虛擬環(huán)境, 每個(gè)環(huán)境里面的Python版本可以是不同的, 也可以是相同的, 而且環(huán)境之間相互獨(dú)立。

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

首先我們可以用pyenv 安裝多個(gè)Python 版本, 比如安裝了2.5, 2.6, 3.3 三個(gè)版本。 用戶可以隨意切換當(dāng)前默認(rèn)的Python版本。 但這時(shí)候, 每個(gè)版本的環(huán)境仍是唯一的, 如果我們想在環(huán)境中安裝一些庫的話, 還是會(huì)導(dǎo)致這個(gè)版本的環(huán)境被修改。 這個(gè)時(shí)候, 如果我們用virtual env去建立虛擬環(huán)境, 就可以完全保證系統(tǒng)路徑的干凈。無論你在虛擬環(huán)境中安裝了什么程序, 都不會(huì)影響已安裝版本的系統(tǒng)環(huán)境。

說了這么多, 還是動(dòng)手實(shí)踐一下來得實(shí)在。本文的例子是在一臺(tái)干凈的Ubuntu機(jī)器上進(jìn)行的

1. 首先我們安裝pyenv

因?yàn)槲业腢buntu是干凈的, 所以還需要先安裝curl 和 git

sudo apt-get install curl git-core

接下來安裝pyenv

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

這個(gè)命令會(huì)把pyenv安裝到當(dāng)前用戶的 ~/.pyenv目錄下.

同時(shí), 我們還需要把下面代碼存到~/.bashrc文件中:

export PYENV_ROOT="${HOME}/.pyenv"

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

這段代碼的作用主要是指明pyenv的位置, 以便以后可以直接在命令行里面運(yùn)行pyenv命令。 保存在~/.bashrc 文件中是為了每次用戶登陸后自動(dòng)生效。

所以如果你是第一次運(yùn)行命令并且沒有注銷的話, 這一段是不會(huì)生效的, 我們還需要運(yùn)行下面的命令令其生效

source ~/.bashrc

然后就可以直接在命令行里面敲pyenv了。

2. 安裝一些必須的包

sudo apt-get build-dep Python2.7

后面安裝其他版本Python的時(shí)候會(huì)需要這些包

3. 安裝某個(gè)版本的Python

首先我們可以查看一下有哪些版本的Python 可以安裝

pyenv install --list

結(jié)果如下:

2.4
2.4.1
2.4.2
2.4.3
2.4.4
2.4.5
2.4.6
2.5
...

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

pyenv install 2.7.1
pyenv install 3.3.5

安裝完畢后, 我們可以查看安裝的情況

pyenv versions

輸出結(jié)果如下:

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

簡單來說我們已經(jīng)在這臺(tái)機(jī)器上安裝了三個(gè)版本的Python

system 代表當(dāng)前系統(tǒng)的Python 版本

2.7.1 和 3.3.5是我們用pyenv安裝的

*表示當(dāng)前的Python版本, 可以看到, 我們還在使用的是默認(rèn)的system 自帶的Python版本

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

既然已經(jīng)安裝了兩個(gè)其他版本的Python, 我們來做一下測試

pyenv global 2.7.1

這條命令就是將當(dāng)前Python 版本切換到2.7.1

再次運(yùn)行 pyenv versions, 結(jié)果如下:

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

可以看到當(dāng)前的Python 版本已經(jīng)切換到2.7.1了, 如果還不放心, 直接運(yùn)行 ‘Python’ 命令進(jìn)行驗(yàn)證:

tony@ubuntu:~$ Python
Python 2.7.1 (r271:86832, May  9 2014, 01:07:17) 
[GCC 4.8.2] on Linux3
Type "help", "copyright", "credits" or "license" for more information.
>>>

這里可以清楚看到, 當(dāng)前版本確實(shí)是2.7.1

同理, 我們可以繼續(xù)用Python global在各個(gè)版本之間進(jìn)行切換, 如果要切換回系統(tǒng)版本, 請用:

pyenv global system

如果要卸載某個(gè)版本的Python, 可以這樣:

pyenv uninstall x.x.x

5. 利用virtualenv 創(chuàng)建虛擬Python環(huán)境

現(xiàn)在我們已經(jīng)安裝了多個(gè)Python版本,但是這還不夠, 某些有潔癖的程序員是一定要系統(tǒng)環(huán)境足夠干凈的,這時(shí)候我們可以使用virtualenv來創(chuàng)建虛擬Python環(huán)境

virtualenv本是一個(gè)獨(dú)立的工具,官網(wǎng)在這里:https://pypi.Python.org/pypi/virtualenv

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

首先我們創(chuàng)建一個(gè)2.7.1的虛擬環(huán)境

pyenv virtualenv 2.7.1 env271

這條命令在本機(jī)上創(chuàng)建了一個(gè)名為env271的Python虛擬環(huán)境,這個(gè)環(huán)境的真實(shí)目錄位于:~/.pyenv/versions/

注意,命令中的 ‘2.7.1’ 必須是一個(gè)安裝前面步驟已經(jīng)安裝好的Python版本, 否則會(huì)出錯(cuò)。

然后我們可以繼續(xù)通過 ‘pyenv versions’ 命令來查看當(dāng)前的虛擬環(huán)境, 結(jié)果如下:

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

這里我們可以看到, 除了已經(jīng)安裝的Python版本, 我們多出了一個(gè)env271的Python虛擬環(huán)境

6. 切換和使用新的Python虛擬環(huán)境

切換到新的虛擬環(huán)境的命令為

pyenv activate env271

接下來我們的Python環(huán)境就已經(jīng)切換到2.7.1的虛擬環(huán)境了, 運(yùn)行 ‘Python’ 命令認(rèn)證

(env271)tony@ubuntu:~$ Python
Python 2.7.1 (r271:86832, May  9 2014, 01:07:17) 
[GCC 4.8.2] on Linux3
Type "help", "copyright", "credits" or "license" for more information.
>>>

可以看到, Python版本已經(jīng)是2.7.1, 而且是在虛擬環(huán)境之中 (env271)

下面基本上你就可以在這個(gè)虛擬環(huán)境里面為所欲為了 :) 再也不用擔(dān)心系統(tǒng)路徑被搞亂的問題了。

如果要切換回系統(tǒng)環(huán)境, 運(yùn)行這個(gè)命令即可

pyenv deactivate

那如果要?jiǎng)h除這個(gè)虛擬環(huán)境呢? 答案簡單而且粗暴,只要直接刪除它所在的目錄就好:

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

至此大功告成!

本文簡單介紹了如何利用pyenv 和virtualenv來單機(jī)多版本Python虛擬開發(fā)環(huán)境的方法,

這兩個(gè)工具還有很多功能, 無法一一詳述,具體可以參考他們的官方文檔。

————

本文完,如果你想繼續(xù)學(xué)習(xí),可以點(diǎn)擊下面的鏈接,繼續(xù)看:

相關(guān)新聞

歷經(jīng)多年發(fā)展,已成為國內(nèi)好評(píng)如潮的Linux云計(jì)算運(yùn)維、SRE、Devops、網(wǎng)絡(luò)安全、云原生、Go、Python開發(fā)專業(yè)人才培訓(xùn)機(jī)構(gòu)!

    1. 主站蜘蛛池模板: 汕头市| 胶南市| 师宗县| 河东区| 明溪县| 桦甸市| 革吉县| 沙坪坝区| 封开县| 巧家县| 喀喇沁旗| 宁陵县| 仪陇县| 体育| 克东县| 雷州市| 惠东县| 株洲县| 昌乐县| 天津市| 石嘴山市| 衢州市| 长白| 东乌| 荆州市| 宜兴市| 芷江| 平邑县| 桃园县| 永城市| 威信县| 新竹市| 静乐县| 咸宁市| 重庆市| 江永县| 三明市| 保亭| 威远县| 扶风县| 江西省|