cx冻结不起作用

时间:2013-03-21 05:52:50

标签: python wxpython cx-freeze

我是python的新手,我在linux机器上使用python和wxpython编写了脚本。现在我想将.py转换为.exe,我为此目的使用了cxfreeze。创建exe后面的步骤

        $ python setup.py build
        $ python setup.py install
        $ python pip cxfreeze
        $ cxfreeze script.py

但是当我在其他系统中执行“./script(the exe)”时,我收到此错误:

 File "/usr/local/lib/python2.7/dist-packages/cx_Freeze/initscripts/Console.py", line 27, in <module>
 File "script.py", line 3, in <module>
 File "/usr/lib/python2.7/dist-packages/wx-2.8-gtk2-unicode/wx/__init__.py", line 45, in <module>
 File "/usr/lib/python2.7/dist-packages/wx-2.8-gtk2-unicode/wx/_core.py", line 4, in <module>
 File "ExtensionLoader_wx__core_.py", line 18, in <module>
 ImportError: No module named None

1 个答案:

答案 0 :(得分:0)

我只是尝试使用以下简单的wxPython应用程序在CentOS上使用cxfreeze:

import wx

########################################################################
class MyFrame(wx.Frame):
    """"""

    #----------------------------------------------------------------------
    def __init__(self):
        """Constructor"""
        wx.Frame.__init__(self, None, title="Test EXE", size=(1024, 768))
        panel = wx.Panel(self)

        lbl = wx.StaticText(panel, label="This is a binary program!")


if __name__ == "__main__":
    app = wx.App(False)
    frame = MyFrame()
    frame.Show()
    app.MainLoop()

复制到Windows 7框时的输出根本不起作用。它正在为CentOS而不是Windows创建文件!因为我在Linux机器上运行脚本,所以不足为奇。如果在Windows上运行cxfreeze,最终会在输出中输入一些DLL文件。无论哪种方式,当你运行它在Windows上生成的exe时,它都有效。当您运行它在CentOS上创建的文件时,它可以正常工作。但是,如果您尝试将为该操作系统生成的文件复制到其他操作系统,则无效。