Nutika 打包 docx 库 出现 docx.opc.exceptions.PackageNotFoundError: Package not found at 问题
Posted Edwin_Aze
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Nutika 打包 docx 库 出现 docx.opc.exceptions.PackageNotFoundError: Package not found at 问题相关的知识,希望对你有一定的参考价值。
docx.opc.exceptions.PackageNotFoundError: Package not found at
重现
用以下命令打包exe:
nuitka --standalone --show-memory --show-progress --nofollow-imports --enable-plugin=pyqt5 --follow-import-to=utils,src --output-dir=out --windows-icon-from-ico=./termius_1.ico ui.py
在运行时碰见访问 docx 库的 Document() 函数创建空表时, 会提示无法找到 default.docx 模板文件。
解决思路
显然是打包后目录重定义, 导致无法找到原本库内的资源文件, 或者说打包程序在打包docx库时没有考虑这个东西。
大致思路即通过查一下 Nutika 的帮助, 找到 --include-data-dir=
参数, 也就是在打包后的运行目录中添加 data 文件夹。
其参数格式为:--include-data-dir=本地路径=映射路径
如这里想将本地 E:/Study/conda/Lib/site-packages/docx/templates
路径下的文件放到 软件根目录/docx/templates
下, 就这么写:
--include-data-dir=E:/Study/conda/Lib/site-packages/docx/templates=docx/templates
注意, 如果是打包成单文件, 其并不会额外多出一个 docx 文件夹, 而是会在 exe 内部实现, 而正常情况下会在软甲根目录下创建对应文件夹。
docx 库的模板文件一般都在 /docx/templates
中。
解决方案
在原本的命令中添加该参数即可。
打包成单文件, 且图标为 当前目录/termius_1.ico
, 运行时不回显Shell(不显示命令提示符窗口, 且用CMD运行也无控制台输出信息)
nuitka --standalone --show-memory --show-progress --nofollow-imports --enable-plugin=pyqt5 --follow-import-to=utils,src --output-dir=out --windows-icon-from-ico=./termius_1.ico --include-data-dir=E:/Study/conda/Lib/site-packages/docx/templates=docx/templates --onefile --windows-disable-console ui.py
用 python 来操作 docx, xlsx 格式文件(使用 docx 库操作 docx 格式文件
https://www.cnblogs.com/ontheway703/p/5266041.html
docx 库
文章结构:
一、docx 基本用,创建 docx 文件并添加数据
二、深入理解文本格式(format),并设置所格式属性(attribute)
三、深入理解样式(styles),以及如何运用样式
四、常用样式(style)示例
以上是关于Nutika 打包 docx 库 出现 docx.opc.exceptions.PackageNotFoundError: Package not found at 问题的主要内容,如果未能解决你的问题,请参考以下文章
Python Word文档处理 上篇:python-docx
如何将 HTML 标签转换为 WordDoc 文本格式?使用 DOCX.js 库
Python如何操作word文档,Python-docx类库的使用