python使用环境_使用python之环境管理
情景1:不同python版本的管理
同一電腦上的多個(gè)python版本之前的管理,為了突出問題的普遍存在,下面是有人在segmentfault上提的問題。
摘自:http://segmentfault.com/q/1010000000162043
情景2:同一python版本中同一庫的不同版本管理
例如在python2.7下應(yīng)用A是基于Django1.6,應(yīng)用B是基于Django1.7的,這種情況怎么管理。
為解決以上問題,下面隆重介紹下virtualenv、virtualenvwrapper。
virtualenv
“The basic problem being addressed is one of dependencies and versions, and indirectly permissions. Imagine you have an application that needs version 1 of LibFoo, but another application requires version 2. How can you use both these applications? If you install everything into/usr/lib/python2.7/site-packages (or whatever your platform’s standard location is), it’s easy to end up in a situation where you unintentionally upgrade an application that shouldn’t be upgraded.
Or more generally, what if you want to install an application?and leave it be? If an application works, any change in its libraries or the versions of those libraries can break the application.
Also, what if you can’t install packages into the global site-packages directory? For instance, on a shared host.”
大意就是virtualenv用于在一臺機(jī)器上創(chuàng)建多個(gè)獨(dú)立的python運(yùn)行環(huán)境,可以解決:
l隔離項(xiàng)目之間的第三方包依賴
l在沒有權(quán)限的情況下安裝新的Python軟件包
除此之外,還有一個(gè)額外的好處:部署應(yīng)用時(shí),把開發(fā)環(huán)境的虛擬環(huán)境打包到生產(chǎn)環(huán)境即可。
安裝
方式一:通過pip
[sudo] pip install virtualenv
方式二:源碼方式
下載、解壓
cd virtualenv-X.X
[sudo] python setup.py install
方式N…
使用
創(chuàng)建虛擬環(huán)境
virtualenv [虛擬環(huán)境名稱] /virtualevn.exe [虛擬環(huán)境名稱]
我的環(huán)境是windows python3.4,這樣創(chuàng)建虛擬環(huán)境:
E:\>D:\Python34\Scripts\virtualenv.exe env_py3.4
Using base prefix 'D:\\Python34'
New python executable in env_py3.4\Scripts\python.exe
Installing setuptools, pip...done.
創(chuàng)建虛擬環(huán)境env_py3.4之后,對應(yīng)目錄下面有以下文件夾:
E:\env_py3.4的目錄
2014/11/2615:38
2014/11/2615:38
2014/05/1615:34
2014/11/2615:38
2014/11/2615:38
其中Lib/site-packages包含了,從系統(tǒng)安裝的python3.4下面的庫。默認(rèn)情況下,虛擬環(huán)境會依賴系統(tǒng)環(huán)境中的site packages,就是說系統(tǒng)中已經(jīng)安裝好的第三方package也會安裝在虛擬環(huán)境中,如果不想依賴這些package,那么可以加上參數(shù)--no-site-packages建立虛擬環(huán)境
virtualenv --no-site-packages [虛擬環(huán)境名稱]
啟用虛擬環(huán)境
source bin/activate或者?Scripts\activate.bat
啟用虛擬環(huán)境之后,命令行提示符將以虛擬環(huán)境名為前綴,如(env_py3.4)E:\env_py3.4>。也可以通過python打印出os.sys.path進(jìn)行驗(yàn)證,如在我的env_py3.4虛擬環(huán)境啟用之后,系統(tǒng)path路徑如下所示:
E:\env_py3.4>Scripts\activate
(env_py3.4)E:\env_py3.4>python
Python 3.4.0 (v3.4.0:04f714765c13, Mar 16 2014, 19:24:06) [MSC v.1600 32 bit (In
tel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>>print(os.sys.path)
['', 'E:\\env_py3.4\\Scripts\\python34.zip', 'E:\\env_py3.4\\DLLs', 'E:\\env_py3
.4\\lib', 'E:\\env_py3.4\\Scripts', 'D:\\Python34\\Lib', 'D:\\Python34\\DLLs', '
E:\\env_py3.4', 'E:\\env_py3.4\\lib\\site-packages']
從os.sys.path中可以看出,這個(gè)環(huán)境下執(zhí)行python相關(guān)的操作都是限定在虛擬環(huán)境中。
退出虛擬環(huán)境
bin/deactivate或者?Scripts\deactivate
如退出env_py3.4虛擬環(huán)境,命令行提示符前綴也相應(yīng)改變了。
(env_py3.4) E:\env_py3.4>Scripts\deactivate
E:\env_py3.4>
在虛擬環(huán)境中安裝新的python軟件包,跟正常的python一樣,并且虛擬環(huán)境中已經(jīng)附帶pip、easy_install等工具,可以非常方便的使用。
virtualenvwrapper
Virtualenvwrapper是一個(gè)Virtualenv的extension,可使虛擬環(huán)境的管理變得更容易。詳細(xì)來說,Virtualenvwrapper提供下述功能:
l將所有的虛擬環(huán)境整合在一個(gè)目錄下。
l管理(新增、移除、復(fù)制)所有的虛擬環(huán)境。
l可以使用一個(gè)命令切換虛擬環(huán)境。
lTab補(bǔ)全虛擬環(huán)境的名字。
l每個(gè)操作都提供允許使用者自定的hooks。
l可撰寫容易分享的extension plugin系統(tǒng)。
安裝
通過pip或者easy_install安裝virtualenvwrapper
pip install virtualenvwrapper
默認(rèn)virtualenvwrapper安裝在/usr/local/bin下面,實(shí)際上你需要運(yùn)行virtualenvwrapper.sh文件才行。
說明:virtualenvwrapper is a set of shell functions defined in Bourne shell compatible syntax。所以在window平臺下,是不是使用不了的,但是對應(yīng)有一個(gè)virtualenvwrapper-win版本()。
virtualenvwrapper-win將安裝在python根目錄下面,如D:\Python34。
# using pip
pip install virtualenvwrapper-win
# using easy_install
easy_install virtualenvwrapper-win
# from source
git clone git://github.com/davidmarble/virtualenvwrapper-win.git
cd virtualenvwrapper-win
python setup.py install
使用
virtualenvwrapper-win和virtualenvwrapper的使用方式完全一樣:
l列出虛擬環(huán)境列表:workon或者lsvirtualenv
l新建虛擬環(huán)境:mkvirtualenv [虛擬環(huán)境名稱]
l啟動/切換虛擬環(huán)境:workon [虛擬環(huán)境名稱]
l刪除虛擬環(huán)境:rmvirtualenv [虛擬環(huán)境名稱]
l離開虛擬環(huán)境:deactivate.
例如,我創(chuàng)建了3個(gè)虛擬環(huán)境
…….
(vn_py3.4_app2) D:\Python34>mkvirtualenv.bat vn_py3.4_app3
Using base prefix 'D:\\Python34'
New python executable in vn_py3.4_app3\Scripts\python.exe
Installing setuptools, pip...done.
(vn_py3.4_app3) D:\Python34>workon.bat
Pass a name to activate one of the following virtualenvs:
==========================================================
vn_py3.4_app1
vn_py3.4_app2
vn_py3.4_app3
默認(rèn)創(chuàng)建的虛擬環(huán)境路徑為:%USERPROFILE%\Envs,即C:\Users\用戶名\Envs。
切換虛擬環(huán)境:
(vn_py3.4_app3) D:\Python34>workon.bat vn_py3.4_app1
(vn_py3.4_app1)D:\Python34>workon.bat vn_py3.4_app2
(vn_py3.4_app2)D:\Python34>
注意:如果window下面碰到D:\Python34\Scripts>mkvirtualenv.bat F:\evn_py3.4_app1
python.exe: can't open file 'D:\Python34\Scripts\virtualenv-script.py': [Errno 2
] No such file or directory,修改mkvirtualenv.bat中的python.exe "%PYHOME%\Scripts\virtualenv-script.py" %ARGS% ==》python.exe "%PYHOME%\Scripts\virtualenv.exe" %ARGS%即可。
總結(jié)
基于virtualenv + virtualenvwrapper可以很好的完成環(huán)境隔離,保證對每個(gè)應(yīng)用的環(huán)境是干凈的。而且對一個(gè)干凈的環(huán)境可以通過:
pip freeze > requirements.txt將包依賴信息保存在requirements.txt文件
pip install -r requirements.txt會自動從網(wǎng)上下載并安裝所有包
方便應(yīng)用部署分發(fā),關(guān)于pip軟件包管理再下一篇介紹。
相關(guān)連接:
總結(jié)
以上是生活随笔為你收集整理的python使用环境_使用python之环境管理的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: idea无法找到主启动类_idea 启动
- 下一篇: python为运行为何出现乱码_解决执行