Python的模組安裝後,常會遇到模組更新需修改模組中檔案的程式碼情況,若是在本機可以開啟該檔案修改程式即可,但在Colab中要如何修改呢?
下面以google-images-download現在(2022/12/21)遇到的情況為例說明:需將<google-images-download.py>中的「if info is None: info = data[11]」改為「if info is None: info = data[23]」。
手動修改程式碼
安裝模組後以「!pip show 模組名稱」查看模組安裝路徑:下圖為安裝於</usr/local/lib/python3.8/dist-packages>資料夾。
在左方檔案總管先切換到上一層目錄(根目錄),再依序切換到</usr/local/lib/python3.8/dist-packages/google-images-download>目錄,點擊<google-images-download.py>兩下即可開啟該檔案。
由於在Colab無法搜尋,需借助文字編輯器搜尋,此處以記事本為例:複製<google-images-download.py>全部程式碼(CTRL+A 及 CTRL+C),於記事本中貼上(CTRL+V)。開啟記事本搜尋功能,搜尋「if info is None」,在左下角會顯示文字所在列數(此處為406列)。
回到Colab,將407列的「data[11]」修改為「data[23]」,按「CTRL+S」存檔,就完成修改。
使用LINUX取代命令
上面修改程式碼的方法較為繁複,若每次重啟Colab就要操作一次,要花費相當時間,所以此方法最好僅在測試時使用,如果確認修改程式碼就可讓模組正常運作,就可改用LINUX取代命令,一列程式就修改完成。
LINUX取代命令為:
!sed -i 's/被取代文字/取代文字/g' 檔案路徑
例如修改上面程式的命令為:
!sed -i 's/data\[11\]/data\[23\]/g' /usr/local/lib/python3.8/dist-packages/google_images_download/google_images_download.py
google-images-download下載圖片完整程式:
沒有留言:
張貼留言