PyInstaller завершился ошибкой во время выполнения (ошибка сегментации) с одним вызовом matplotlib - PullRequest
0 голосов
/ 17 июня 2020

У меня очень простой скрипт debug.py:

import matplotlib.pyplot as plt
print("OK")
plt.figure()

Я создал исполняемый файл благодаря PyInstaller с pyinstaller debug.spec, где я добавил hiddenimports=['pkg_resources.py2_warn'] в Analysis объект и debug=True в EXE объекте в debug.spec.

Этап компиляции завершен без ошибок, но во время выполнения я получаю:

LOADER: Running debug.py
OK
LOADER: Restoring signal handlers
LOADER: freeing args
LOADER: re-raising child signal 11
Segmentation fault (core dumped)

Таким образом, кажется, что ошибка возникает в plt.figure() звоните но я не знаю почему.

Я использую CentOS ("Linux 7") и использую Anaconda (Python 3.7.6).

В качестве дополнительной информации я уже использовал matplotlib и plt.figure() в другом сценарии на другой платформе (Windows) с другой установкой Python, и исполняемый файл (также созданный с помощью PyInstaller) работает правильно.

ОБНОВЛЕНИЕ: благодаря faulthandler, мне удалось найти ошибку, вызванную numpy, при вызове numpy.dot в функции 'scale' в matplotlib/transforms.py. После нескольких попыток я вижу, что numpy.dot не работает, когда входные данные имеют тип float, а с int он работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...