簡體   English   中英

將 PyInstaller 用於 Matplotlib 腳本后出錯

[英]Error after using PyInstaller for script with Matplotlib

在我的代碼中,我使用:

import matplotlib.pyplot as plt
import matplotlib.image as mpimg

當我構建 .py 腳本時,一切正常。 但是在使用 pyinstaller.exe 獲取可執行文件后,出現以下錯誤:

Traceback (most recent call last):
  File "C:\Program Files\Python38\Scripts\excel_to_python.py", line 10, in <module>
  File "<frozen importlib._bootstrap>", line 991, in _find_and_load
  File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 671, in _load_unlocked
  File "c:\program files\Python38\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 493, in exec_module
  File "matplotlib\__init__.py", line 913, in <module>
  File "matplotlib\__init__.py", line 812, in _rc_params_in_file
  File "contextlib.py", line 113, in __enter__
  File "matplotlib\__init__.py", line 790, in _open_file_or_url
FileNotFoundError: [Errno 2] No such file or directory: 'C:\\Users\\usr\\AppData\\Local\\Temp\\_MEI640402\\matplotlib\\mpl-data\\matplotlibrc'
[62044] Failed to execute script mpl_script

我試圖重新安裝 matplotlib 和 pyinstaller 但它都是一樣的。

  1. 安裝Visual C++ Redistributable Package(vc_redist.x64.exe 或 vc_redist.x86.exe,具體取決於您的 Windows)。 你可以在這里找到它: 最新支持的visual c 下載,這里: vc_redist.x64或這里: vc_redist.x86然后
  2. 用 pyinstaller重建你的可執行文件。

分析

我在使用 Python 3.8.7 的 Windows 7 64 位中遇到了同樣的錯誤:

Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation.  All rights reserved.
C:\Users\w\Desktop\1\dist>MyTool.exe
Traceback (most recent call last):
  File "MyTool.py", line 9, in <module>
  File "<frozen importlib._bootstrap>", line 991, in _find_and_load
  File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 671, in _load_unlocked
  File "PyInstaller\loader\pyimod03_importers.py", line 531, in exec_module
  File "matplotlib\__init__.py", line 913, in <module>
  File "matplotlib\__init__.py", line 812, in _rc_params_in_file
  File "contextlib.py", line 113, in __enter__
  File "matplotlib\__init__.py", line 790, in _open_file_or_url
FileNotFoundError: [Errno 2] No such file or directory: 'C:\\Users\\w\\AppData\\Local\\Temp\\_MEI17002\\matplotlib\\mpl-data\\matplotlibrc'
[916] Failed to execute script MyTool

我按照pyinstaller-python使用調試級別重建了可執行文件:

pyinstaller --onefile --log-level=DEBUG MyTool.py

在建築痕跡中,我看到了下面的 matplotlib Traceback:

18885 INFO: Loading module hook 'hook-matplotlib.backends.py' from 'c:\\users\\w\\appdata\\local\\programs\\python\\python38\\lib\\site-packages\\PyInstaller\\hooks'...
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "c:\users\w\appdata\local\programs\python\python38\lib\site-packages\matplotlib\__init__.py", line 174, in <module>
    _check_versions()
  File "c:\users\w\appdata\local\programs\python\python38\lib\site-packages\matplotlib\__init__.py", line 159, in _check_versions
    from . import ft2font
ImportError: DLL load failed while importing ft2font: The specified module could not be found.
19108 INFO: Loading module hook 'hook-matplotlib.py' from 'c:\\users\\w\\appdata\\local\\programs\\python\\python38\\lib\\site-packages\\PyInstaller\\hooks'...
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "c:\users\w\appdata\local\programs\python\python38\lib\site-packages\matplotlib\__init__.py", line 174, in <module>
    _check_versions()
  File "c:\users\w\appdata\local\programs\python\python38\lib\site-packages\matplotlib\__init__.py", line 159, in _check_versions
    from . import ft2font
ImportError: DLL load failed while importing ft2font: The specified module could not be found.

這導致我: 導入 ft2font 時 dll 加載失敗matplotlib 無法加載 ft2fontmatplotlib import ft2font 那里有幾個答案建議安裝 Visual C++ Redistributable Package,這實際上是唯一有幫助的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM