您好,登錄后才能下訂單哦!
最近一周,一直在琢磨著怎么提高python的運行效率,前幾天還寫了一篇關于提高運行效率的博文,有興趣的可以去看看,地址如下:http://11026142.blog.51cto.com/11016142/1858568
這些都是從Python語言本身的角度提高優化代碼來提高效率,看過幾本Python教材、也看過網上的一些優秀博文,都說PyPy是Python的未來,是提高python運行效率的終極殺器,今天上午閑來無事,決定也來了解一下這個殺器。首先是在網上查資料大概了解一下PyPy是什么東西,在這里我就不過多介紹,網上有資料。這里主要介紹PyPy的安裝、使用以及如何為PyPy安裝第三方包。申明:所有系統是ubuntu 16.04 LTS
(一)安裝
用linux命令安裝,如下:
sudo add-apt-repository ppa:pypy/ppa sudo apt-get update sudo apt-get install pypy pypy-dev
當然 也可以去官網下載壓縮包,解壓縮后就可以運行了,沒試過,在此不敘述。(其實先開始是計劃通過壓縮包這種方法來安裝的,無奈住的地方網上太慢,而且經常下載到百分之二十左右的時候就提示“禁止訪問”或者“連接斷開”,無奈放棄了,等有時間在公司的電腦上用這種方法安裝吧,之后在補上)
如何安裝成功的話,打開終端,輸入pypy,會有如下類似的提示:
上面有提示:PyPy 5.4.1,表示安裝成功。
(二)為PyPy安裝第三方包
打開pypy的安裝目錄,我的電腦/usr/lib/pypy/下,(不同的系統可能會有差異,如果你的不在該目錄下,可以在本地搜索‘pypy',應該也很容易找到)。打開該目錄,里面有個dist-packages包,剛開始,包里有個README文件,打開該文件,里面有這樣一段話:
This directory exists so that 3rd party packages can be installed
here. Read the source for site.py for more details.
這說明該目錄下是存放pypy的第三方包的。
然后我做了一個實驗,看下圖
看明白了嗎?因為我之前沒安裝pypy時,在本地的python環境中已經安裝了django,我就想能不能吧這個django直接拷貝到pypy安裝路徑的/usr/lib/pypy/dist-packages/ 包里,看能不能運行,結果是可以的,這是一種笨辦法吧,要為pypy安裝第三方包,還是要用到安裝神器pip,那么怎么在pypy下安裝pip呢?
回想下,python環境中怎么安裝pip,其實都是一樣的
去官網下載安裝包,然后解壓,再講解壓后的包拷貝到/usr/lib/pypy/dist-packages/ 下,解壓后的pip包里有個setup.py文件,執行命令pypy setup.py install即可完成安裝。
命令如下:
下載安裝包:
wget https://pypi.python.org/packages/e7/a8/7556133689add8d1a54c0b14aeff0acb03c64707ce100ecd53934da1aa13/pip-8.1.2.tar.gz#md5=87083c0b9867963b29f7aba3613e8f4a --2016-10-06 15:51:17-- https://pypi.python.org/packages/e7/a8/7556133689add8d1a54c0b14aeff0acb03c64707ce100ecd53934da1aa13/pip-8.1.2.tar.gz
解壓安裝包:
tar -xzvf pip-8.1.2.tar.gz
(注意路徑,每個系統設置的默認下載路徑不同)
將解壓后的pip文件夾copy到/usr/lib/pypy/dist-packages/ 下
cp -r /home/liulonghua/pip-8.1.1/ /usr/lib/pypy/dist-packages/
cd到該目錄下,執行如下命令:
pypy setup.py install
那就基本安裝成功了。看看我安裝時的效果。
上圖是下載安裝包,解壓可以用tar命令,也可以用解壓工具。
上圖是將pip解壓包拷貝到/usr/lib/pypy/dist-packages/,但是我還沒有安裝就急著安裝requests包,結果報錯,提示No module name pip,然后我cd到相應目錄下,執行命令pypy setup.py install,但是安裝失敗?為什么呢?因為權限不夠,要用root身份安裝才行,看下圖。
然后我切換到root身份,在執行安裝命令,安裝成功了。
注意:為了區分python和pypy,pypy的腳本都是用pypy來執行的。
下面來測試下安裝requests包。
命令很簡單,pypy環境下用pip安裝包命令如下:
pypy -m pip install package
如果報錯,可能是權限問題,加個sudo即可,即sudo pypy -m pip install package
如果想卸載安裝包的話,用
pypy -m pip uninstall package
還有一點要注意,如果你電腦里沒有virtualenv(這是一個好東西,可以根據你的實際需求,安裝不同的開發環境,而且環境切換也很方便),在安裝包的時候要注意了,以前沒安裝pypy時,我執行命令sudo pip install package,它會自動安裝到python安裝目錄的dist-packages,但是現在它會自動安裝到pypy的安裝目錄的dist-packages包里(不知道為什么),所以這時得用命令sudo python -m pip install package來區分,要在原有的命令中加入pypy和python進行區分,是不是很麻煩?如果覺得麻煩就安裝一個virtualenv吧。
(三)pypy初步使用
pypy的優勢就是運行效率高,看個簡單的例子吧
代碼如下:
#coding=utf-8 import time def test(n,m): m=m vals = [] keys = [] for i in xrange(m): vals.append(i) keys.append('a%s'%i) d = None for i in xrange(n): d = dict(zip(keys, vals)) return d st = time.time() print test(1000000,100) print 'use:', time.time() - st
先在python2.7上運行,結果如下:
再在pypy環境下運行,結果如下:
我用的IDE是pycharm,切換環境也很方便,對vim用的還不是很熟練,所以還登不了大雅之堂,哈哈,今天就講到這里,這只是記錄了一些我初探pypy的經驗,以后有更好的學習經驗會和大家分享,不正之處,懇請批評指正。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。