使用pyinstaller 打包成功 cn2an
guanquanchen opened this issue · comments
找了整个网络都没看见打包成功的案例,我只能自己上手打包。
pyinstaller win py3.8.8
│
├─dist
│ │ amain.exe
│ │ 程序运行错误记录.py
│ │
│ └─配置表
│ 产品配置表.xlsx
│
├─ui_file
│ load_file.ui
│ main_ui.ui
│ main_ui1.ui
│ zhcdict.json
│
├─__pycache__
│ amain.cpython-38.pyc
│ an2cn.cpython-38.pyc
│ an2cn_test.cpython-38.pyc
│ cn2an.cpython-38.pyc
│ cn2an_test.cpython-38.pyc
│ funciton_list.cpython-38.pyc
│ glo.cpython-38.pyc
│ main.cpython-38.pyc
│ performance.cpython-38.pyc
│ transform.cpython-38.pyc
│ transform_test.cpython-38.pyc
│ utils.cpython-38.pyc
│ init.cpython-38.pyc
│
├─当前查找得到的结果
│ transform.py
│ transform_test.py
│ init.py
│ 程序运行错误记录.py
│ 高效检索代码程序.py
│
└─配置表
产品配置表.xlsx
注意 打包以后实际上是需要两个资源,一个 是 cn2an 自己本身的 cn2an/config.yaml
一个 是 zhconv/zhcdict.json 这个都需要自己手动加载到 打包以后的临时文件夹中, 自己用代码挪动就行
如何获得打包以后的 临时路径,请使用这个函数
import sys
import os
获得打包以后得路径。
def get_exe_path(relative_path=''):
if hasattr(sys, '_MEIPASS'):
return os.path.join(sys._MEIPASS, relative_path)
return os.path.join(os.path.abspath("."), relative_path)[:-1]
你还得修改打包的指令,第一次打包:
pyinstaller -F -import -i fff.ico amain.py -w
这样,生成了一个 amain.spec 文件,修改spec文件中
: datas=[("cn2an","cn2an"),("ui_file","ui_file")],
我的做法是在代码里面 转移了zhcdict.json ,做法是先创建一个文件夹,然后 复制进去。
第二次打包:
pyinstaller amain.spec
这样就结束了
如果实在不懂可以联系我。
微信: wo15985300747
qq: 1975767630
第一次对官方库提起问题,有点小激动。
👍,pyinstaller 对静态文件需要额外处理。