如何修复 exe 文件的 PackageNotFoundError
How to fix PackageNotFoundError for exe files
只有在我将其转换为 exe 后才出现错误,作为 .py 文件工作正常
我试图找到丢失的文件并替换它,但仍然没有用。
我得到的错误是:
Traceback (most recent call last):
File "tkinter_init_.py", line 1705, in call
File "CompilerGui.py", line 259, in
done = ttk.Button(window, text="Compile", command=lambda:finish(texts,
window, search_folder))
File "CompilerGui.py", line 210, in finish cb.the_main(q_list, values)
File "CompilerBase.py", line 323, in the_main
file_written = write_docx(values_dict, file_to_write)
File "CompilerBase.py", line 100, in write_docx
my_docx = docx.Document()
File "site-packages\docx\api.py", line 25, in Document
File "site-packages\docx\opc\package.py", line 128, in open
File "site-packages\docx\opc\pkgreader.py", line 32, in from_file
File "site-packages\docx\opc\phys_pkg.py", line 31, in new
docx.opc.exceptions.PackageNotFoundError: Package not found at
'C:\Users\LENOVO\AppData\Local\Temp_MEI92522\docx\templates\default.docx'
在您的 .spec
文件中,我认为您可以添加:
datas= [ ('C:\Program Files\Python36\Lib\site-packages\docx\templates\*', 'docx\templates' ) ],
在 Analysis
部分,将丢失的文件添加到您的 exe
。当然,这假设丢失的 default.docx
在指定的文件夹中。
我找到了问题的解决方案,它正在寻找一个不存在的文件夹。这是我修复它的方法:https://youtu.be/bB9RXak4eVY
另一个相当简单的修复方法是将 default.docx
复制到您的应用程序目录,将 my_docx = docx.Document()
更改为 my_docx = docx.Document(docx='default.docx')
,然后将 datas=[('default.docx', '.')]
添加到您的 [=14] =] 文件.
只有在我将其转换为 exe 后才出现错误,作为 .py 文件工作正常
我试图找到丢失的文件并替换它,但仍然没有用。 我得到的错误是:
Traceback (most recent call last):
File "tkinter_init_.py", line 1705, in call
File "CompilerGui.py", line 259, in
done = ttk.Button(window, text="Compile", command=lambda:finish(texts, window, search_folder))
File "CompilerGui.py", line 210, in finish cb.the_main(q_list, values)
File "CompilerBase.py", line 323, in the_main
file_written = write_docx(values_dict, file_to_write)
File "CompilerBase.py", line 100, in write_docx
my_docx = docx.Document()
File "site-packages\docx\api.py", line 25, in Document
File "site-packages\docx\opc\package.py", line 128, in open
File "site-packages\docx\opc\pkgreader.py", line 32, in from_file
File "site-packages\docx\opc\phys_pkg.py", line 31, in new
docx.opc.exceptions.PackageNotFoundError: Package not found at 'C:\Users\LENOVO\AppData\Local\Temp_MEI92522\docx\templates\default.docx'
在您的 .spec
文件中,我认为您可以添加:
datas= [ ('C:\Program Files\Python36\Lib\site-packages\docx\templates\*', 'docx\templates' ) ],
在 Analysis
部分,将丢失的文件添加到您的 exe
。当然,这假设丢失的 default.docx
在指定的文件夹中。
我找到了问题的解决方案,它正在寻找一个不存在的文件夹。这是我修复它的方法:https://youtu.be/bB9RXak4eVY
另一个相当简单的修复方法是将 default.docx
复制到您的应用程序目录,将 my_docx = docx.Document()
更改为 my_docx = docx.Document(docx='default.docx')
,然后将 datas=[('default.docx', '.')]
添加到您的 [=14] =] 文件.