python基礎(chǔ)環(huán)境搭建
Python的環(huán)境搭建說(shuō)難也不難,說(shuō)簡(jiǎn)單也不簡(jiǎn)單。主要有以上幾點(diǎn)盼铁。
1.Python的安裝就已經(jīng)自帶了Python解釋器,默認(rèn)是CPython蹋偏。
2.當(dāng)我們需要使用第三方庫(kù)的時(shí)候便斥,我們需要使用到的包管理工具。
3.當(dāng)我們的電腦有幾種Python版本威始,并且在每個(gè)Python版本都需要有虛擬環(huán)境時(shí)枢纠,這需要有環(huán)境管理。
4.當(dāng)我們要把自己的程序打包成exe時(shí)黎棠,則需要Python打包軟件晋渺。
一.Python的安裝不必細(xì)說(shuō)
二.包管理工具
Python的包管理工具有三種,distutils脓斩、setuptools(distribute)和pip木西。
1.distutils
distutils 是 python 標(biāo)準(zhǔn)庫(kù)的一部分,這個(gè)庫(kù)的目的是為開發(fā)者提供一種方便的打包方式随静,同時(shí)為使用者提供方便的安裝方式八千。我們經(jīng)常使用的setup.py就是基于distutils實(shí)現(xiàn)的,然后通過(guò)setup.py就可以進(jìn)行打包或者安裝了燎猛。
舉例:
python setup.py sdist表示打包我們的py程序
python setup.py install則是安裝發(fā)行的第三方庫(kù)
2.setuptools(distribute)
setuptools 是對(duì) distutils 的增強(qiáng)恋捆,尤其是引入了包依賴管理。我們可以通過(guò)ez_setup.py來(lái)安裝setuptools重绷。
至于distribute沸停,它是setuptools的一個(gè)分支版本。分支的原因是有一部分開發(fā)者認(rèn)為 setuptools 開發(fā)太慢论寨。但現(xiàn)在星立,distribute 又合并回了 setuptools 中,所以可以認(rèn)為它們是同一個(gè)東西葬凳。
前面看到setup.py可以創(chuàng)建一個(gè)壓縮包绰垂,而setuptools使用了一種新的文件格式(.egg),可以為Python包創(chuàng)建 egg文件火焰。setuptools 可以識(shí)別.egg文件劲装,并解析、安裝它昌简。
easy_install
當(dāng)安裝好setuptools/distribute之后占业,我們就可以直接使用easy_install這個(gè)工具了:
從PyPI上安裝一個(gè)包:當(dāng)使用 easy_install package 命令后,easy_install 可以自動(dòng)從 PyPI 上下載相關(guān)的包纯赎,并完成安裝谦疾,升級(jí)。
下載一個(gè)包安裝:通過(guò) easy_install package.tgz 命令可以安裝一個(gè)已經(jīng)下載的包
安裝egg文件:通過(guò) easy_install package.egg 可以安裝一個(gè)egg格式的文件
根據(jù)上面的分析犬金,可以看到setuptools/distribute和easy_install之間的關(guān)系:
setuptools/distribute 都擴(kuò)展了 distutils念恍,提供了更多的功能
easy_install是基于setuptools/distribute的一個(gè)工具六剥,方便了包的安裝和省級(jí)
3.pip
pip是目前最流行的Python包管理工具,它被當(dāng)作easy_install的替代品峰伙,但是仍有大量的功能建立在setuptools之上疗疟。
easy_install 有很多不足:安裝事務(wù)是非原子操作,只支持 svn瞳氓,沒(méi)有提供卸載命令策彤, 安裝一系列包時(shí)需要寫腳本。pip 解決了以上問(wèn)題匣摘,已經(jīng)成為新的事實(shí)標(biāo)準(zhǔn)店诗。
pip的使用非常簡(jiǎn)單,并支持從任意能夠通過(guò) VCS 或?yàn)g覽器訪問(wèn)到的地址安裝 Python 包:
安裝:? pip install SomePackage
卸載:? pip uninstall SomePackage
使用pip
在大家使用Python中恋沃,推薦使用pip進(jìn)行Python包管理必搞,pip的安裝和使用都比較方便。
pip安裝
pip的安裝有兩種常用的方式:
下載get-pip.py文件囊咏,然后執(zhí)行 python get-pip.py 進(jìn)行安裝(如果沒(méi)有安裝setuptools恕洲,那么get-pip.py會(huì)幫忙安裝)
下載pip源碼包,然后通過(guò)setup.py進(jìn)行安裝
4.小tips
easy_install --help
pip --help
可以了解到pip和easy_install的使用方法和參數(shù)梅割。
PyPI ( Python Package Index)是獲得第三方 Python 軟件包以補(bǔ)充標(biāo)準(zhǔn)庫(kù)的一個(gè)站點(diǎn)霜第。
三.Python環(huán)境管理
Python本身有很多個(gè)版本,第三方的Python包又有很多可用的版本户辞,所以經(jīng)常會(huì)遇到下面的問(wèn)題:
1.運(yùn)行不同的Python程序泌类,需要使用不同版本的Python(2.x或3.x).
2.在同一中Python版本中,可能需要用到不同版本的第三方包底燎,例如:Django 1.6或者Django 1.7
對(duì)于上面的問(wèn)題刃榨,已經(jīng)有很多現(xiàn)成的個(gè)工具可以解決。根據(jù)解決上面問(wèn)題的方法双仍,這些工具大概可以分為兩類:
1.Python 版本環(huán)境切換工具
2.特定Python版本虛擬環(huán)境切換工具
Python版本環(huán)境切換工具
Python版本環(huán)境切換工具的作用就是讓多個(gè)不同版本的Python可以在系統(tǒng)上共存枢希。并且提供簡(jiǎn)單的命令來(lái)支持不同Python版本之間的切換。
pyenv
目前最流行的 python版本環(huán)境切換工具朱沃,但是不支持Windows
pywin
Windows 上pyenv 的替代品苞轿,但是功能相對(duì)pyenv比較少
py.exe
Python 3.3 版本以后Windows系統(tǒng)自帶的啟動(dòng)工具(Python Launcher for Windows),可以直接在命令行中使用
一般的pythonic應(yīng)該都會(huì)有Python2和Python3逗物,所以最好就用自帶的py.exe當(dāng)然最好啦搬卒。
特定Python版本虛擬環(huán)境切換工具
簡(jiǎn)單的說(shuō),虛擬環(huán)境切換工具就是可以根據(jù)當(dāng)前使用的Python版本環(huán)境來(lái)創(chuàng)建多個(gè)虛擬的Python環(huán)境翎卓。這些虛擬的環(huán)境之間相互獨(dú)立契邀,可以安裝各個(gè)環(huán)境所需的Python包。
irtualenv
目前最流行的 python 虛擬環(huán)境配置工具
virtualenvwrapper
使用shell開發(fā)失暴,是對(duì)virtualenv的一個(gè)封裝蹂安,簡(jiǎn)化了virtualenv命令的使用椭迎,并且進(jìn)行了一些功能擴(kuò)展
virtualenvwrapper-win
使用Windows batch shell開發(fā)的virtualenvwrapper
venv
Python 3.3 版本以后自帶的虛擬環(huán)境工具锐帜,僅支持 python 3.3 和以后版本
這個(gè)我還沒(méi)有用田盈,但我認(rèn)為這個(gè)工具非常好,這樣我的各個(gè)不同的Python項(xiàng)目的庫(kù)終于可以涇渭分明了缴阎,而不是一個(gè)大雜燴允瞧。
打包Python程序exe
Python打包程序大概有兩個(gè):
1.py2exe
2.pyinstaller
當(dāng)然,這個(gè)我沒(méi)有糾結(jié)蛮拔,因?yàn)閜y2exe有點(diǎn)太老了述暂,當(dāng)然選擇pyinstaller呀。
安裝pyinstaller
在github或者pyinstaller官網(wǎng)上下載源碼建炫,然后解壓畦韭,切換到解壓的目錄,執(zhí)行python setup.py install,也就是distutils的方法肛跌。