Python學習筆記
文章平均质量分 93
keineahnung2345
这个作者很懒,什么都没留下…
展开
-
Python GIL及其釋放/獲取函數
Python默認使用CPython解釋器,當中會引入GIL,在CPython解釋器中,GIL(全局解釋器鎖)是一個互斥鎖,用於保護Python物件,避免它們在多線程執行被同時存取。多線程程式花了很多時間在GIL裡,解釋CPython bytecode,這時候GIL的存在便使得多線程程式無法充份利用多核系統。還好pybind11有提供釋放GIL的機制,pybind11提供了釋放和重新獲取GIL的API,即gil_scoped_release和gil_scoped_acquire這兩個類別,可以利用這兩個API原创 2023-10-12 10:27:12 · 401 阅读 · 0 评论 -
在conda虛擬環境下使用py.test會調用主環境的Python
經過實驗發現:如果在虛擬環境中使用py.test這個指令,那麼不管虛擬環境裡有沒有安裝pytest,py.test都會調用主環境裡的Python。在虛擬環境中使用pytest這個指令,如果虛擬環境裡己安裝pytest,那麼它會正確地調用虛擬環境裡的Python。如果虛擬環境裡還沒安裝pytest,則會正常報錯:看起來,比起py.test,pytest的表現符合我們的預期多了。所以結論就是:用pytest,不要用py.test!原创 2019-01-09 15:46:40 · 675 阅读 · 0 评论 -
Failed building wheel for xxx/configure: error: no acceptable C compiler found in $PATH錯誤及解決辦法
這是筆者在Ubuntu14.04下使用Python2安裝matplotlib時所出現的錯誤。其中matplotlib有個依賴的包叫做subprocess32。這個錯誤就是在安裝subprocess32時發生的。原创 2019-01-08 15:55:27 · 1815 阅读 · 0 评论 -
Pyinstaller打包Keras程序
要在Linux系統上將Python檔案打包成可執行檔,參考Freezing Your Code這篇文章,可以使用PyInstaller及bbfreeze這兩個套件。但是bbfreeze的GitHub官網說明該項目己無人維護,所以這裡選擇PyInstaller。筆者在Ubuntu 16.04,CUDA V9.0.176的docker環境中將keras的mnist範例打包。把打包好的執行檔拿到其它機器上,相同環境的docker內,發現可以執行成功,GPU也會被調用。原创 2019-01-17 11:57:27 · 2804 阅读 · 6 评论 -
python xgboost踩坑實錄
在python下運行xgboost有許多要注意的地方。筆者在載入模型及載入數據的時候都踩了坑,為了避免再度踩坑,所以將解法記錄於此。原创 2018-12-31 14:19:41 · 365 阅读 · 0 评论 -
jupyter notebook -socket.gaierror: [Errno -5] No address associated with hostname錯誤及解決方式
這是筆者在Ubuntu 16.04下使用以下指令啟動jupyter notebook時所出現的錯誤:jupyter notebook --allow-root --no-browser原创 2019-01-04 14:34:03 · 4062 阅读 · 0 评论 -
Could not install packages due to an EnvironmentError/OSError: [Errno 39] Directory not empty: 'xxx'
這是筆者在使用pip升級notebook這個包時所出現的錯誤:pip install notebook --upgrade原创 2019-01-04 14:23:48 · 7026 阅读 · 1 评论 -
jupyter創建新notebook不會出現在當前目錄,卻出現在根目錄 - 問題解決
jupyter創建新notebook不會出現在當前目錄,而是出現在根目錄前言前言問題應該是出在jupyter 4.4.0本身,可以降低jupyter notebook的版本來解決這個問題。換成jupyter 4.3.0就解決了...原创 2018-12-17 17:00:14 · 240 阅读 · 0 评论 -
PIL及matplotlib:OSError: cannot identify image file錯誤及解決方式
這個錯誤是在使用PIL及matplotlib來讀圖(.jpg檔)的時候發生的。這個錯誤只有在讀某個特定的圖檔時才會發生。但是後來去檢查圖片,卻發現可以用一般的圖片瀏覽器打開,並且看不出什麼問題。問題的解決方法是筆者不經意發現的。因為PIL跟matplotlib都無法讀圖,所以想安裝其它的包試試看。一開始試了opencv-python,安裝完成後,發現使用cv2可以成功讀圖。後來試了scikit-image,安裝完成後,使用skimage也可以成功讀圖。筆者嘗試使用PIL跟matplotlib原创 2018-12-26 17:06:43 · 22360 阅读 · 9 评论 -
如何在jupyter notebook裡運行Spark及Scala
本篇譯自:How to run Scala and Spark in the Jupyter notebook。文中介紹了從安裝套件、創建Kernel spec,到啟動jupyter notebook及測試Scala程式的完整流程。翻译 2018-12-03 10:57:53 · 1669 阅读 · 0 评论 -
jupyter kernel無法重啟/Error loading notebook/Failed to start the kernel/Unknown server error
這個錯誤是在Ubuntu 16.04下出現的,以下是jupyter及ipython版本的細節.碰到這種問題完全沒有頭緒,只能上GitHub看看大佬們怎麼說。找到不少相關問答說要在權限上動手腳,或是移除個別檔案,但這些方法對筆者的情況都起不了作用。最後是看到Unable to create jupyter notebook這個討論串中blink1073的回答,他使用了最激進的方法,直接把整個資料夾刪除後重建。然後,問題就解決了。但是看來看去,好像也沒人說出問題的真正原因。。。最後還是附上筆者試過但失敗原创 2018-11-29 10:12:49 · 4461 阅读 · 0 评论 -
Ubuntu下安裝Python版OpenCV
筆者試著要在Ubuntu系統下安裝Python版的OpenCV,一開始只使用pip來安裝,但卻會報錯。後來才發現原來它還需要幾個debian的package才能成功運行。原创 2018-11-20 14:19:01 · 8863 阅读 · 3 评论 -
jupyter notebook -- OSError: [Errno 49] Can't assign requested address
這是筆者在命令行裡輸入`jupyter notebook`試著啟動jupyter notebook時所發生的錯誤。jupyter notebook預設的ip是localhost,但是可能由原某些原因導致localhost無法被正確解析。因此我們可以自行設定jupyter notebook所使用的ip來避開這個問題。原创 2018-11-22 11:57:39 · 3151 阅读 · 2 评论 -
TypeError: sum() got an unexpected keyword argument 'keepdims'
這個錯誤是筆者試圖使用np.sum(..., keepdims=True)對np.matrix型別的變數求和時所發生的錯誤。筆者首先想到的是自己是否將關鍵字keepdims打錯,因此使用help(np.sum)來檢查,但發現keepdims確實是np.sum的一個參數名稱。來只得上網尋找解決辧法,最後在stackoverflow上的某條問答上找到答案。原创 2018-11-07 17:20:04 · 6379 阅读 · 0 评论