作者imhandmore (imhandmore)
看板Python
標題[問題] MEIPASS - No such file or directory er
時間Sun Jan 23 15:25:07 2022
我用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://webptt.com/m.aspx?n=bbs/Python/M.1642922709.A.4AD.html
1F:推 lycantrope: --add-data應該可以解決?你是怎麼指定path? 01/23 16:35
我寫在下面訊息
2F:→ imhandmore: 因為他說我缺少 s2tw.json,所以我找到存放這個json的 01/23 17:26
3F:→ imhandmore: 路徑去adddata整個目錄 01/23 17:26
4F:→ imhandmore: 我用 pyinstaller -F --add-data "C:/Python38/Lib/si 01/23 17:26
5F:→ imhandmore: te-packages/opencc/config;config/" 檔案名稱.py 01/23 17:26
※ 編輯: imhandmore (1.200.249.242 臺灣), 01/23/2022 17:26:36
7F:→ 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
8F:推 lycantrope: ~"~, 用venv弄個獨立環境試試? 01/23 19:29
請問怎麼使用
※ 編輯: imhandmore (1.200.249.242 臺灣), 01/23/2022 19:31:41
10F:推 poototo: ;opencc/config" 目標path改這樣試試 01/24 00:11
11F:推 poototo: 因為實際讀取時是去讀 MEI151842\\opencc\\config 01/24 00:14
12F:→ lepenseur: 你打包執行檔,應該考慮目標平台怎麼讀取到這個 json 01/25 10:10
13F:→ lepenseur: 檔 01/25 10:10
14F:→ lepenseur: 你要安裝的目標平台,基本上User的AppData不會有你需要 01/25 10:13
15F:→ lepenseur: 的檔案,因為那只在你的開發電腦上安裝,除非你自己寫 01/25 10:13
16F:→ lepenseur: 安裝精靈把檔案放進AppData。 01/25 10:13
17F:→ lepenseur: 剛剛看了一下opened 的介紹,你需要的這個檔案,應該是 01/25 10:15
18F:→ lepenseur: 可以放在專案目錄下,用相對路徑去讀取就好。包裝執行 01/25 10:15
19F:→ lepenseur: 檔時,直接用 —add-data 就可以了 01/25 10:15
20F:→ lepenseur: (自動選字錯字了,不是opened,是opencc) 01/25 10:16
21F:→ lepenseur: 如果你沒打算寫安裝精靈,建議你把東西都放在專案目錄 01/25 10:19
22F:→ lepenseur: 下,用相對路徑去讀取。因為你安裝的目標平台,使用者 01/25 10:19
23F:→ lepenseur: 名稱根本不能保證完全一樣,你的絕對路徑一定常常出問 01/25 10:19
24F:→ lepenseur: 題。 01/25 10:19
25F:→ lepenseur: (就以你的寫法來說,檔案的絕對路徑在 Claude 這個使 01/25 10:37
26F:→ lepenseur: 用者的 AppData 資料夾中,但安裝這個執行檔的使用者, 01/25 10:37
27F:→ lepenseur: 名字會這麼巧一樣是Claude 嗎?不一樣,那當然就找不 01/25 10:37
28F:→ lepenseur: 到檔案囉) 01/25 10:37
29F:推 poototo: le大對sys._MEIPASS的動態路徑觀念要參考一下 01/25 11:55
30F:→ lepenseur: 感覺我好像講太長了,應該單獨開一篇回覆比較好,哈哈 01/25 17:24
31F:→ lepenseur: 哈 01/25 17:24