国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

改用pypy運行django項目

_Zhao / 2720人閱讀

摘要:最近在研究編程,寫了個,試了試,比用流量大了好幾倍,簡直嚇死寶寶了。但是項目就是跑不起來,一直報的錯誤,說是無此包。

最近在研究socket編程,寫了個echo server,試了試pypy,比用python2.7流量大了好幾倍,簡直嚇死寶寶了。本地跑網絡相關的程序基本沒有擁塞,所以主要就相當于測試CPU了,感覺主要是節省了線程和循環開銷,可能是pypy的某種優化吧

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

首先是包的問題,平常裝的包都在py2的路徑下,所以直接在pypysite-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

相關文章

  • python入門 django入門 (一)

    摘要:本人年開發經驗,現就職于電信,因工作需要學習,記錄自己的學習記錄。 本人java10年開發經驗,現就職于電信,因工作需要學習python,記錄自己的學習記錄。后面也...

    hzc 評論0 收藏0
  • Django部署中學到的

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

    CloudwiseAPM 評論0 收藏0
  • Django部署中學到的

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

    bergwhite 評論0 收藏0
  • 細數Python三十年技術演變史——萌發于小眾,崛起于AI

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

    tuniutech 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<