Tôi rất mới đối với Python nói chung, nhưng tôi đã tạo một ứng dụng bằng Python 2.6/wxPython 2.8 hoạt động hoàn hảo khi tôi chạy nó thông qua Python. Nhưng tôi muốn đi một bước xa hơn và có thể triển khai nó như là một thực thi Windows, vì vậy tôi đã cố gắng ra py2exe. Nhưng tôi đã không thể làm cho nó hoạt động được. Nó sẽ luôn luôn biên dịch một exe, nhưng khi tôi thực sự cố gắng chạy nó nó barks một số thông báo lỗi khó hiểu. Lúc đầu, họ là thông điệp đơn giản nói rằng nó không thể tìm thấy một số DLL, nhưng ngay cả sau khi cho nó tất cả các DLL nó muốn, bây giờ nó sẽ trả về này:Làm cách nào để gỡ lỗi ứng dụng py2exe 'không thể khởi chạy đúng'?
The application failed to initialize properly (0xc0000142).
Click OK to terminate the application.
Vì vậy, tôi đã phá vỡ mọi thứ xuống và chỉ cần thực hiện một rất, rất ứng dụng đơn giản sử dụng wxPython chỉ để xem liệu điều đó có hiệu quả không, hoặc nếu một số tính năng phức tạp hơn của ứng dụng gốc của tôi đã bị cản trở. Nhưng ngay cả thử nghiệm đơn giản của tôi cũng trả về cùng một lỗi. Dưới đây là các mã cho các kịch bản thử nghiệm đơn giản:
import wx
class MainWindow(wx.Frame):
def __init__(self, parent, id, title):
wx.Frame.__init__(self, parent, wx.ID_ANY, title, style=wx.DEFAULT_FRAME_STYLE^wx.MAXIMIZE_BOX)
panel = wx.Panel(self, -1, style = wx.TAB_TRAVERSAL | wx.CLIP_CHILDREN | wx.FULL_REPAINT_ON_RESIZE)
main_sizer = wx.BoxSizer(wx.VERTICAL)
testtxt = wx.StaticText(panel, -1, label='This is a test!')
main_sizer.Add(testtxt, 0, wx.ALIGN_CENTER)
panel.SetSizerAndFit(main_sizer)
self.Show(1)
return
app = wx.PySimpleApp()
frame = MainWindow(None, -1, 'Test App')
app.MainLoop()
và đây là kịch bản cài đặt py2exe tôi đã sử dụng:
#!/usr/bin/python
from distutils.core import setup
import py2exe
manifest = """
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1"
manifestVersion="1.0">
<assemblyIdentity
version="0.64.1.0"
processorArchitecture="x86"
name="Controls"
type="win32"
/>
<description>Test Program</description>
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
processorArchitecture="X86"
publicKeyToken="6595b64144ccf1df"
language="*"
/>
</dependentAssembly>
</dependency>
</assembly>
"""
setup(
windows = [
{
"script": "testme.py",
"icon_resources": [(1, "testme.ico")],
"other_resources": [(24,1, manifest)]
}
],
data_files=["testme.ico"]
)
Sau đó, tôi chạy python setup.py py2exe
, nó tạo ra các tập tin EXE, cảnh báo về một số tập tin DLL (mà sau đó tôi sao chép vào thư mục dist), nhưng sau đó khi tôi cố gắng chạy EXE, tôi nhận được lỗi tôi trích dẫn ở trên ngay lập tức.
-1: Tiêu đề câu hỏi đáng sợ. Có lẽ điều này nên là: "Làm cách nào để gỡ lỗi ứng dụng py2exe 'không thể khởi chạy đúng' lỗi?" –
Xin lỗi về tiêu đề, S.Lott. Nó bây giờ đã được thay đổi. – SoaperGEM