本文由來
臨近下班突然看到知乎上有篇文章是給Calibre打中文目錄與文件名補丁的,想起我之前為啥放棄Calibre的——存進書庫里書的名稱都變成了拼音!手動找起來或者搜索工具找起來太麻煩了(有時想不起用Calibre,直接用搜索軟件+PDF閱讀器就看了),用過Calibre的同學應該知道——添加到書庫里的書相當於從外邊復制過來的,每本書都存兩份很占空間呀!萬一用不習慣還能卸載,不用每本書都改回一次名!
既然有這么做成功的,Windows行,Mac行,那Linux也一定行!
本文環境:Debian 10 + Calibre 3.39.1,據說5.2以后版本變化較大,方法可能不適應5.2版本以上
下面兩張圖是添加書籍以及在文件管理器中的樣子:
一步跳進坑
根據那篇文章所說的,需要下載源碼改完編譯后替換Calibre在用的文件,那個待修改的源碼文件是 src/calibre/db/backend.py
,需要編譯成 backend.pyo
再去裝到pylib.zip中,我改完了編譯完了想去替換時犯了難:在Debian下這個文件放哪了??那篇文章里明明有 pylib.zip
壓縮包,我 find / -name "pylib.zip"
也沒有,想着要不二進制安裝下試試?
沒錯,我又折騰了一陣二進制安裝,無果。
回過頭想想,問題出在哪呢?
漸入佳境
回到家,用手機又查了下,發現有文章用Mac改的源碼,然后替換的位置和Windows下也不一樣。靈光一閃,這 pylib.zip
在Linux下應該是沒有的,我搜一下不就好了?搜啥呢?
打開命令行,問了下命令 whereis calibre
可能有的地方可能在 /usr/lib/calibre
和 /usr/share/calibre
目錄中,進入 /usr/lib/calibre
目錄后,我突然發現:這目錄結構不就是源碼么!只是沒了src這層,我一下子就找到了源碼 calibre/db/backend.py
,另外發現有個.pyc結尾的文件,查了下Bing發現這是和.pyo類似的字節碼文件
備份了 backend.py 與 backend.pyc 后,開始動手改
sudo vim /usr/lib/calibre/db/backend.py
搜索 construct_path_name
,注釋1172-1173行字樣的兩行
搜索 construct_file_name
,注釋了1200-1201行字樣的兩行
保存退出,開始編譯.pyc,之前看這文件頭上有python2.7字樣,編譯也是用python2.7編譯的
sudo python2.7 -O -m py_compile /usr/lib/calibre/db/backend.py
小試牛刀
如圖,中文目錄和中文文件名都正常了,又能與 Calibre 愉快地玩耍了~
Calibre作者將這些中文等unicode轉成拼音這種字母型是為了方便遷移到無unicode支持的環境中而不至於亂碼,對於我們而言是不必要的。
本文參考: