2015-01-27 4 views
1

Сегодня я начал изучать python. Я только когда-либо использовал PHP для разных вещей, и мне никогда не приходилось беспокоиться о создании exe-файлов.Python 3.4 GUI single executable

Использование некоторых интернет Python учебники программирования и немного моего собственного редактирования я пришел со случайным «Сколько раз вы щелкнули» приложения, как показано ниже

import winsound 
from tkinter import * 

class Application(Frame): 

    def __init__(self, master): 
     Frame.__init__(self,master) 
     self.pack() 
     self.counts = 0 
     self.create_widgets() 

    def create_widgets(self): 
     Label(self, text = "Test Label").pack() 
     self.button = Button(self, text = "click", command = self.update_text).pack() 

     self.result = Label(self, text = "Clicked 0 times") 
     self.result.pack() 

    def update_text(self): 
     self.counts += 1 

     self.result["text"] = "Clicked " + str(self.counts) + " times" 

     winsound.PlaySound('sound1.wav', winsound.SND_FILENAME | winsound.SND_ASYNC) 


root = Tk() 
root.title("Title") 
root.geometry("300x120") 
app = Application(root) 

root.mainloop 

Приложение работает нормально, но проблемы начались, когда Я попытался скомпилировать его в один файл exe по соображениям удобства, поскольку я намерен писать небольшие программы «сделать что-то более легкое». Py2Exe не хочет компилировать программу с bundle_files 1 вообще. PyInstaller скомпилировал его с -onefile, но при выполнении приложение дает вам не что иное, как ошибки tkinter.

Есть ли способ создания небольших файлов exe с графическим интерфейсом или это тупик? Я не собираюсь врать, но мне очень понравилась идея изучения python и возможности использовать его как в веб-приложениях, так и в настольных приложениях, что было не очень возможно в PHP.

Я использую Python 3.4 и тестировал встроенный py2exe и разработку PyInstaller для Python 3.3 - 3.4.

Edit: Образец setup.py для py2exe и ошибка

from distutils.core import setup 
import py2exe 
setup(windows=[{"script": "text.py"}], 
     options = {"py2exe": {"bundle_files": 1} 
}) 

Ошибка

C:\Users\SEJBR\Desktop\Python>python setup.py py2exe 
running py2exe 

    1 missing Modules 
    ------------------ 
? readline       imported from cmd, code, pdb 
OOPS: tkinter 2 

PyInstaller ошибка компиляции

Traceback (most recent call last): 
    File "<string>", line 1, in <module> 
ImportError: No module named 'Tkinter' 
2515 ERROR: TCL/TK seams to be not properly installed on this system 
+0

Вы использовали аргумент window вместо консоли в py2exe? –

+0

Да. Я использовал окна в настройках и bundle_files: 1 в настройках> options и py2exe дает отсутствующий модуль OOPS: ошибка tkinter 2 из-за bundle_files ниже 2. Но с bundle_files, превышающим 1, не говорится об одном исполняемом файле. Отредактировав вопрос и добавив образец py2exe setup.py и ошибку, я получаю с ним. – SEJBR

+0

Я не знаком с py2exe, но используя PyInstaller, какие ошибки вы получили? – fhdrsdg

ответ

0

Ну обходной путь был довольно прост .. Я с пониженным рейтингом до Python 2.7.9 и PyInstaller скомпилировали приложение отлично, без pr oblems. я просто использовал

from __future__ import print_function 
from __future__ import division 

Чтобы использовать функцию печати Python 3.X и применить изменения деления. Если кто-то придумает реальное исправление, ответьте на вопрос.