2016-12-04 7 views
0

У меня есть простой скрипт для построения кривой ROC (с использованием sklearn и matplotlib). Я использовал PyInstaller для создания исполняемого файла из этого скрипта. Сам скрипт работает и работает отлично, но исполняемый дает мне эту ошибку:Python исполняемый файл с PyInstaller не запускается

No module named 'tkinter'

Что я пробовал:

1) Повторное создание исполняемого файла без --onefile флага (в случае, если какой-либо .dll не хватало) (FAILED)

2) вручную импортировать tkinter внутри моего скрипта (FAILED)

на самом деле, когда я добавил import tkinter ошибка изменен (в случае, если это имеет значение):

No module named 'tkinter.filedialog'

Я смущен. Я использовал PyInstaller много раз, но это первый раз, когда я сталкиваюсь с такой ошибкой.

ответ

0

Редактировать файл .spec и поместить путь к модулю внутри 'pathex' (в Analysis). Вы можете найти правильный путь модуля, используя module.__file__. В вашем случае:

>>> import tkinter.filedialog 
>>> tkinter.filedialog.__file__ 
'/usr/lib/python3.5/tkinter/filedialog.py' 

О .spec файле:

a = Analysis(['main.py'], 
       pathex=['/usr/lib/python3.5/tkinter/'], 
       binaries=None, 
       datas=None, 
       hiddenimports=[], 
       hookspath=[], 
       runtime_hooks=[], 
       excludes=[], 
       win_no_prefer_redirects=False, 
       win_private_assemblies=False, 
       cipher=block_cipher)