Re: [問題] MEIPASS - No such file or directory er
le大好說,互通有無大家求進步
您看來有一個誤解之處是
原PO的狀況是,opencc有被打包了,但並不是所有套件下的檔案都被自動打包
s2tw.json這個檔是原PO要叫pyinstaller去抓來打包進exe的
並不是日後放在exe所在電腦,使用者還要確保自己電腦有這個json檔跟opencc
打包成功,exe自己帶著走,會當場重新產生json
而重新產生的位置,就是在sys._MEIPASS下
sys._MEIPASS,是每次exe一執行時強加sys的屬性
而預設值就是OS的TEMP PATH (通常就是User目錄的AppData下)
供 add-file 那些檔案在日後每次exe執行時重新產生到_MEIPASS
透過_MEIPASS的設計,exe在任意電腦上執行,
一切就相對於預設TEMP,不用管exe本身所在位置或使用者名稱
exe執行結束,TEMP中重新產生的資源檔也會被刪除
官方說明如下,再討論
================================================
1. https://pyinstaller.readthedocs.io/en/stable/usage.html
--runtime-tmpdir PATH
2. https://pyinstaller.readthedocs.io/en/stable/runtime-information.html
區分是打包後的exe在執行,還是python process在執行
================================================
※ 引述《lepenseur (lepenseur)》之銘言:
: ※ 引述《imhandmore (imhandmore)》之銘言:
: : 我用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.
: ----------
: 去年因為工作常常用到 pyinstaller 跟安裝精靈開發專案,
: 今天剛好看到有人討論,所以有點興趣。
: 也有可能是我觀念有錯,請不吝指正,讓我有機會成長。
: ----------
: : poototo: le大對sys._MEIPASS的動態路徑觀念要參考一下
: 我覺得 poototo 大大可能太執著在 MEIPASS 這個關鍵字上。
: 我平常習慣的寫法就是
: project_root = Path(sys._MEIPASS) if getattr(sys, 'frozen', False) else
: Path(__file__).absolute().parents[0]
: 先抓出專案路徑,接著都用這個路徑去動態切換。
: 但原 PO 這個寫法,就算改用 sys._MEIPASS,也只能讀到該專案的目錄而已,抓不到使
: 用者的 AppData 路徑,還是會報錯。
: ---
: 基本上,整段錯誤訊息的重點是
: FileNotFoundError: [Errno 2] No such file or directory:
: 'C:\\Users\\Claude\\AppData\\Local\\Temp\\_MEI151842\\opencc\\config\\s2tw.json'
: 這一行。
: 意思是,你的 exe 執行時,在 C:\\Users\\Claude\\AppData\\... 這路徑下面讀取不到
: s2tw.json 這個檔案。
: 這個目錄是 Windows 下,每個使用者的應用程式設定,你安裝的軟體,都有可能在這邊
: 儲存你需要的設定值或檔案。
: 所以,是因為原 PO 的 s2tw.json 檔案位置放在 AppData 下,
: 當安裝到另外一台電腦時(假設使用者是 John),那他的絕對路徑應該依據使用者名
: 稱修改成 C:\\Users\\John\\AppData\\...\\s2tw.json
: 這個寫法,不僅要根據使用者名稱去修改路徑,還要請使用者的電腦上安裝 opencc,
: 才會有這個檔案存在。
: 但原 PO 最近暫時沒回覆,也許已經解決問題了。
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 180.177.89.24 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Python/M.1643124914.A.D32.html
※ 編輯: poototo (180.177.89.24 臺灣), 01/25/2022 23:45:02
→
01/26 01:23,
2年前
, 1F
01/26 01:23, 1F
→
01/26 01:25,
2年前
, 2F
01/26 01:25, 2F
→
01/26 01:25,
2年前
, 3F
01/26 01:25, 3F
→
01/26 01:25,
2年前
, 4F
01/26 01:25, 4F
→
01/26 01:25,
2年前
, 5F
01/26 01:25, 5F
→
01/26 01:25,
2年前
, 6F
01/26 01:25, 6F
→
01/26 01:26,
2年前
, 7F
01/26 01:26, 7F
→
01/26 01:26,
2年前
, 8F
01/26 01:26, 8F
→
01/26 01:28,
2年前
, 9F
01/26 01:28, 9F
→
01/26 01:28,
2年前
, 10F
01/26 01:28, 10F
→
01/26 01:28,
2年前
, 11F
01/26 01:28, 11F
→
01/26 01:30,
2年前
, 12F
01/26 01:30, 12F
→
01/26 01:30,
2年前
, 13F
01/26 01:30, 13F
→
01/26 01:30,
2年前
, 14F
01/26 01:30, 14F
→
01/26 09:02,
2年前
, 15F
01/26 09:02, 15F
→
01/26 09:02,
2年前
, 16F
01/26 09:02, 16F
→
01/26 09:03,
2年前
, 17F
01/26 09:03, 17F
→
01/26 09:03,
2年前
, 18F
01/26 09:03, 18F
→
01/26 09:03,
2年前
, 19F
01/26 09:03, 19F
→
01/26 09:03,
2年前
, 20F
01/26 09:03, 20F
→
01/26 09:03,
2年前
, 21F
01/26 09:03, 21F
→
01/26 09:04,
2年前
, 22F
01/26 09:04, 22F
→
01/26 09:04,
2年前
, 23F
01/26 09:04, 23F
→
01/26 09:04,
2年前
, 24F
01/26 09:04, 24F
→
01/26 09:04,
2年前
, 25F
01/26 09:04, 25F
→
01/26 09:04,
2年前
, 26F
01/26 09:04, 26F
→
01/26 09:04,
2年前
, 27F
01/26 09:04, 27F
→
01/26 16:20,
2年前
, 28F
01/26 16:20, 28F
→
01/26 16:21,
2年前
, 29F
01/26 16:21, 29F
→
01/26 16:21,
2年前
, 30F
01/26 16:21, 30F
→
01/26 16:22,
2年前
, 31F
01/26 16:22, 31F
→
01/26 16:22,
2年前
, 32F
01/26 16:22, 32F
→
01/26 16:22,
2年前
, 33F
01/26 16:22, 33F
→
01/26 16:24,
2年前
, 34F
01/26 16:24, 34F
→
01/26 16:24,
2年前
, 35F
01/26 16:24, 35F
→
01/26 16:27,
2年前
, 36F
01/26 16:27, 36F
→
01/26 16:27,
2年前
, 37F
01/26 16:27, 37F
→
01/26 16:27,
2年前
, 38F
01/26 16:27, 38F
→
01/26 16:28,
2年前
, 39F
01/26 16:28, 39F
→
01/26 16:29,
2年前
, 40F
01/26 16:29, 40F
→
01/26 16:30,
2年前
, 41F
01/26 16:30, 41F
推
01/26 16:31,
2年前
, 42F
01/26 16:31, 42F
→
01/26 16:32,
2年前
, 43F
01/26 16:32, 43F
→
01/26 16:32,
2年前
, 44F
01/26 16:32, 44F
→
01/26 16:33,
2年前
, 45F
01/26 16:33, 45F
→
01/26 16:33,
2年前
, 46F
01/26 16:33, 46F
→
01/26 16:33,
2年前
, 47F
01/26 16:33, 47F
→
01/26 16:34,
2年前
, 48F
01/26 16:34, 48F
→
01/26 16:34,
2年前
, 49F
01/26 16:34, 49F
→
01/26 16:34,
2年前
, 50F
01/26 16:34, 50F
→
01/26 16:34,
2年前
, 51F
01/26 16:34, 51F
→
01/26 16:36,
2年前
, 52F
01/26 16:36, 52F
→
01/26 16:36,
2年前
, 53F
01/26 16:36, 53F
→
01/26 16:40,
2年前
, 54F
01/26 16:40, 54F
→
01/26 16:40,
2年前
, 55F
01/26 16:40, 55F
推
01/26 16:42,
2年前
, 56F
01/26 16:42, 56F
→
01/26 16:42,
2年前
, 57F
01/26 16:42, 57F
→
01/26 16:42,
2年前
, 58F
01/26 16:42, 58F
推
01/26 16:47,
2年前
, 59F
01/26 16:47, 59F
→
01/26 16:47,
2年前
, 60F
01/26 16:47, 60F
→
01/26 16:48,
2年前
, 61F
01/26 16:48, 61F
→
01/26 16:48,
2年前
, 62F
01/26 16:48, 62F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 3 之 4 篇):
Python 近期熱門文章
PTT數位生活區 即時熱門文章