2017-02-14 27 views
2

Я новичок в Python. Я пытаюсь создать исполняемый файл с cx_freeze, но после создания файла exe не может быть запущен. Я получаю следующее сообщение об ошибке: Error messagecx Заблокировать исполняемый файл без запуска импорта _tkinter # если это не удастся, ваш python не может быть настроен для tk

Я использую pytone 3.6.0

Код

import sys 
 
import os 
 
os.environ['TCL_LIBRARY'] = "C:\\Users\\Valeri\\AppData\\Local\\Programs\\Python\\Python36-32\\tcl\\tcl8.6" 
 
os.environ['TK_LIBRARY'] = "C:\\Users\\Valeri\\AppData\\Local\\Programs\\Python\\Python36-32\\tcl\\tk8.6" 
 
from cx_Freeze import setup, Executable 
 
# replaces commandline arg 'build' 
 
sys.argv.append("build") 
 
# change the filename to your program file ---> 
 
filename = "SolutionGenerator.py" 
 
base = None 
 
if sys.platform == "win32": 
 
    base = "Win32GUI" 
 
setup(
 
    name = "Circle", 
 
    version = "1.0", 
 
    description = "cx_Freeze Tkinter script", 
 
    executables = [Executable(filename, base=base)])

setup.py

import sys import os os.environ['TCL_LIBRARY'] = "C:\\Users\\Valeri\\AppData\\Local\\Programs\\Python\\Python36-32\\tcl\\tcl8.6" os.environ['TK_LIBRARY'] = "C:\\Users\\Valeri\\AppData\\Local\\Programs\\Python\\Python36-32\\tcl\\tk8.6" from cx_Freeze import setup, Executable "SolutionGenerator.py" base = None if sys.platform == "win32": 
 
    base = "Win32GUI" setup(
 
    name = "Circle", 
 
    version = "1.0", 
 
    description = "cx_Freeze Tkinter script", 
 
    executables = [Executable(filename, base=base)])

Я попробовал все, что я нашел в Интернете, но не могу получить этот ех работы. Есть ли другие возможности для создания exe из py в Python 3.6?

+0

Извините, я допустил ошибку в начальном посте. код на самом деле: от импорта Tkinter * из TkInter импорта MessageBox импорта случайные сообщений = [ '! рекриейтни там него'] # ответа = (сообщения [random.randint (0, LEN (сообщения) - 1)]) топ = Tk() top.title ("Random Ерунда Gen") top.geometry ("200x180") Защиту helloCallBack(): тзд = messagebox.showinfo ("! Шот", (сообщения [random.randint (0, len (messages) - 1)])) B = Кнопка (сверху, текст = «Слепой выстрел меня сейчас!», команда = helloCallBack) B.config (height = 3, width = 15) B.place (x = 50, y = 50) top.mainloop() – Val

+0

Вы пробовали это решение - https://stackoverflow.com/a/42357202/7046074. –

ответ

0

я была точно такая же проблема и решить ее путем копирования вручную следующую DLL в каталоге ехе:

  • % ПИТОН% \ библиотеки DLL \ tcl86t.dll
  • % ПИТОН% \ библиотеки DLL \ tk86t. dll