[問題] MEIPASS - No such file or directory er

作者: imhandmore (imhandmore)   2022-01-23 15:25:07
我用OpennCC模組製作程式碼,我在IDE環境上面可以順利執行
但等到我用pyinstaller 打包成exe之後就會顯示下列錯誤:
Traceback (most recent call last):
File "converter2.py", line 20, in <module>
File "opencc\opencc.py", line 55, in __init__
File "opencc\opencc.py", line 106, in _init_dict
FileNotFoundError: [Errno 2] No such file or directory: 'C:\\Users\\Claude\\AppData\\Local\\Temp\\_MEI151842\\opencc\\config\\s2tw.json'
[20160] Failed to execute script converter2
作者: lycantrope (阿寬)   2022-01-23 16:35:00
--add-data應該可以解決?你是怎麼指定path?
作者: imhandmore (imhandmore)   2022-01-23 17:26:00
因為他說我缺少 s2tw.json,所以我找到存放這個json的路徑去adddata整個目錄我用 pyinstaller -F --add-data "C:/Python38/Lib/site-packages/opencc/config;config/" 檔案名稱.py
作者: ckbtlin318 (59分當)   2022-01-23 18:33:00
https://tinyurl.com/yb3zqcgg可以試試看這篇下方回答
作者: lycantrope (阿寬)   2022-01-23 19:29:00
~"~, 用venv弄個獨立環境試試?https://docs.python.org/3.8/tutorial/venv.html
作者: poototo (poototo)   2022-01-24 00:11:00
;opencc/config" 目標path改這樣試試因為實際讀取時是去讀 MEI151842\\opencc\\config
作者: lepenseur (lepenseur)   2022-01-25 10:10:00
你打包執行檔,應該考慮目標平台怎麼讀取到這個 json檔你要安裝的目標平台,基本上User的AppData不會有你需要的檔案,因為那只在你的開發電腦上安裝,除非你自己寫安裝精靈把檔案放進AppData。剛剛看了一下opened 的介紹,你需要的這個檔案,應該是可以放在專案目錄下,用相對路徑去讀取就好。包裝執行檔時,直接用 —add-data 就可以了(自動選字錯字了,不是opened,是opencc)如果你沒打算寫安裝精靈,建議你把東西都放在專案目錄下,用相對路徑去讀取。因為你安裝的目標平台,使用者名稱根本不能保證完全一樣,你的絕對路徑一定常常出問題。(就以你的寫法來說,檔案的絕對路徑在 Claude 這個使用者的 AppData 資料夾中,但安裝這個執行檔的使用者,名字會這麼巧一樣是Claude 嗎?不一樣,那當然就找不到檔案囉)
作者: poototo (poototo)   2022-01-25 11:55:00
le大對sys._MEIPASS的動態路徑觀念要參考一下
作者: lepenseur (lepenseur)   2022-01-25 17:24:00
感覺我好像講太長了,應該單獨開一篇回覆比較好,哈哈哈

Links booklink

Contact Us: admin [ a t ] ucptt.com