首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >打包python .app文件崩溃,但打包python .sh文件工作正常

打包python .app文件崩溃,但打包python .sh文件工作正常
EN

Stack Overflow用户
提问于 2015-05-12 01:54:45
回答 1查看 214关注 0票数 4

我在上用Python3.4.3、Pyqt4和其他一些附加程序(其中之一是Poppler)制作了一个应用程序。

我正在使用cx_freeze生成一个工作的.app文件,并最终生成一个工作的.app文件。在使用build命令构建应用程序之后,我一直在测试它是否正常工作,就像在"python3 setup.py build“中一样。这一切都正常,没有意外的崩溃。接下来使用"python3 setup.py bdist_dmg“对其进行打包。打开dmg文件/app文件,它们立即崩溃,从而产生以下错误:

代码语言:javascript
复制
Process:               main [1098]
Path:                  /Users/USER/*/FYP-0.1.app/Contents/MacOS/main
Identifier:            main
Version:               0
Code Type:             X86-64 (Native)
Parent Process:        ??? [1]
Responsible:           main [1098]
User ID:               501

Date/Time:             2015-05-12 02:18:16.867 +0100
OS Version:            Mac OS X 10.10.3 (14D131)
Report Version:        11
Anonymous UUID:        8A613A61-D35F-9A4C-8E97-57069A95BF20


Time Awake Since Boot: 1300 seconds

Crashed Thread:        0  Dispatch queue: com.apple.main-thread

Exception Type:        EXC_BAD_ACCESS (SIGSEGV)
Exception Codes:       KERN_INVALID_ADDRESS at 0x0000000000000000

VM Regions Near 0:
--> 
__TEXT                 0000000103135000-0000000103138000 [   12K] r-  x/rwx SM=COW  /Users/USER/*/FYP-0.1.app/Contents/MacOS/main

Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0   QtGui                           0x000000010ecf126b   QApplication::setActiveWindow(QWidget*) + 315
1   QtGui                           0x000000010ec90b7d  onApplicationWindowChangedActivation(QWidget*, bool) + 100
2   com.apple.CoreFoundation        0x00007fff8e99045c __CFNOTIFICATIONCENTER_IS_CALLING_OUT_TO_AN_OBSERVER__ + 12
3   com.apple.CoreFoundation        0x00007fff8e880634 _CFXNotificationPost + 3140
4   com.apple.Foundation            0x00007fff94cd29d1 -[NSNotificationCenter postNotificationName:object:userInfo:] + 66
5   com.apple.AppKit                0x00007fff9048dbd9 -[NSWindow becomeKeyWindow] + 1406
6   com.apple.AppKit                0x00007fff9048cf3e -[NSWindow _changeKeyAndMainLimitedOK:] + 795
7   com.apple.AppKit                0x00007fff9048cb36 -[NSWindow _makeKeyRegardlessOfVisibility] + 98
8   com.apple.AppKit                0x00007fff9048ca9e -[NSWindow makeKeyAndOrderFront:] + 27
9   QtGui                           0x00000001045cfea7 QWidgetPrivate::show_sys() + 629
10  QtGui                           0x000000010466c39c QWidgetPrivate::show_helper() + 432
11  QtGui                           0x000000010466ccce QWidget::setVisible(bool) + 800
12  PyQt4.QtGui.so                  0x0000000103f40634 sipQMainWindow::setVisible(bool) + 100
13  PyQt4.QtGui.so                  0x00000001040f7ed9 meth_QWidget_show(_object*, _object*) + 105
14  Python                          0x0000000103315ad5 PyEval_EvalFrameEx + 22129
15  Python                          0x0000000103318f12 fast_function + 203
16  Python                          0x0000000103315964 PyEval_EvalFrameEx + 21760
17  Python                          0x00000001033102ad PyEval_EvalCodeEx + 1622
18  Python                          0x000000010329e7ab function_call + 372
19  Python                          0x000000010327e576 PyObject_Call + 103
20  Python                          0x000000010328fca8 method_call +   136
21  Python                          0x000000010327e576 PyObject_Call + 103
22  Python                          0x00000001032c45b2 slot_tp_init + 57
23  Python                          0x00000001032c1b48 type_call + 172
24  Python                          0x000000010327e576 PyObject_Call + 103
25  Python                          0x000000010331582a PyEval_EvalFrameEx + 21446
26  Python                          0x00000001033102ad PyEval_EvalCodeEx + 1622
27  Python                          0x000000010330fc51 PyEval_EvalCode + 63
28  Python                          0x000000010330d6e3 builtin_exec + 536
29  Python                          0x0000000103315ad5 PyEval_EvalFrameEx + 22129
30  Python                          0x00000001033102ad PyEval_EvalCodeEx + 1622
31  Python                          0x000000010330fc51 PyEval_EvalCode + 63
32  main                            0x0000000103136cc5 main + 1957
33  libdyld.dylib                   0x00007fff986995c9 start + 1

Thread 1:: Dispatch queue: com.apple.libdispatch-manager
0   libsystem_kernel.dylib          0x00007fff91651232 kevent64 + 10
1   libdispatch.dylib               0x00007fff96fd0a6a _dispatch_mgr_thread + 52

Thread 2:
0   libsystem_kernel.dylib          0x00007fff9165094a __workq_kernreturn + 10
1   libsystem_pthread.dylib         0x00007fff92c4e40d start_wqthread + 13

Thread 3:
0   libsystem_kernel.dylib          0x00007fff9165094a __workq_kernreturn + 10
1   libsystem_pthread.dylib         0x00007fff92c4e40d start_wqthread + 13

Thread 4:
0   libsystem_kernel.dylib          0x00007fff9165094a __workq_kernreturn + 10
1   libsystem_pthread.dylib         0x00007fff92c4e40d start_wqthread + 13

Thread 5:
0   libsystem_kernel.dylib          0x00007fff9165094a __workq_kernreturn + 10
1   libsystem_pthread.dylib         0x00007fff92c4e40d start_wqthread + 13

Thread 6:
0   libsystem_kernel.dylib          0x00007fff9165094a __workq_kernreturn + 10
1   libsystem_pthread.dylib         0x00007fff92c4e40d start_wqthread + 13

Thread 0 crashed with X86 Thread State (64-bit):
  rax: 0x0000000000000000  rbx: 0x00007fbe8322a670  rcx: 0x00007fbe8326d0a0  rdx: 0x0000000000000002
  rdi: 0x00007fbe8322a670  rsi: 0x0000000000000001  rbp: 0x00007fff5cac8ea0  rsp: 0x00007fff5cac8df0
   r8: 0x0000000000000000   r9: 0x00007fbe830f90a0  r10: 0x0000000000000011  r11: 0x00007fff7bbdc190
  r12: 0x00007fbe8322a670  r13: 0x00000000000f42cd  r14: 0x00007fbe83296370  r15: 0x000000010f578228
  rip: 0x000000010ecf126b  rfl: 0x0000000000010202  cr2: 0x0000000000000000

Logical CPU:     0
Error Code:      0x00000004
Trap Number:     14

有更多的,但我不知道有多少是相关的。这是我的setup.py文件:

代码语言:javascript
复制
from cx_Freeze import setup, Executable
import sys
import os

base = None
if sys.platform == "win32":
    base = "Win32GUI"

zips = ["implementation/primaries/GUI/designer_files",
         "implementation/primaries/GUI/themes",     "implementation/primaries/GUI/images",
     "implementation/primaries/scripts"]
build_exe_options = {"packages": ["os"], "excludes": ["tkinter"],
                 "include_files":zips}


setup(
    name='FYP',
    version='0.1',
    packages=['implementation', 'implementation.primaries',     'implementation.primaries.GUI', 'implementation.primaries.scripts',
              'implementation.primaries.GUI.pyqt_plugins',     'implementation.primaries.Drawing',     'implementation.primaries.Drawing.classes',
          'implementation.primaries.Drawing.classes.tree_cls',     'implementation.primaries.ExtractMetadata',
              'implementation.primaries.ExtractMetadata.classes',     'implementation.primaries.ImportOnlineDBs','implementation.primaries.ImportOnlineDBs.classes'],
    description='MuseLib',
    options = {"build_exe": build_exe_options},
    executables = [Executable("implementation/main.py", base=base)]
)

我不知道问题是什么,我看到其他一些人也有类似的问题,但他们似乎要么在早期版本的Python上,要么在旧版本的OS上,而这些修复并没有解决我的问题。如能就如何开展工作提出任何建议,将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-05-12 20:03:39

找到了更好的调试方法:右键单击app文件“查看包内容”,MacOS >选择与setup.py中给出的文件同名的可执行文件(对我来说,这是主要的)。我得到的错误:QWidget: Must construct a QApplication before a QPaintDevice

我通过初始化我的Application对象,然后初始化我的主窗口对象,然后显示主窗口,然后调用一个load方法来设置这个窗口来修正这个问题。我最初是在构造函数中做这个部分,这是由于某种原因造成了问题。现在,我在打开/关闭窗口和关闭其他窗口时遇到了问题,但这可能是另一个问题或搜索会话的最佳选择。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30180465

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档