2016-03-02 3 views
1

Я использую Pyinstaller (после долгого времени с py2exe), чтобы преобразовать файл REAL.py в .exe. Я использовал Anaconda для создания файла .py, который отлично работает на моем компьютере. Но когда я делаю .exe-файл, он не показывает ошибки, и приложение создается в папке dist \ REAL. Но когда я запускаю файл .exe, консоль открывается и закрывается мгновенно.Pyinstaller с Tkinter Matplotlib numpy scipy

Он должен идеально отображать окно GUI и принимать входные данные и использовать их для создания графиков. Он делает это, когда я запускаю файл REAL.py. Я использую Tkinter, Matplotlib, numpy, scipy, который поставляется с Anaconda.

EDIT: Я пытался запустить простой код, чтобы проверить совместимость с Matplotlib:

импорт matplotlib.pyplot как PLT

plt.plot ([1,2,3,4])

plt.ylabel ('некоторые числа')

plt.show()

Та же проблема сохраняется с этим. Открывает окно консоли, а затем закрывается, но сюжет не выводится.

+0

У меня аналогичная проблема. Одна вещь, которую вы, возможно, захотите попробовать, - использовать флаг «--debug» в качестве аргумента для pyinstaller - это может помочь вам определить, каков конкретный сбой. – user888379

ответ

0

Я нашел решение в py2exe. После был setup.py файл, который работал с SciPy импорта Tkinter Matplotlib Numpy:

from distutils.core import setup 
import py2exe 

from distutils.filelist import findall 
import matplotlib 

opts = {"py2exe": { 
    "packages" : ['matplotlib'], 
    "includes": ['scipy', 'scipy.integrate', 'scipy.special.*','scipy.linalg.*'], 
     'dll_excludes': ['libgdk-win32-2.0-0.dll', 
          'libgobject-2.0-0.dll', 
      'libgdk_pixbuf-2.0-0.dll'] 
        } 
      } 

setup(
     windows = [{'script': "with_GUI.py"}], zipfile = None, 
     options= opts, 
     data_files = matplotlib.get_py2exe_datafiles() 
    ) 

Но это дало мне ошибку о том, что существует конфликт версий с двумя файлами. Поэтому я изменил два файла: dist/tcl/tcl8.5/init.tcl (строка 19) и dist/tcl/tk8.5/tk.tcl (строка 18). В моем случае я изменил версию с 8.5.15 до 8.5.18. Я нашел расположение двух файлов, посмотрев путь, указанный ошибкой в ​​журнале ошибок. Тогда .exe работал просто отлично.

Надеюсь, это поможет.

0

Попробуйте использовать -hidden-import = matplotlib при вызове pyinstaller. Например, в командной строке введите:

Pyinstaller --hidden-импорт = Matplotlib your_filename_here.py

и вы могли бы попытаться дать ему выстрел с Tkinter в там.

Pyinstaller --hidden-импорт = Matplotlib --hidden-импорт = Tkinter your_filename_here.py

Смежные вопросы