【发布时间】:2016-12-16 21:44:39
【问题描述】:
我安装了 PyInstaller 来为我的 python 脚本创建可执行文件,而且效果很好。我使用 PyPandoc 创建了.docx 报告,它在运行普通 python 文件时也可以正常运行,但不能从 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添加为hidden import 以及其他一些依赖项。 -
@Repiklis 我可以给出一个非常简短的示例代码,但现在不进行测试。
import pypandoc; pypandoc.convert(source='# Sample title\nPlaceholder', to='docx', format='md', outputfile='test.docx')。这保存在一个.py文件中,我通过命令pyinstaller --onefile --clean -p H:\AppData\Python\Python27\Lib\site-packages pythonfile.py使用PyInstaller 进行转换 -
请在问题中发布您的示例代码,以便其他人了解您的问题。我将在下面发布答案。
-
@Repiklis 添加了它。提前致谢!
标签: python pyinstaller pandoc pypandoc