需要使用到的文件wxapp.py, read_file.py, setup.py
import wx
import os
import sys
import read_file
class Frame(wx.Frame):
def __init__(self):
wx.Frame.__init__(self, parent=None, title='Hello from cx_Freeze')
panel = wx.Panel(self)
closeMeButton = wx.Button(panel, -1, 'Close Me')
wx.EVT_BUTTON(self, closeMeButton.GetId(), self.OnCloseMe)
wx.EVT_CLOSE(self, self.OnCloseWindow)
pushMeButton = wx.Button(panel, -1, 'Push Me')
wx.EVT_BUTTON(self, pushMeButton.GetId(), self.OnPushMe)
sizer = wx.BoxSizer(wx.HORIZONTAL)
sizer.Add(closeMeButton, flag=wx.ALL, border=20)
sizer.Add(pushMeButton, flag=wx.ALL, border=20)
panel.SetSizer(sizer)
topSizer = wx.BoxSizer(wx.VERTICAL)
topSizer.Add(panel, flag=wx.ALL | wx.EXPAND)
topSizer.Fit(self)
def OnCloseMe(self, event):
obj = read_file.PrintContent()
if getattr(sys, 'frozen', None):
path = os.path.dirname(sys.executable)
else:
path = os.path.dirname(__file__)
path = os.path.join(path, "read_file.py")
obj.show_content(path)
def OnPushMe(self, event):
wx.MessageBox('I was pushed!', 'Informational message')
def OnCloseWindow(self, event):
self.Destroy()
class App(wx.App):
def OnInit(self):
frame = Frame()
frame.Show(True)
self.SetTopWindow(frame)
return True
app = App(1)
app.MainLoop()
class PrintContent(object):
def show_content(self, path):
f = open(path)
for line in f:
print line
f.close()
# A simple setup script to create an executable running wxPython. This also
# demonstrates the method for creating a Windows executable that does not have
# an associated console.
#
# wxapp.py is a very simple 'Hello, world' type wxPython application
#
# Run the build process by running the command 'python setup.py build'
#
# If everything works well you should find a subdirectory in the build
# subdirectory that contains the files needed to run the application
import sys
from cx_Freeze import setup, Executable
build_exe_options = {"optimize": 2,
"include_files": ["read_file.py"]}
base = None
if sys.platform == 'win32':
base = 'Win32GUI'
executables = [Executable(script='wxapp.py',
base=base,
targetName="Demo.exe",
compress=True,
icon="py.ico")]
setup(name='wxapp',
version='0.1',
description='cx_Freeze wxPython スクリプトのサンプル',
options = {"build_exe": build_exe_options},
実行可能ファイル=実行可能ファイル)
cmd を開き、コードが存在するディレクトリを入力して、次のように入力します。
次に、build と dist の 2 つのフォルダーが生成されます。build フォルダーには、exe 実行可能ファイルと依存ライブラリが保存されます。dist をダブルクリックすると、フォルダー全体を他のフォルダーに直接コピーして実行できます。ファイルの下には、ビルド フォルダーのインストール プログラムがあります。dist フォルダー内のインストール パッケージを友人に直接転送します。その友人は、インストール パッケージを実行すると、ビルドと同じフォルダーを取得します。ユーザー
setup.py のパラメーター オプションについては、公式 Web サイトにアクセスして、対応するオプション情報を確認できます