Как исправить PackageNotFoundError для EXE-файлов - PullRequest
1 голос
/ 04 апреля 2019

Это дает мне ошибку только после того, как я преобразовал его в исполняемый файл, отлично работает как файл .py

Я попытался найти отсутствующий файл и заменить его, но он все еще не работал.Я получаю сообщение об ошибке:

Трассировка (последний последний вызов):

Файл "tkinter_init_.py", строка 1705, в вызове

Файл "CompilerGui.py ", строка 259, в

done = ttk.Button (window, text =" Compile ", command = lambda: finish (тексты, окно, search_folder))

Файл" CompilerGui.py ", строка 210, в конце cb.the_main (q_list, значения)

Файл" CompilerBase.py ", строка 323, в the_main

file_written = write_docx (values_dict, file_to_write)

Файл "CompilerBase.py", строка 100, в write_docx

my_docx = docx.Document ()

Файл "site-packages \ docx \ api.py", строка25, в документе

Файл "site-packages \ docx \ opc \ package.py", строка 128, в открытом

Файл "site-packages \ docx \ opc \ pkgreader.py", строка 32, в файле from_file

Файл "site-packages \ docx \ opc \ phys_pkg.py", строка 31, в новом

docx.opc.exceptions.PackageNotFoundError: Пакет не найден в«C: \ Users \ LENOVO \ AppData \ Local \ Temp_MEI92522 \ гocx \ templates \ default.docx '

Ответы [ 3 ]

0 голосов
/ 05 апреля 2019

Я разобрался с решением проблемы, он искал папку, которой не было. Вот как я это исправил: https://youtu.be/bB9RXak4eVY

0 голосов
/ 05 апреля 2019

Еще одним довольно простым решением было бы просто скопировать default.docx в каталог вашего приложения, изменить my_docx = docx.Document() на my_docx = docx.Document(docx='default.docx') и добавить datas=[('default.docx', '.')] в ваш файл .spec.

0 голосов
/ 04 апреля 2019

В вашем .spec файле, я думаю, вы можете добавить:

datas= [ ('C:\\Program Files\\Python36\\Lib\\site-packages\\docx\\templates\\*', 'docx\\templates' ) ],

в разделе Analysis, чтобы добавить отсутствующий файл в exe.Это, конечно, предполагает, что отсутствующий default.docx находится в указанной папке.

...