2013-03-21 2 views
1

Я новичок в python, я написал скрипт с использованием python и wxpython в Linux-машине. Теперь я хочу преобразовать .py в .exe, я использовал cxfreeze для этой цели. Выполняемые создать Execx freeze не работает

 $ 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 
+0

Хотел бы я потратить достаточно времени на cxfreeze, чтобы помочь. Я лично являюсь поклонником py2exe и недавно добавил поддержку 64-битных пакетов. Я знаю, что это работает и с wx. –

+0

@ g.d.d.c: is py @ exe работает для linux? или любой другой .py в .exe создатель в linux – user2193736

+0

Вы можете проверить pyinstaller. Мне не понравилось, что это двухпроходный режим, но он может соответствовать вашим потребностям. –

ответ

0

Я просто попытался использовать cxfreeze на CentOS, используя после простого приложения wxPython:

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-боксе. Если вы запустите cxfreeze в Windows, в итоге вы получите некоторые DLL-файлы. В любом случае, когда вы запускаете exe, который он создает в Windows, он работает. Когда вы запускаете файл, который он создает на CentOS, он работает. Но если вы попытаетесь скопировать файлы, созданные для этой ОС, в другую ОС, это не сработает.

+0

Я не уверен, что отвечает на этот вопрос, но вы совершенно правы: cx_Freeze может создавать исполняемые файлы Windows, Linux и Mac, но вы не можете зависнуть на одной платформе для другой. –

+0

Ну, он хотел знать, может ли он создать исполняемый файл Windows с помощью cx_freeze в Linux, и я создал небольшую демонстрацию, которая показывает, что вы не можете. –

+0

Я не думаю, что он действительно спрашивает о исполняемых файлах Windows, несмотря на упоминание .exe. Вы бы не запускали его как «./Script» в Windows, и я не думаю, что он будет достаточно далеко, чтобы дать вам сообщение об ошибке Python. –

 Смежные вопросы

  • Нет связанных вопросов^_^