即時精選

Sigil 改用 Mac 電腦的 Python 環境

更新 發佈閱讀 8 分鐘

如果你對製作 EPUB 電子書足夠熟悉的話,你應該知道 Sigil 這個製作 EPUB 的專業工具。

我自己本來是透過 Adobe InDesign 轉製 EPUB,不過這兩年經過 Adobe 的神助攻,InDesign 鼓勵我尋找其他解決方案。🤣

當深度使用 Sigil 之後就發現,Sigil 功能還是不太完整,需要安裝額外的 Plug-in 來強化它的不足。不過,實際安裝了幾個 Plug-in 後又會發現,其實 Sigil 網站上網友分享的 Plug-in 不是功能不完整,不然就是外掛版本古老,沒有更新維護,有點年久失修。

所以,如果要用 Sigil 來搭建 EPUB 製作流程,自己寫 Plug-in 就是不可避免的事情了。

而 Sigil 的 Plug-in 核心幾乎都是 Python,所以就必須用 Python 語言來寫,但是 Sigil 預設的 Python 是它自己內部的版本,那個核心就像個沙盒模式的環境,不能自己擴充套件,結果就是如果你要用內建的 Python 來執行你的 Plug-in,那個功能就是會限制一堆。

像我想要寫一個可以依照 CSS 樣式來子集化字型的功能,這個就沒辦法用內部的 Python 來辦到。

所以最後只剩下一條路,那就是指定自己的 Python 直譯器。

為什麼 Sigil 內部 Python 不支援擴充?

我要使用的是 Python 知名的「fonttools」和「beautifulsoup4」,而這兩個套件在 Sigil 裡面根本沒有,Sigil 也沒有辦法讓你自己去擴充套件資源,雖然查到可以從程式預設的資料夾用手動拷貝的方式新增,但如此一來就失去了隨時擴充的便利性。也許在版本升級後穩定度也會消失。

其實我也很想問原開發者,為什麼不能讓 Python 直接支援安裝擴充套件,這樣一來不就很完美了?

但這封信我還沒有寫,所以在那之前我們得先搞定自己的需求。

在自己的電腦上搭建 Python 環境

如果你確定要和我一樣,在自己的電腦搭建讓 Sigil 執行 Plug-in 的 Python 環境,那麼這一篇也許對你會有幫助。

安裝 Command Line Tools for Xcode

如果你要讓 mac 安裝開源程式、執行終端機指令,就必須安裝這個 CLT 編譯工具,於是打開電腦終端機輸入:

xcode-select --install

終端機位於:/應用程式/工具程式/終端機.app

還有個偷懶的方法,就是你直接安裝下面那個「Homebrew」,Homebrew 會幫你呼叫指令出來安裝 CLT。(真的卡住了你才來用這支指令)

安裝 Homebrew

要安裝開源套件,我們需要一個套件管理工具,這個 Homebrew 有一點像開源套件的 Store 那樣,是一個套件管理中心,你得先把它裝起來才能安裝開源套件,鍵入指令並執行:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

設定 brew 系統路徑

我們在之後的管理路徑會用「brew」來當作 Homebrew 的路徑縮寫,所以我們需要寫入並重設路徑資料,於是:

(echo; echo 'eval "$(/opt/homebrew/bin/brew shellenv)"') >> ~/.zprofile

指定路徑執行 env:

eval "$(/opt/homebrew/bin/brew shellenv )"

反向查詢 brew 的結果

確定 brew 路徑是否設定成功,在終端機輸入:

brew doctor

如果終端機回應「Your system is ready to brew」則代表安裝沒問題,一切完成。

安裝 Python3

現在透過 Homebrew 來安裝 Python 環境:

brew install python

檢查版本

安裝完成後可以檢查你安裝完成的 Python 版本:

python3 --version

安裝 Sigil 用的 Python 套件

現在我們要在電腦的使用者 Python 環境建立一個叫「sigil」的虛擬環境,然後把套件安裝進去。這邊的套件是我自己列出來可能會常用的,應該也能夠覆蓋 Sigil 內建 Python 所需:

python3 -m venv sigil && source sigil/bin/activate && pip install fonttools beautifulsoup4 lxml pillow cssutils chardet PySide6

這裡面有兩個套件:fonttools、beautifulsoup4 是我自己的程式中一定會用到的功能。

安裝完成後你會看到終端機會進入虛擬區:

(sigil) username@mac ~ %

未來如果要加入套件

如果以後我們要在這個虛擬環境 (sigil) 加入其他套件,你就會需要先進入虛擬環境:

source sigil/bin/activate

確定進入虛擬環境 (sigil) 後,如果要加入其他套件就是:pip3 install [套件] 即可。

複製 python 路徑

現在我們需要複製你電腦中的 Python 路徑給 Sigil,於是找出 Python 路徑,在終端機執行:

which python3

以我的電腦來說:

alrin@mac ~ % which python3

/opt/homebrew/bin/python3 alrin@mac ~ %

中間的那一串「/opt/homebrew/bin/python3」就是我電腦上的 Python 路徑,把它複製下來,貼到 Sigil 的 Plug-in 指定 Python 直譯器的路徑上:

raw-image

這樣就完成了 Sigil 使用本機的 Python 的修改設定。

第一次執行

因為你把 Python 從 Sigil 改到了自己的電腦環境,第一次呼叫 Plug-in 時,Sigil 要重新的尋找你指定的 Python 環境,會需要一點點時間讓它去找套件。

一但第一次執行完成後,以後再開啟 Sigil 執行 Plug-in 就會像原本內建的那樣快速。

特別說明

macOS 也有內建 Python 但版本老舊,我嘗試的想要幫它升級,好像也升級不了。

而透過 Homebrew 來額外安裝新版的 Python 也是比較主流的作法,但 Homebrew 在新版本的政策中是不會讓你直接在預設的 Python 環境安裝套件,所以你必須要先創造一個虛擬空間才能把額外的套件裝進去。

故我上方的程式才會有一個創建虛擬空間的動作「python3 -m venv sigil」。

一般時候你要用那些套件,你要先進入那個虛擬空間:

source sigil/bin/activate

不過,Sigil 卻會自己去找到套件,你完全不用幫它切換,程式碼裡面也不需要去切換,你只需要在程式直接 import 即可,Sigil 會自己找到它。大心❤️……

留言
avatar-img
留言分享你的想法!
avatar-img
Publishub
3會員
23內容數
這裡是Publishub,專門寫一些和數位發展趨勢、技術相關,我在這邊分享一些我觀察到的新知,希望你會喜歡~
Publishub的其他內容
2025/12/11
最近看了幾篇類似的文章,大致上都在講 Apple 在 AI 方面毫無作為,導致高管們紛紛出走,現在產品疲軟,蘋果神話即將破滅? Apple 在 AI 上的發展確實比起其它科技巨頭來得慢,也沒有發展自己的算力……假如你用現在的 AI 巨頭們的發展方向來看,Apple 確實在 AI 競賽中大為落後,其
Thumbnail
2025/12/11
最近看了幾篇類似的文章,大致上都在講 Apple 在 AI 方面毫無作為,導致高管們紛紛出走,現在產品疲軟,蘋果神話即將破滅? Apple 在 AI 上的發展確實比起其它科技巨頭來得慢,也沒有發展自己的算力……假如你用現在的 AI 巨頭們的發展方向來看,Apple 確實在 AI 競賽中大為落後,其
Thumbnail
2025/12/07
許多 EPUB 電子書都是用 Adobe InDesign 加上自訂義樣式、客製化轉換程式來解決的。不過這兩年 InDesign 的更新版本實在令人不敢恭維,不知道他們家 Coding 是不是菜市場賣菜的阿伯在負責,寫出來的 Code 不僅是無中生有,今年還每個版本更新就會有一堆 Bug 跑出來。
Thumbnail
2025/12/07
許多 EPUB 電子書都是用 Adobe InDesign 加上自訂義樣式、客製化轉換程式來解決的。不過這兩年 InDesign 的更新版本實在令人不敢恭維,不知道他們家 Coding 是不是菜市場賣菜的阿伯在負責,寫出來的 Code 不僅是無中生有,今年還每個版本更新就會有一堆 Bug 跑出來。
Thumbnail
2025/11/10
最近寫了一些技術文件,然而這些文件必須要能夠跨平台,所以就用了 IETF 的標準來標示;然後就有了這一篇。 如果你玩過影片字幕的編寫這件事情,那麼或多或少你應該都看過有些字幕檔案會標示 zh-TW、en-US、en-GB、ja-JP……不過,你知道這些編碼是什麼意思嗎? 我在剛開始摸索字幕製作的
Thumbnail
2025/11/10
最近寫了一些技術文件,然而這些文件必須要能夠跨平台,所以就用了 IETF 的標準來標示;然後就有了這一篇。 如果你玩過影片字幕的編寫這件事情,那麼或多或少你應該都看過有些字幕檔案會標示 zh-TW、en-US、en-GB、ja-JP……不過,你知道這些編碼是什麼意思嗎? 我在剛開始摸索字幕製作的
Thumbnail
看更多
你可能也想看
Thumbnail
你有想過嗎?如果把你過去一週、甚至一整個月的信用卡帳單全部攤開,會變成什麼畫面?😉 格編最近做了一個小實驗:把每一筆消費都丟到地圖上標記,結果它變成一張非常誠實的「生活熱力圖」。把每一筆刷卡都丟到地圖上之後,哪一條路上出現最多「小點點」,就代表你最常走那一條路;哪一個區塊被畫滿圈圈、標記最多店家
Thumbnail
你有想過嗎?如果把你過去一週、甚至一整個月的信用卡帳單全部攤開,會變成什麼畫面?😉 格編最近做了一個小實驗:把每一筆消費都丟到地圖上標記,結果它變成一張非常誠實的「生活熱力圖」。把每一筆刷卡都丟到地圖上之後,哪一條路上出現最多「小點點」,就代表你最常走那一條路;哪一個區塊被畫滿圈圈、標記最多店家
Thumbnail
在 Excel 中,HYPERLINK 函數能建立一個可點擊的文字或儲存格,導向指定的網址、檔案或工作表位置。它常用於報表設計、文件導覽、快速跳轉與整合外部資源。 用途:建立可點擊的連結,導向網頁、檔案或工作表位置 在Excel中建立超連結方法:使用「插入連結」功能或利用 HYPERLINK 函數。
Thumbnail
在 Excel 中,HYPERLINK 函數能建立一個可點擊的文字或儲存格,導向指定的網址、檔案或工作表位置。它常用於報表設計、文件導覽、快速跳轉與整合外部資源。 用途:建立可點擊的連結,導向網頁、檔案或工作表位置 在Excel中建立超連結方法:使用「插入連結」功能或利用 HYPERLINK 函數。
Thumbnail
本文探討歐洲電輔車普及的四大關鍵因素,並分析亞洲城市,例如新加坡、臺北與東京,在推廣電輔車通勤上遇到的挑戰與限制。文章最後提出亞洲發展電輔車的策略建議,強調需要結合在地特色,發展混合式智慧通勤模式,而非單純複製歐洲經驗。
Thumbnail
本文探討歐洲電輔車普及的四大關鍵因素,並分析亞洲城市,例如新加坡、臺北與東京,在推廣電輔車通勤上遇到的挑戰與限制。文章最後提出亞洲發展電輔車的策略建議,強調需要結合在地特色,發展混合式智慧通勤模式,而非單純複製歐洲經驗。
Thumbnail
靜岡市位於靜岡縣中部的靜岡平原、靜岡縣廳所在,面向駿河灣,是一座作為東海道要衝而開發的歷史悠久城市,交通十分便利,購物和文化設施齊全,透過新幹線可輕鬆抵達東京和名古屋,面積1,411.83平方公里,是日本面積第五大都市,靜岡市在悠久的歷史中,培育了各種文化,包括登呂遺址農耕聚落繁榮的彌生時代、今川文
Thumbnail
靜岡市位於靜岡縣中部的靜岡平原、靜岡縣廳所在,面向駿河灣,是一座作為東海道要衝而開發的歷史悠久城市,交通十分便利,購物和文化設施齊全,透過新幹線可輕鬆抵達東京和名古屋,面積1,411.83平方公里,是日本面積第五大都市,靜岡市在悠久的歷史中,培育了各種文化,包括登呂遺址農耕聚落繁榮的彌生時代、今川文
Thumbnail
本篇探討《狂想之城》第五期,針對未來這個主題來反思科技發展與人類生命、環境的關係,並呼籲個體覺醒、自主,挑戰不公的體制與暴政。文章從建築的未來展望,延伸至醫療、司法、科技公司等議題,探討現有體制中隱藏的剝削、操控,鼓勵讀者從自身改變出發,追求真實、誠實,並以個體力量促進社會變革!
Thumbnail
本篇探討《狂想之城》第五期,針對未來這個主題來反思科技發展與人類生命、環境的關係,並呼籲個體覺醒、自主,挑戰不公的體制與暴政。文章從建築的未來展望,延伸至醫療、司法、科技公司等議題,探討現有體制中隱藏的剝削、操控,鼓勵讀者從自身改變出發,追求真實、誠實,並以個體力量促進社會變革!
Thumbnail
繼上次帶讀者探索台南巷子裏的立體拉花,這次適逢花季,一處隱身台南巷弄的絕美純白九重葛瀑布,每年花季已成為打卡亮點。而在花瀑下藏着一家生活食器小店「餐桌上的鹿早」,是近年在台南頗具人氣的小店,就讓我們走進寧靜的衛民街巷70弄裏,尋找巷子裏的神秘小店… 轉進巷子映入眼簾是一片白色九重葛瀑布,瀑布下
Thumbnail
繼上次帶讀者探索台南巷子裏的立體拉花,這次適逢花季,一處隱身台南巷弄的絕美純白九重葛瀑布,每年花季已成為打卡亮點。而在花瀑下藏着一家生活食器小店「餐桌上的鹿早」,是近年在台南頗具人氣的小店,就讓我們走進寧靜的衛民街巷70弄裏,尋找巷子裏的神秘小店… 轉進巷子映入眼簾是一片白色九重葛瀑布,瀑布下
Thumbnail
回頭看2017年幽默又感人的《生存家族》,從中,我們可以看到從現代城市『退化』到傳統鄉村的生活與價值。這樣一個家族怎麼呈現現代日本家庭面對生活中的挑戰呢,就是日本電影中最常見的城鄉命題。
Thumbnail
回頭看2017年幽默又感人的《生存家族》,從中,我們可以看到從現代城市『退化』到傳統鄉村的生活與價值。這樣一個家族怎麼呈現現代日本家庭面對生活中的挑戰呢,就是日本電影中最常見的城鄉命題。
Thumbnail
這本書一開始就提出打造品牌,要以如何讓消費者"常用"為終點,打造持續的品牌效應,梳理了要解決問題和思路。這是一本很重要的指導手冊跟判斷路徑,看了一半之後就決定要努力整理好內容,也造就目前寫過最長(也是最硬)的一篇文章,也不管大家有沒有耐心看完專欄的文章(笑),對我來說是把認知框架搭好,希望未來自己可
Thumbnail
這本書一開始就提出打造品牌,要以如何讓消費者"常用"為終點,打造持續的品牌效應,梳理了要解決問題和思路。這是一本很重要的指導手冊跟判斷路徑,看了一半之後就決定要努力整理好內容,也造就目前寫過最長(也是最硬)的一篇文章,也不管大家有沒有耐心看完專欄的文章(笑),對我來說是把認知框架搭好,希望未來自己可
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News