繁体   English   中英

py2exe PackageNotFoundError

[英]py2exe PackageNotFoundError

我目前正在尝试使用py2exe将Tkinter应用程序打包到.exe文件中。 包装工作正常,直到程序正常运行为止。 但是,当我调用某个函数时,运行.exe文件会记录以下错误:

Exception in Tkinter callback
Traceback (most recent call last):
  File "Tkinter.pyc", line 1532, in __call__
  File "/Users/Gordon/Gordon's Files/AutoFormatter/lib\formatterApp.py", line 58, in go
  File "formatter.pyc", line 72, in take
  File "docx\api.pyc", line 25, in Document
  File "docx\opc\package.pyc", line 116, in open
  File "docx\opc\pkgreader.pyc", line 32, in from_file
  File "docx\opc\phys_pkg.pyc", line 31, in __new__
PackageNotFoundError: Package not found at 'C:\Users\Gordon\Gordon's Files\AutoFormatter\dist\library.zip\docx\templates\default.docx'

最初运行py2exe时,我检查了\\ docx \\文件夹,发现py2exe实际上并未复制到\\ templates \\文件夹中。 手动解压缩library.zip之后,在正确的位置添加\\ templates \\文件夹,然后手动重新解压缩,但是,我得到了同样的错误。

我的setup.py如下:

from distutils.core import setup
import py2exe

setup(
    windows=[{'script': 'AutoFormatter.py'}],
    options={
        'py2exe': 
        {
            'includes': ['lxml.etree', 'lxml._elementpath', 'gzip', 'docx'],
        }
    }
)

我正在使用Python 2.7.8和py2exe 0.6.9在Windows 7计算机上运行该程序。

这可能为时已晚,但我也遇到了同样的麻烦。 我不知道是否已将python-docx编译成单个可执行文件,尽管我找到了解决方案。

我在使用python2.7的pyinstaller上,基本上是同一回事。 我希望您将其冻结在一个目录中,而不是一个文件中。 如果要冻结到一个文件,则此方法将无效

在此处下载(Mediafire链接)

放入

C:\Users\Gordon\Gordon's Files\AutoFormatter\dist\library.zip\docx\templates\default.docx

基本上无论您的.exe位于哪里。

希望能达到目的

基于我在创建文档时通过自己的目录和docx模块进行搜索的情况:

doc = Document()
doc.save('hello.docx')

它会拉出一个模板供您使用,如果您不创建自己的模板,它将使用python-docx本身提供的默认模板。

不要在此引用我的名字,但我相信python-docx在通过python执行时会通过其自己的目录查找default.docx模板。

由于我们已编译脚本,因此路径已更改为放置.exe的目录,但是pyinstaller(或您的py2exe)不包含带有dist文件夹的模板,这将创建PackageNotFoundError

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM