摘要:最近在研究編程,寫了個,試了試,比用流量大了好幾倍,簡直嚇死寶寶了。但是項目就是跑不起來,一直報的錯誤,說是無此包。
最近在研究socket編程,寫了個echo server,試了試pypy,比用python2.7流量大了好幾倍,簡直嚇死寶寶了。本地跑網絡相關的程序基本沒有擁塞,所以主要就相當于測試CPU了,感覺主要是節省了線程和循環開銷,可能是pypy的某種優化吧
無事時我便自己嘗試將在公司的項目代碼在本地改用pypy跑,毫無疑問會碰到一些困難,但這比從頭開始用pypy跑django項目還是受益得多。官方號稱快大概7倍(大誤)
首先是包的問題,平常裝的包都在py2的路徑下,所以直接在pypy的site-packages下建一個.pth文件把py2的包拿來用。進入pypy的包文件夾
/usr/local/Cellar/pypy/4.0.1/libexec/site-packages
新建一個文件叫external.pth,加入兩行
/Library/Python/2.7/site-packages
/usr/local/lib/python2.7/site-packages
這樣確實可以使用部分用pure python寫的包了,但是有些用clang寫的就不行了,比如MySQLdb(mysql-python),谷歌了一下,答案千奇百怪,看的官方說是1.2.4c1及以上可以運行。但是項目就是跑不起來,一直報import _mysql的錯誤,說是無此包。查看發現該庫只有_mysql.so文件。
對比著看,如果用py2的話,PyCharm會由_mysql.so生成一個_mysql.py作為緩存,然后就可以使用MySQLdb了,但是用pypy跑的時候生成該文件失敗。PyCharm中在Binary Skeletons下有一個.blacklist的文件記錄有解析失敗的.so文件
我把由PyCharm生成的_mysql.py文件復制一份到py2下的MySQLdb包里,讓pypy直接使用它,這樣此處就不再報錯了,但是其它用了clang的還是報錯,這樣復制不是辦法。繼續在網上研究解決方法,然后發現這種用了C語言帶.so文件的包不能用拿來主義,通常要通過CFFI的接口來調用(有些包可以直接用),普通C語言寫的沒有這種接口當然是不行的。另外,用ctypes寫的是兼容Cpython和PyPy的
因此安裝給pypy用的包最好用其自己的方式,和cpython差不多
pip_pypy
easy_install_pypy
pypy setup.py intall
這樣一個個地裝包,不過有的還是有問題,比如Crypto,py2裝的包是Crypto,但是pypy裝的包是crypto,但里面文件import的時候還是用的Crypto,大小寫不對。
裝完需要的包之后,運行實測,選擇一個比較復雜的網頁,加載時間由接近1.9s減少到1s內,確實有非常明顯地提高
后來還發現一個問題,在上述過程中把由PyCharm生成的_mysql.py放到了py2的MySQLdb下,可以讓pypy運行,但再讓py2運行則會報錯,需要移除
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/37780.html
摘要:本人年開發經驗,現就職于電信,因工作需要學習,記錄自己的學習記錄。 本人java10年開發經驗,現就職于電信,因工作需要學習python,記錄自己的學習記錄。后面也...
摘要:修改的源的配置文件在文件內容如下豆瓣源的網址是只需將替換為即可。所以這次使用萬能的重裝大法,來上線這個博客網站。 修改pip的源 pip 的配置文件在 ~/.pip/pip.conf 文件內容如下: [global] index-url = http://mirrors.tencentyun.com/pypi/simple trusted-host = mirrors.tencen...
摘要:修改的源的配置文件在文件內容如下豆瓣源的網址是只需將替換為即可。所以這次使用萬能的重裝大法,來上線這個博客網站。 修改pip的源 pip 的配置文件在 ~/.pip/pip.conf 文件內容如下: [global] index-url = http://mirrors.tencentyun.com/pypi/simple trusted-host = mirrors.tencen...
摘要:作者宋天龍來源科技大本營導語一切都始于年的那個圣誕節,的誕生并不算恰逢其時,它崛起充滿了機遇巧合,也有其必然性。年的圣誕節,開始編寫語言的編譯器。年發布的標志著的框架基本確定。年月發布了系列的最后一個版本,主版本號為。 showImg(https://segmentfault.com/img/remote/1460000019862276); 作者 | 宋天龍來源 | AI科技大本營 ...
閱讀 881·2023-04-26 03:03
閱讀 2206·2021-10-12 10:12
閱讀 1201·2021-09-24 09:48
閱讀 1645·2021-09-22 15:25
閱讀 3332·2021-09-22 15:15
閱讀 914·2019-08-29 16:21
閱讀 1063·2019-08-28 18:00
閱讀 3423·2019-08-26 13:44