Я пытаюсь создать исполняемый файл Python tkinter, который отображает информацию из базы данных Oracle, а также может экспортировать эту информацию в документ MS Word (.docx). То же самое относится и к Excel.
В настоящее время, когда я запускаю скрипт через PyCharm, я могу создавать новый документ Word и новую электронную таблицу Excel; однако после использования pyinstaller для создания исполняемого файла я не могу экспортировать новый документ Word, но могу экспортировать новую электронную таблицу Excel.
Мне кажется, мне нужно либо найти какой-нибудь неизвестный модуль Word, который фактически создает документы Word точно так же, как xlsxwriter создает листы Excel; или мне нужно как-то связать файл Word в исполняемый файл.
Python 3.7, PyCharm 2019.1.1 Community Edition.
Модули - tkinter, python-docx, docx-mailmerge, xlsxwriter, pyinstaller
Я использовал docx-mailmerge и объединял данные в шаблон документа Word, но затем я попытался использовать python-docx, чтобы попытаться «создать» свой собственный документ Word. (Из документации для python-docx: «На самом деле, это позволяет вам только вносить изменения в существующие документы; просто, если вы начинаете с документа, который не имеет никакого содержимого, сначала может показаться, что вы его создаете». с нуля. ")
Я попытался с помощью pyinstaller создать дистрибутив папки и исполняемый файл с одним файлом. Я думаю, что мой лучший вариант - создать папку, а затем вручную добавить шаблон Word в некоторую подпапку, но я не знаю, какая именно. Если это так, я думаю, что я могу использовать любой модуль Word.
Я могу экспортировать таблицы Excel, используя xlsxwriter, без проблем.
Я добавил инструкцию try / Кроме того, чтобы перехватить ошибку (и добавил в приложение метку, которая будет отображать имя ошибки), и я просмотрел весь список исключений в документации по python, но только все " кроме: "поймал бы.
def data_pull(user, pw, _id):
# connects to oracle and pulls data into a list
class App(Frame):
# a login frame not shown
# self.create_widgets()
def create_widgets(self):
# various StringVar() variables
# oracle data entry query (=_id)
# Button that calls entry query
# frames and scrolledtext for displaying the data
# Button to export to word
# Button to export to excel
def word_export(self, lst, path):
# export using python-docx
def excel_export(self, lst, path):
# export using xlsxwriter
def entry_callback(self):
# a = data_pull(user, pw, _id)
# parse a into a long string
# pass string to scrolledtext widget
Когда он запускается из PyCharm, документ Word создается без проблем, но когда он запускается из исполняемого файла, ничего не происходит.