【问题标题】:How to solve "jinja2.exceptions.TemplateNotFound: html.tpl" with excutable python created by Pyinstaller如何使用 Pyinstaller 创建的可执行 python 解决“jinja2.exceptions.TemplateNotFound: html.tpl”
【发布时间】:2021-04-21 05:07:52
【问题描述】:

我使用 Pyinstaller 为我的脚本创建了一个 exe,在运行该 exe 时它会引发以下错误,就好像我运行 .py 文件没有发现问题一样。

Traceback (most recent call last):
  File "myApplication.py", line 12, in <module>
  File "<frozen importlib._bootstrap>", line 983, in _find_and_load
  File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
  File "PyInstaller\loader\pyimod03_importers.py", line 540, in exec_module
  File "dataframe_image\__init__.py", line 2, in <module>
    """This directory is meant for IPython extensions."""
  File "<frozen importlib._bootstrap>", line 983, in _find_and_load
  File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
  File "PyInstaller\loader\pyimod03_importers.py", line 540, in exec_module
  File "dataframe_image\_pandas_accessor.py", line 2, in <module>
  File "<frozen importlib._bootstrap>", line 983, in _find_and_load
  File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
  File "PyInstaller\loader\pyimod03_importers.py", line 540, in exec_module
  File "pandas\io\formats\style.py", line 64, in <module>
  File "pandas\io\formats\style.py", line 143, in Styler
  File "jinja2\environment.py", line 883, in get_template
  File "jinja2\environment.py", line 857, in _load_template
  File "jinja2\loaders.py", line 115, in load
  File "jinja2\loaders.py", line 249, in get_source
jinja2.exceptions.TemplateNotFound: html.tpl
[18152] Failed to execute script myApplication

这里,[File "myApplication.py", line 12, in ] 在我的脚本中是 "import dataframe_image as dfi"。

我没有直接在我的脚本中使用 jinja2 模块。

我尝试了构建选项 --hidden-import=dataframe_image,它不适用于此问题。

Pyinstaller=4.3 Python=3.7.7

提前感谢您的帮助!

[4 月 21 日更新]

解决方案,pyinstaller --add-data path-to-site-packages\pandas\io\formats\templates\html.tpl;pandas\io\formats\templates 解决了上述错误,但出现了另一个错误。

Exception in Tkinter callback
Traceback (most recent call last):
  File "tkinter\__init__.py", line 1705, in __call__
  File "myApplication.py", line 374, in main
  File "dataframe_image\_pandas_accessor.py", line 24, in export
  File "dataframe_image\_pandas_accessor.py", line 33, in _export
  File "dataframe_image\_screenshot.py", line 79, in __init__
  File "dataframe_image\_screenshot.py", line 86, in get_css
FileNotFoundError: [Errno 2] No such file or directory: 'C:\\Users\\***\\AppData\\Local\\Temp\\_MEI252882\\dataframe_image\\static\\style.css'

这里,File "myApplication.py", line 374, in maindataframe_image.export(style, 'myTable.png')

【问题讨论】:

    标签: python dataframe pyinstaller python-3.7


    【解决方案1】:

    这是捆绑包中包含熊猫模板的问题。 pandas 开发团队报告了两个问题:

    还有一个向 pyinstaller 团队报告:

    检查 pyinstaller 团队的这个答案: https://github.com/pyinstaller/pyinstaller/issues/5360#issuecomment-737197845

    如果它对您不起作用,请检查此答案以解决问题:

    这不是最好的,因为需要编辑熊猫代码,但无论如何。

    【讨论】:

    • 感谢您的信息。解决方案,pyinstaller --add-data path-to-site-packages\pandas\io\formats\templates\html.tpl;pandas\io\formats\templates 解决了这个错误,但出现了另一个错误。
    • static 文件夹尝试相同的dataframe_image 包,例如`--add-data path-to-site-packages\dataframe_image\static`
    • 它工作了,最后我可以运行我的应用程序而没有错误并得到预期的结果!非常感谢!!!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-20
    • 2018-12-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-24
    相关资源
    最近更新 更多