看板 Python 關於我們 聯絡資訊
我用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 ---------------------------- 我看stackoverflow的文章,加上adddata也是一樣 目前苦惱不知道怎麼解決,請各位幫我想個辦法,或者請私訊我 我可以提供報酬請你們幫忙解決 ----- Sent from JPTT on my Google Pixel 3a. -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.228.175.207 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1642922709.A.4AD.html
lycantrope: --add-data應該可以解決?你是怎麼指定path? 01/23 16:35
我寫在下面訊息
imhandmore: 因為他說我缺少 s2tw.json,所以我找到存放這個json的 01/23 17:26
imhandmore: 路徑去adddata整個目錄 01/23 17:26
imhandmore: 我用 pyinstaller -F --add-data "C:/Python38/Lib/si 01/23 17:26
imhandmore: te-packages/opencc/config;config/" 檔案名稱.py 01/23 17:26
※ 編輯: imhandmore (1.200.249.242 臺灣), 01/23/2022 17:26:36
ckbtlin318: https://tinyurl.com/yb3zqcgg 01/23 18:33
ckbtlin318: 可以試試看這篇下方回答 01/23 18:34
或顯示no MEIPASS的 reference的樣子 是的,我也有參考這篇。但還是出現錯誤,不過我用sys._MEIPASS的時候會顯示no MEIPASS module,而且import sys也顯示沒被使用 ※ 編輯: imhandmore (1.200.249.242 臺灣), 01/23/2022 18:57:24 ※ 編輯: imhandmore (1.200.249.242 臺灣), 01/23/2022 18:58:48
lycantrope: ~"~, 用venv弄個獨立環境試試? 01/23 19:29
請問怎麼使用 ※ 編輯: imhandmore (1.200.249.242 臺灣), 01/23/2022 19:31:41
poototo: ;opencc/config" 目標path改這樣試試 01/24 00:11
poototo: 因為實際讀取時是去讀 MEI151842\\opencc\\config 01/24 00:14
lepenseur: 你打包執行檔,應該考慮目標平台怎麼讀取到這個 json 01/25 10:10
lepenseur: 檔 01/25 10:10
lepenseur: 你要安裝的目標平台,基本上User的AppData不會有你需要 01/25 10:13
lepenseur: 的檔案,因為那只在你的開發電腦上安裝,除非你自己寫 01/25 10:13
lepenseur: 安裝精靈把檔案放進AppData。 01/25 10:13
lepenseur: 剛剛看了一下opened 的介紹,你需要的這個檔案,應該是 01/25 10:15
lepenseur: 可以放在專案目錄下,用相對路徑去讀取就好。包裝執行 01/25 10:15
lepenseur: 檔時,直接用 —add-data 就可以了 01/25 10:15
lepenseur: (自動選字錯字了,不是opened,是opencc) 01/25 10:16
lepenseur: 如果你沒打算寫安裝精靈,建議你把東西都放在專案目錄 01/25 10:19
lepenseur: 下,用相對路徑去讀取。因為你安裝的目標平台,使用者 01/25 10:19
lepenseur: 名稱根本不能保證完全一樣,你的絕對路徑一定常常出問 01/25 10:19
lepenseur: 題。 01/25 10:19
lepenseur: (就以你的寫法來說,檔案的絕對路徑在 Claude 這個使 01/25 10:37
lepenseur: 用者的 AppData 資料夾中,但安裝這個執行檔的使用者, 01/25 10:37
lepenseur: 名字會這麼巧一樣是Claude 嗎?不一樣,那當然就找不 01/25 10:37
lepenseur: 到檔案囉) 01/25 10:37
poototo: le大對sys._MEIPASS的動態路徑觀念要參考一下 01/25 11:55
lepenseur: 感覺我好像講太長了,應該單獨開一篇回覆比較好,哈哈 01/25 17:24
lepenseur: 哈 01/25 17:24