Ailln / cn2an

📦 快速转化「中文数字」和「阿拉伯数字」~ (最新特性:分数,日期、温度等转化)

Home Page:https://www.dovolopor.com/cn2an

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

使用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

第一次对官方库提起问题,有点小激动。

commented

👍,pyinstaller 对静态文件需要额外处理。