2017-02-01 7 views
0

저는 PyQt5에서 QtWebEngine을 사용하는 앱을 컴파일하려고했습니다. 응용 프로그램이 의도 한대로 작동하지만 컴파일 할 때 오류가 발생합니다. 나는 해결책을 찾고 며칠을 보냈지 만 지금까지 나는 운이 없었습니다. 양조에서 파이썬을 설치했고 웹 사이트 패키지 양식을 다운로드했습니다. 나는 PyQt5 form brew와 pip3을 아무런 운없이 설치했다. pyinstaller 스크립트를 실행 한 후에 "QtWebEngineProcess를 찾을 수 없습니다"오류가 발생합니다. QtWebEngineProcess.app 파일을 MacOS 폴더에 복사하면 해결됩니다. Subsequentially 나는 info.plist 파일이 심볼릭 링크가 아니라 실제 파일인지 확인했습니다. 그 다음에 "org.qt-project.Qt.QtWebEngineCore"플래그를 주 앱 info.plist의 "CFBundleIdentifier"에 추가했습니다. 이렇게하면 "QtWebEngineProcess"를 찾지 못하는 문제가 해결되지만 아래에 설명 된 오류가 발생합니다. 나는 "icudtl.dat"파일을 MacOS 폴더에도 복사했습니다. 또한 프레임 워크 자체의 종속성을 다시 작성하고 심볼릭 링크가 없는지 확인하려고 시도했습니다 like stated here. 나는 거기에 갇혀있어 install_name_tool에 익숙하지 않아요. 어떤 아이디어? 누구든지 QtWebEngine을 사용하여 pyqt 앱을 컴파일 할 수 있습니까?PyQt5 앱을 QtWebEngine으로 컴파일하기

[0201/130544:ERROR:icu_util.cc(162)] Invalid file descriptor to ICU data received. 
[0201/130544:FATAL:content_main_runner.cc(714)] Check failed: base::i18n::InitializeICU(). 
0 QtWebEngineCore      0x000000010d4b62e3 _ZN15QtWebEngineCore20FilePickerController11qt_metacallEN11QMetaObject4CallEiPPv + 12132083 
1 QtWebEngineCore      0x000000010d4c9809 _ZN15QtWebEngineCore20FilePickerController11qt_metacallEN11QMetaObject4CallEiPPv + 12211225 
2 QtWebEngineCore      0x000000010ce7cb03 _ZN15QtWebEngineCore20FilePickerController11qt_metacallEN11QMetaObject4CallEiPPv + 5605139 
3 QtWebEngineCore      0x000000010c918ee4 _ZN15QtWebEngineCore18WebContentsAdapter14faviconManagerEv + 28052 
4 QtWebEngineCore      0x000000010c917f48 _ZN15QtWebEngineCore18WebContentsAdapter14faviconManagerEv + 24056 
5 QtWebEngineCore      0x000000010c90e3b9 _ZN15QtWebEngineCore18WebContentsAdapterC2EPN7content11WebContentsE + 57 
6 QtWebEngineWidgets     0x000000011113ce4e _ZrsR11QDataStreamR17QWebEngineHistory + 1870 
7 QtWebEngineWidgets     0x000000011113ec20 _ZN14QWebEnginePageC1EP7QObject + 48 
8 QtWebEngineWidgets     0x000000011114ad17 _ZN14QWebEngineView6setUrlERK4QUrl + 55 
9 PyQt5.QtWebEngineWidgets.so   0x0000000111100ca3 _ZL26meth_QWebEngineView_setUrlP7_objectS0_ + 99 
10 Python        0x00000001080faae9 PyCFunction_Call + 233 
11 Python        0x0000000108187a81 PyEval_EvalFrameEx + 35729 
12 Python        0x00000001081884fc PyEval_EvalFrameEx + 38412 
13 Python        0x0000000108188e90 _PyEval_EvalCodeWithName + 2400 
14 Python        0x0000000108188f97 PyEval_EvalCodeEx + 71 
15 Python        0x00000001080d577a function_call + 186 
16 Python        0x00000001080a28d3 PyObject_Call + 99 
17 Python        0x00000001080bd9cc method_call + 140 
18 Python        0x00000001080a28d3 PyObject_Call + 99 
19 Python        0x00000001081184c1 slot_tp_init + 81 
20 Python        0x000000010810ef44 type_call + 212 
21 Python        0x00000001080a28d3 PyObject_Call + 99 
22 Python        0x0000000108182b65 PyEval_EvalFrameEx + 15477 
23 Python        0x0000000108188e90 _PyEval_EvalCodeWithName + 2400 
24 Python   

        0x0000000108188ff1 PyEval_EvalCode + 81 
25 Sailor        0x0000000106e52490 Sailor + 9360 
26 Sailor        0x0000000106e529f9 Sailor + 10745 
27 Sailor        0x0000000106e51464 Sailor + 5220 
28 ???         0x0000000000000003 0x0 + 3 

Trace/BPT trap: 5 

답변

0

그것은 나를 위해 일한 다른 정보를 볼 수 있습니다

def patch_osx_app(): 
    """Patch .app to copy missing data and link some libs. 
    See https://github.com/pyinstaller/pyinstaller/issues/2276 
    """ 
    app_path = os.path.join('dist', 'qutebrowser.app') 
    qtwe_core_dir = os.path.join('.tox', 'pyinstaller', 'lib', 'python3.6', 
           'site-packages', 'PyQt5', 'Qt', 'lib', 
           'QtWebengineCore.framework') 
    # Copy QtWebEngineProcess.app 
    proc_app = 'QtWebEngineProcess.app' 
    shutil.copytree(os.path.join(qtwe_core_dir, 'Helpers', proc_app), 
        os.path.join(app_path, 'Contents', 'MacOS', proc_app)) 
    # Copy resources 
    for f in glob.glob(os.path.join(qtwe_core_dir, 'Resources', '*')): 
     dest = os.path.join(app_path, 'Contents', 'Resources') 
     if os.path.isdir(f): 
      shutil.copytree(f, os.path.join(dest, f)) 
     else: 
      shutil.copy(f, dest) 
    # Link dependencies 
    for lib in ['QtCore', 'QtWebEngineCore', 'QtQuick', 'QtQml', 'QtNetwork', 
       'QtGui', 'QtWebChannel', 'QtPositioning']: 
     dest = os.path.join(app_path, lib + '.framework', 'Versions', '5') 
     os.makedirs(dest) 
     os.symlink(os.path.join(os.pardir, os.pardir, os.pardir, 'Contents', 
           'MacOS', lib), 
        os.path.join(dest, lib))