作者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/cn.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