[英]Cx_freeze exe troubleshooting
我使用wxpython和boa構造函數編寫了一個應用程序。 此應用程序將類實例存儲在有序字典中(我導入odict)並最終將數據存儲在本地計算機上的擱置中。 應用程序按我的預期運行,所以我想分發它。 以前,我已經使用過pyinstaller但是已經知道python 2.6目前還沒有完全支持(由我驗證因為我的* exe不起作用)所以我切換到了cx_freeze。 我新編譯的exe似乎運行正常,但不會創建擱置文件。 查看構建文件夾中的庫文件,我沒有看到odict模塊。 我看到擱置了。 似乎這是問題,但我不知道為什么不會自動包含odict。 運行應用程序時沒有錯誤,所以我不確定如何找到問題。 任何提示或建議將真誠地感謝。
在Windows XP上使用python 2.6.6,wx python 2.8.11,cx_freeze 4.2.2。
我寫了這個例子來嘗試確定它是否會編寫擱置文件,並且在運行cx_freeze之后它不起作用....
import wx
import sys
import os
import shelve
def create(parent):
return Frame1(parent)
[wxID_FRAME1, wxID_FRAME1BUTTON1,
] = [wx.NewId() for _init_ctrls in range(2)]
class Frame1(wx.Frame):
def _init_ctrls(self, prnt):
# generated method, don't edit
wx.Frame.__init__(self, id=wxID_FRAME1, name='', parent=prnt,
pos=wx.Point(557, 369), size=wx.Size(400, 250),
style=wx.DEFAULT_FRAME_STYLE, title='Frame1')
self.SetClientSize(wx.Size(392, 223))
self.button1 = wx.Button(id=wxID_FRAME1BUTTON1, label='button1',
name='button1', parent=self, pos=wx.Point(0, 0), size=wx.Size(392,
223), style=0)
self.button1.Bind(wx.EVT_BUTTON, self.OnButton1Button,
id=wxID_FRAME1BUTTON1)
def __init__(self, parent):
self._init_ctrls(parent)
def OnButton1Button(self, event):
filename='c:\\MakeAShelve.db'
data=[1,2,3,4]
database=shelve.open(filename)
database['data']=data
database.close()
if __name__ == '__main__':
app = wx.PySimpleApp()
frame = create(None)
frame.Show()
app.MainLoop()
我運行的設置如下,並作為python setup.py構建執行
import sys
from cx_Freeze import setup,Executable
includefiles=[]
exe=Executable(
script="ShelveTesting.py",
base="Win32Gui",
)
setup(
name="TimingDiagram",
version="0.2",
description="An Excel Based Timing Diagram Application",
options={'build_exe':{'include_files':includefiles}},
executables=[exe]
)
您始終可以手動包含此類模塊
build_exe_options = {'packages': ['os','sys','shelve'],'include_files':includefiles}
options = {"build_exe": build_exe_options}
注意!! 使用wxpython時需要特別注意。 http://wiki.wxpython.org/cx_freeze
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.