Я установил PyInstaller для создания исполняемых файлов для моих сценариев python, и это работает нормально. Я использовал PyPandoc для создания отчетов .docx
, которые также работают нормально, когда запускаются обычные файлы python, но не из исполняемого файла PyInstaller. Он дает ошибку:PyPandoc в сочетании с PyInstaller
Traceback (most recent call last):
File "src\flexmodel_postcalc.py", line 295, in postcalculate_everything
File "src\flexmodel_postcalc.py", line 281, in generate_report_docx
File "src\flexmodel_report_docx.py", line 118, in generate_text_useages_docx
File "pypandoc\__init__.py", line 50, in convert
File "pypandoc\__init__.py", line 70, in _convert
File "pypandoc\__init__.py", line 197, in get_pandoc_formats
File "pypandoc\__init__.py", line 336, in _ensure_pandoc_path
OSError: No pandoc was found: either install pandoc and add it
to your PATH or install pypandoc wheels with included pandoc.
Во время создания исполняемого файла я не вижу никаких странных проблем с PyPandoc. Как включить Pandoc в свой исполняемый файл, чтобы другие (без установки Python и/или Pandoc) могли использовать исполняемый файл и создавать отчеты .docx
?
редактировать: рабочий процесс включал в себя следующие этапы:
Создать файл, включая следующий код:
import pypandoc pypandoc.convert(source='# Sample title\nPlaceholder', to='docx', format='md', outputfile='test.docx')
Сохранить этот файл как
pythonfile.py
создать исполняемый с PyInstaller:
pyinstaller --onefile --clean pythonfile.py
Теперь исполняемый файл должен запускаться на компьютере без установленного Pandoc (или PyPandoc).
Можете ли вы добавить минимальный рабочий пример вашего сценария python, чтобы узнать, какую часть pandoc вы используете? Я пытался использовать только «pypandoc» и, кажется, отлично работает в моей системе Windows. Скорее всего, вам нужно добавить 'pypandoc' в качестве [скрытого импорта] (https://pythonhosted.org/PyInstaller/when-things-go-wrong.html#listing-hidden-imports) плюс некоторые другие функции dependecy. – Repiklis
@Repiklis Я могу дать очень короткий пример кода, но не проверить его прямо сейчас. 'import pypandoc; pypandoc.convert (source = '# Пример заголовка \ nPlaceholder', to = 'docx', format = 'md', outputfile = 'test.docx') '. Это сохраняется в файле '.py', который я конвертирую с помощью PyInstaller с помощью команды' pyinstaller --onefile --clean -p H: \ AppData \ Python \ Python27 \ Lib \ site-packages pythonfile.py' – Mathias711
Пожалуйста, напишите ваш образец кода в вопросе, чтобы другие могли понять вашу проблему. Я отправлю ответ ниже. – Repiklis