亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

改用pypy運(yùn)行django項(xiàng)目

_Zhao / 2790人閱讀

摘要:最近在研究編程,寫了個(gè),試了試,比用流量大了好幾倍,簡(jiǎn)直嚇?biāo)缹殞毩?。但是?xiàng)目就是跑不起來,一直報(bào)的錯(cuò)誤,說是無此包。

最近在研究socket編程,寫了個(gè)echo server,試了試pypy,比用python2.7流量大了好幾倍,簡(jiǎn)直嚇?biāo)缹殞毩?。本地跑網(wǎng)絡(luò)相關(guān)的程序基本沒有擁塞,所以主要就相當(dāng)于測(cè)試CPU了,感覺主要是節(jié)省了線程和循環(huán)開銷,可能是pypy的某種優(yōu)化吧

無事時(shí)我便自己嘗試將在公司的項(xiàng)目代碼在本地改用pypy跑,毫無疑問會(huì)碰到一些困難,但這比從頭開始用pypydjango項(xiàng)目還是受益得多。官方號(hào)稱快大概7倍(大誤)

首先是包的問題,平常裝的包都在py2的路徑下,所以直接在pypysite-packages下建一個(gè).pth文件把py2的包拿來用。進(jìn)入pypy的包文件夾

/usr/local/Cellar/pypy/4.0.1/libexec/site-packages

新建一個(gè)文件叫external.pth,加入兩行

/Library/Python/2.7/site-packages
/usr/local/lib/python2.7/site-packages

這樣確實(shí)可以使用部分用pure python寫的包了,但是有些用clang寫的就不行了,比如MySQLdb(mysql-python),谷歌了一下,答案千奇百怪,看的官方說是1.2.4c1及以上可以運(yùn)行。但是項(xiàng)目就是跑不起來,一直報(bào)import _mysql的錯(cuò)誤,說是無此包。查看發(fā)現(xiàn)該庫只有_mysql.so文件。
對(duì)比著看,如果用py2的話,PyCharm會(huì)由_mysql.so生成一個(gè)_mysql.py作為緩存,然后就可以使用MySQLdb了,但是用pypy跑的時(shí)候生成該文件失敗。PyCharm中在Binary Skeletons下有一個(gè).blacklist的文件記錄有解析失敗的.so文件

我把由PyCharm生成的_mysql.py文件復(fù)制一份到py2下的MySQLdb包里,讓pypy直接使用它,這樣此處就不再報(bào)錯(cuò)了,但是其它用了clang的還是報(bào)錯(cuò),這樣復(fù)制不是辦法。繼續(xù)在網(wǎng)上研究解決方法,然后發(fā)現(xiàn)這種用了C語言帶.so文件的包不能用拿來主義,通常要通過CFFI的接口來調(diào)用(有些包可以直接用),普通C語言寫的沒有這種接口當(dāng)然是不行的。另外,用ctypes寫的是兼容Cpython和PyPy的

因此安裝給pypy用的包最好用其自己的方式,和cpython差不多

pip_pypy

easy_install_pypy

pypy setup.py intall

這樣一個(gè)個(gè)地裝包,不過有的還是有問題,比如Crypto,py2裝的包是Crypto,但是pypy裝的包是crypto,但里面文件import的時(shí)候還是用的Crypto,大小寫不對(duì)。
裝完需要的包之后,運(yùn)行實(shí)測(cè),選擇一個(gè)比較復(fù)雜的網(wǎng)頁,加載時(shí)間由接近1.9s減少到1s內(nèi),確實(shí)有非常明顯地提高

后來還發(fā)現(xiàn)一個(gè)問題,在上述過程中把由PyCharm生成的_mysql.py放到了py2的MySQLdb下,可以讓pypy運(yùn)行,但再讓py2運(yùn)行則會(huì)報(bào)錯(cuò),需要移除

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/37780.html

相關(guān)文章

  • python入門 django入門 (一)

    摘要:本人年開發(fā)經(jīng)驗(yàn),現(xiàn)就職于電信,因工作需要學(xué)習(xí),記錄自己的學(xué)習(xí)記錄。 本人java10年開發(fā)經(jīng)驗(yàn),現(xiàn)就職于電信,因工作需要學(xué)習(xí)python,記錄自己的學(xué)習(xí)記錄。后面也...

    hzc 評(píng)論0 收藏0
  • Django部署中學(xué)到的

    摘要:修改的源的配置文件在文件內(nèi)容如下豆瓣源的網(wǎng)址是只需將替換為即可。所以這次使用萬能的重裝大法,來上線這個(gè)博客網(wǎng)站。 修改pip的源 pip 的配置文件在 ~/.pip/pip.conf 文件內(nèi)容如下: [global] index-url = http://mirrors.tencentyun.com/pypi/simple trusted-host = mirrors.tencen...

    CloudwiseAPM 評(píng)論0 收藏0
  • Django部署中學(xué)到的

    摘要:修改的源的配置文件在文件內(nèi)容如下豆瓣源的網(wǎng)址是只需將替換為即可。所以這次使用萬能的重裝大法,來上線這個(gè)博客網(wǎng)站。 修改pip的源 pip 的配置文件在 ~/.pip/pip.conf 文件內(nèi)容如下: [global] index-url = http://mirrors.tencentyun.com/pypi/simple trusted-host = mirrors.tencen...

    bergwhite 評(píng)論0 收藏0
  • 細(xì)數(shù)Python三十年技術(shù)演變史——萌發(fā)于小眾,崛起于AI

    摘要:作者宋天龍來源科技大本營(yíng)導(dǎo)語一切都始于年的那個(gè)圣誕節(jié),的誕生并不算恰逢其時(shí),它崛起充滿了機(jī)遇巧合,也有其必然性。年的圣誕節(jié),開始編寫語言的編譯器。年發(fā)布的標(biāo)志著的框架基本確定。年月發(fā)布了系列的最后一個(gè)版本,主版本號(hào)為。 showImg(https://segmentfault.com/img/remote/1460000019862276); 作者 | 宋天龍來源 | AI科技大本營(yíng) ...

    tuniutech 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<