[問題] pyinstaller 打包含有 tesseract 的程式

作者: shihs (shih)   2018-07-22 11:31:37
我在 Windows 7 底下使用 pyinstaller 打包我的程式碼。
這個程式碼會有讀取驗證碼的功能,所以會用到 pytesseract 這個套件,在使用 image_to_string 這個 function 時會需要 tesseract 。
打包後在其他電腦執行 exe 檔時會出現,
TessaractNotFoundError: tesseract is not installer or it's not in your path.
我的解決方法就是下載 tesseract ,然後加入環境變數,就像當初在設定自己電腦那樣。
但對於要加環境變數不熟悉的使用者來說好像也蠻麻煩的,而且每次在新的電腦執行就必須要重新設定一次。
不知道是不是有什麼方式可以簡單一點呢?讓使用者只要點兩下執行 exe 等就能使用程式了?
謝謝大家。
作者: guaptpan (Gua)   2018-07-22 11:39:00
試試看打包時用-F的參數嗎? 因為我之前這樣做他也會把import到的東西抓進來
作者: shihs (shih)   2018-07-22 12:15:00
有耶,我有用-F,也有試過用-p去抓套件的路徑,都還是有同樣的問題耶...
作者: guaptpan (Gua)   2018-07-22 12:44:00
剛剛看了一下tesseract是額外安裝的程式,感覺除非安裝tesseract的步驟可以包在程式裡面,當初始化時自動幫使用者安裝並設定好路徑,不然只能請使用者手動輸入安裝後的位置了?
作者: TakiDog (多奇狗)   2018-07-22 19:50:00
建議讓使用者直接安裝官方tesseract,會自動設定環境變數再透過subprocess去使用,我自己是這樣用 可以跨系統
作者: shihs (shih)   2018-07-23 01:28:00
謝謝大家!我用了樓上的方法,測試成功!

Links booklink

Contact Us: admin [ a t ] ucptt.com