Python 版本環(huán)境切換工具

原文鏈接

Python 版本環(huán)境切換工具

Python版本環(huán)境切換工具的作用就是讓多個不同版本的Python可以在系統(tǒng)上共存混聊。并且提供簡單的命令來支持不同Python版本之間的切換。

工具介紹

pyenv目前最流行的 python版本環(huán)境切換工具旦袋,但是不支持Windows

pywinWindows 上pyenv 的替代品椭微,但是功能相對pyenv比較少

py.exePython 3.3 版本以后Windows系統(tǒng)自帶的啟動工具(Python Launcher for Windows)网沾,可以直接在命令行中使用


特定Python版本虛擬環(huán)境切換工具

簡單的說初茶,虛擬環(huán)境切換工具就是可以根據(jù)當(dāng)前使用的Python版本環(huán)境來創(chuàng)建多個虛擬的Python環(huán)境。這些虛擬的環(huán)境之間相互獨立所踊,可以安裝各個環(huán)境所需的Python包泌枪。

工具介紹

virtualenv目前最流行的 python 虛擬環(huán)境配置工具

virtualenvwrapper使用shell開發(fā),是對virtualenv的一個封裝秕岛,簡化了virtualenv命令的使用碌燕,并且進(jìn)行了一些功能擴展

virtualenvwrapper-win使用Windows batch shell開發(fā)的virtualenvwrapper

venvPython 3.3 版本以后自帶的虛擬環(huán)境工具,僅支持 python 3.3 和以后版本


由于我現(xiàn)在大部分時間工作在Windows環(huán)境继薛,下面就主要介紹一下pywin和virtualenvwrapper-win的使用修壕。

pywin

現(xiàn)在看看Windows上Python版本環(huán)境切換工具pywin

對于pywin的工作原理就可以簡單的理解為遏考,通過pywin提供的命令可以簡單的以設(shè)置環(huán)境變量的方式?jīng)Q定優(yōu)先使用特定版本的Python慈鸠。

安裝

對于pywin,我們可以使用源碼灌具、easy_install和pip三種方式進(jìn)行安裝青团,關(guān)于這些安裝方式的關(guān)系譬巫,請參考前一篇文章

下面通過pip來安裝pywin:

常用命令

安裝完成之后就看看pywin的常用命令督笆。

"pyassoc"和"pywin genlaunchers"是兩個配置相關(guān)的命令芦昔。我本機安裝了2.7和3.4兩個版本的Python,默認(rèn)環(huán)境變量指向2.7胖腾,配置完成后就會就會在2.7目錄中生成本機安裝所有Python版本的launcher烟零。

配置完成之后,就可以通過pywin進(jìn)行不同版本之間的Python切換了咸作。

1. 打開環(huán)境變量PAHT中第一個Python版本環(huán)境

C:\Users\tianw1>pywin

Python 2.7.7(default, Jun12014,14:17:13) [MSC v.150032 bit (Intel)] on win32

Type "help","copyright","credits"or"license"formore information.>>> exit()

2. 打開Python 3.4

C:\Users\tianw1>pywin -3.4Python 3.4.3(v3.4.3:9b73f1c3e601, Feb242015,22:43:06) [MSC v.160032 bit (Intel)] on win32

Type "help","copyright","credits"or"license"formore information.>>> exit()

3. 將Python 3.4設(shè)置為默認(rèn)的Python執(zhí)行環(huán)境锨阿,根據(jù)輸出也可以看出,其實就是將Python 3.4目錄放在環(huán)境變量PATH的前面位置

C:\Users\tianw1>pywin setdefault3.4? ? Setting default python foractive session to:3.4? ? C:\Python34;C:\Python34\Scripts -- now at front of PATH

# 由于Python 3.4中沒有安裝pywin记罚,所以會報錯

C:\Users\tianw1>pywin'pywin' is not recognized as an internal or external command,

operable program or batch file.

C:\Users\tianw1>python

Python 3.4.3(v3.4.3:9b73f1c3e601, Feb242015,22:43:06) [MSC v.160032 bit (Intel)] on win32

Type "help","copyright","credits"or"license"formore information.>>> exit()

4. 即使上面通過pywin將默認(rèn)Python版本環(huán)境設(shè)為3.4墅诡,但是由于文件的查找還是先本地,然后環(huán)境變量PATH桐智。所以末早,下面方式使用的還是2.7版本,同時也可以再通過pywin將2.7設(shè)置為默認(rèn)Python版本環(huán)境说庭。

C:\>cd Python27

C:\Python27>python

Python 2.7.7(default, Jun12014,14:17:13) [MSC v.150032 bit (Intel)] on win32

Type "help","copyright","credits"or"license"formore information.>>> exit()

C:\Python27>pywin setdefault2.7? ? Setting default python foractive session to:2.7? ? C:\Python27;C:\Python27\Scripts -- now at front of PATH

C:\Python27>

virtualenvwrapper-win

在Windows環(huán)境中使用"virtualenvwrapper-win"還是比較方便的然磷。

安裝

同樣使用pip進(jìn)行安裝:

pipinstallvirtualenvwrapper-win

常用命令

安裝完成之后,就可以直接使用"virtualenvwrapper-win"提供的命令來創(chuàng)建虛擬環(huán)境了刊驴。

1. 新建虛擬環(huán)境:mkvirtualenv env_name

C:\Users\tianw1>mkvirtualenv py27_dev1

New python executable in py27_dev1\Scripts\python.exe

Installing setuptools, pip, wheel...done.

(py27_dev1) C:\Users\tianw1>pip list

pip (7.1.2)

setuptools (18.2)

wheel (0.24.0)

注意姿搜,默認(rèn)情況虛擬環(huán)境不會自通引用原始Python環(huán)境中的軟件包,但是可以通過"--system-site-packages"參數(shù)來使虛擬環(huán)境引用原始Python環(huán)境中的軟件包捆憎。

C:\Users\tianw1>mkvirtualenv --system-site-packages py27_dev2

New python executable in py27_dev2\Scripts\python.exe

Installing setuptools, pip, wheel...done.

(py27_dev2) C:\Users\tianw1>pip list

backports.ssl-match-hostname(3.4.0.2)

certifi (2015.4.28)

click (4.1)

flask (0.11.dev0)

gevent (1.0.2)

greenlet (0.4.7)

itsdangerous (0.24)

jinja2 (2.8)

pip (7.1.2)

pywin (0.3.1)

setuptools (18.2)

smmap (0.9.0)

tornado (4.2.1)

virtualenv (13.1.2)

virtualenvwrapper-win (1.2.1)

Werkzeug (0.10.4)

wheel (0.24.0)

2. 離開虛擬環(huán)境:deactivate

(py27_dev1) C:\Users\tianw1>deactivate

C:\Users\tianw1>?

3. 列出虛擬環(huán)境列表:workon 或lsvirtualenv

C:\Users\tianw1>workon

Pass a name to activate one of the following virtualenvs:==============================================================================py27_dev1

py27_dev2

C:\Users\tianw1>lsvirtualenvdir/b /ad"C:\Users\tianw1\Envs"==============================================================================py27_dev1

py27_dev2

C:\Users\tianw1>

4. 刪除虛擬環(huán)境:rmvirtualenv env_name

總結(jié)

本文介紹了Python 版本環(huán)境切換工具和虛擬環(huán)境切換工具舅柜,通過這些工具可以方便系統(tǒng)中不同版本的Python切換,同時也方便了創(chuàng)建獨立的Python虛擬環(huán)境躲惰。

使用Python虛擬環(huán)境的另一個好處是可以方便的進(jìn)行環(huán)境部署致份,對于每個虛擬環(huán)境,都可以通過下面的命令很方便的進(jìn)行環(huán)境部署:

pip freeze > requirements.txt將包依賴信息保存在requirements.txt文件

pip install -r requirements.txt會自動從網(wǎng)上下載并安裝所有包

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末础拨,一起剝皮案震驚了整個濱河市氮块,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌诡宗,老刑警劉巖滔蝉,帶你破解...
    沈念sama閱讀 217,185評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異僚焦,居然都是意外死亡,警方通過查閱死者的電腦和手機曙痘,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,652評論 3 393
  • 文/潘曉璐 我一進(jìn)店門芳悲,熙熙樓的掌柜王于貴愁眉苦臉地迎上來立肘,“玉大人,你說我怎么就攤上這事名扛×履辏” “怎么了?”我有些...
    開封第一講書人閱讀 163,524評論 0 353
  • 文/不壞的土叔 我叫張陵肮韧,是天一觀的道長融蹂。 經(jīng)常有香客問我,道長弄企,這世上最難降的妖魔是什么超燃? 我笑而不...
    開封第一講書人閱讀 58,339評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮拘领,結(jié)果婚禮上意乓,老公的妹妹穿的比我還像新娘。我一直安慰自己约素,他們只是感情好届良,可當(dāng)我...
    茶點故事閱讀 67,387評論 6 391
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著圣猎,像睡著了一般士葫。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上送悔,一...
    開封第一講書人閱讀 51,287評論 1 301
  • 那天慢显,我揣著相機與錄音,去河邊找鬼放祟。 笑死鳍怨,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的跪妥。 我是一名探鬼主播鞋喇,決...
    沈念sama閱讀 40,130評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼眉撵!你這毒婦竟也來了侦香?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,985評論 0 275
  • 序言:老撾萬榮一對情侶失蹤纽疟,失蹤者是張志新(化名)和其女友劉穎罐韩,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體污朽,經(jīng)...
    沈念sama閱讀 45,420評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡散吵,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,617評論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片矾睦。...
    茶點故事閱讀 39,779評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡晦款,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出枚冗,到底是詐尸還是另有隱情缓溅,我是刑警寧澤,帶...
    沈念sama閱讀 35,477評論 5 345
  • 正文 年R本政府宣布赁温,位于F島的核電站坛怪,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏股囊。R本人自食惡果不足惜袜匿,卻給世界環(huán)境...
    茶點故事閱讀 41,088評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望毁涉。 院中可真熱鬧沉帮,春花似錦、人聲如沸贫堰。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,716評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽其屏。三九已至喇勋,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間偎行,已是汗流浹背川背。 一陣腳步聲響...
    開封第一講書人閱讀 32,857評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留蛤袒,地道東北人熄云。 一個月前我還...
    沈念sama閱讀 47,876評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像妙真,于是被迫代替她去往敵國和親缴允。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,700評論 2 354

推薦閱讀更多精彩內(nèi)容