web-dev-qa-db-fra.com

Comment réparer «ImportError: impossible de trouver Qt5Core.dll sur PATH» après que pyinstaller a intégré l'application python

Impossible d'exécuter l'application graphique basée sur QT fournie par pyinstaller, la sortie de la console montre qu'elle est due à une erreur d'importation:

ImportError: unable to find Qt5Core.dll on PATH

À l'origine, le pyqt5/pyqt et pyinstaller est de condo. J'ai essayé de réinstaller pyqt5 et pyinstaller de pypi, mais cela ne résout pas le problème.

J'ai vérifié le répertoire dist de pyinstaller, il contient toutes les DLL nécessaires. Lorsque je suis dans conda env (démarrer une console conda, puis exécuter l'application groupée dans la console), l'application groupée s'exécute correctement. J'ai vérifié les DLL chargées, elles sont toutes dans le répertoire dist ou les répertoires par défaut du système.

Je suis dessus windows 10 x64 [Ver 10.0.18362.175], Python est 3.7.3 de miniconda.

forfaits conda:

    # packages in environment at D:\Miniconda3:    
    #    
    # Name                    Version                   Build
    altgraph                  0.16.1                   pypi_0
    asn1crypto                0.24.0                   py37_0
    attrs                     19.1.0                   py37_1
    backcall                  0.1.0                    py37_0
    blas                      1.0                         mkl
    bleach                    3.1.0                    py37_0
    bzip2                     1.0.7                he774522_0
    ca-certificates           2019.5.15                     0
    certifi                   2019.6.16                py37_0
    cffi                      1.12.3           py37h7a1dbc1_0
    chardet                   3.0.4                    py37_1
    colorama                  0.4.1                    py37_0
    conda                     4.7.5                    py37_0
    conda-package-handling    1.3.10                   py37_0
    cryptography              2.7              py37h7a1dbc1_0
    decorator                 4.4.0                    py37_1
    defusedxml                0.6.0                      py_0
    entrypoints               0.3                      py37_0
    future                    0.17.1                   pypi_0
    icc_rt                    2019.0.0             h0cc432a_1
    icu                       58.2                 ha66f8fd_1
    idna                      2.8                      py37_0
    intel-openmp              2019.4                      245
    ipykernel                 5.1.1            py37h39e3cac_0
    ipython                   7.6.0            py37h39e3cac_0
    ipython_genutils          0.2.0                    py37_0
    ipywidgets                7.4.2                    py37_0
    jedi                      0.13.3                   py37_0
    jinja2                    2.10.1                   py37_0
    jpeg                      9b                   hb83a4c4_2
    jsonschema                3.0.1                    py37_0
    jupyter                   1.0.0                    py37_7
    jupyter_client            5.2.4                    py37_0
    jupyter_console           6.0.0                    py37_0
    jupyter_core              4.5.0                      py_0
    jupyterlab                0.35.4           py37hf63ae98_0
    jupyterlab_server         0.2.0                    py37_0
    libarchive                3.3.3                h0643e63_5
    libiconv                  1.15                 h1df5818_7
    libpng                    1.6.37               h2a8f88b_0
    libsodium                 1.0.16               h9d3ae62_0
    libxml2                   2.9.9                h464c3ec_0
    lz4-c                     1.8.1.2              h2fa13f4_0
    lzo                       2.10                 h6df0209_2
    m2w64-gcc-libgfortran     5.3.0                         6
    m2w64-gcc-libs            5.3.0                         7
    m2w64-gcc-libs-core       5.3.0                         7
    m2w64-gmp                 6.1.0                         2
    m2w64-libwinpthread-git   5.0.0.4634.697f757             
    macholib                  1.11                     pypi_0
    markupsafe                1.1.1            py37he774522_0
    menuinst                  1.4.16           py37he774522_0
    mistune                   0.8.4            py37he774522_0
    mkl                       2019.4                      245
    mkl_fft                   1.0.12           py37h14836fe_0
    mkl_random                1.0.2            py37h343c172_0
    msys2-conda-Epoch         20160418                      1
    nbconvert                 5.5.0                      py_0
    nbformat                  4.4.0                    py37_0
    notebook                  5.7.8                    py37_0
    numpy                     1.16.4           py37h19fb1c0_0
    numpy-base                1.16.4           py37hc3f5095_0
    openssl                   1.1.1c               he774522_1
    pandoc                    2.2.3.2                       0
    pandocfilters             1.4.2                    py37_1
    parso                     0.5.0                      py_0
    pefile                    2019.4.18                pypi_0
    pickleshare               0.7.5                    py37_0
    pip                       19.1.1                   py37_0
    prometheus_client         0.7.1                      py_0
    Prompt_toolkit            2.0.9                    py37_0
    pycosat                   0.6.3            py37hfa6e2cd_0
    pycparser                 2.19                     py37_0
    pycrypto                  2.6.1                    pypi_0
    pygments                  2.4.2                      py_0
    pyinstaller               3.4                      pypi_0
    pyopenssl                 19.0.0                   py37_0
    pyqt                      5.9.2            py37h6538335_2
    pyqt5                     5.13.0                   pypi_0
    pyqt5-sip                 4.19.18                  pypi_0
    pyrsistent                0.14.11          py37he774522_0
    pysocks                   1.7.0                    py37_0
    python                    3.7.3                h8c8aaf0_0
    python-dateutil           2.8.0                    py37_0
    python-libarchive-c       2.8                      py37_9
    pywin32                   223              py37hfa6e2cd_1
    pywin32-ctypes            0.2.0                    pypi_0
    pywinpty                  0.5.5                 py37_1000
    pyzmq                     18.0.0           py37ha925a31_0
    qt                        5.9.7            vc14h73c81de_0
    qtconsole                 4.5.1                      py_0
    requests                  2.22.0                   py37_0
    ruamel_yaml               0.15.46          py37hfa6e2cd_0
    scipy                     1.2.1            py37h29ff71c_0
    send2trash                1.5.0                    py37_0
    setuptools                41.0.1                   py37_0
    sip                       4.19.8           py37h6538335_0
    six                       1.12.0                   py37_0
    sqlite                    3.28.0               he774522_0
    terminado                 0.8.2                    py37_0
    testpath                  0.4.2                    py37_0
    tornado                   6.0.3            py37he774522_0
    tqdm                      4.32.1                     py_0
    traitlets                 4.3.2                    py37_0
    urllib3                   1.24.2                   py37_0
    vc                        14.1                 h0510ff6_4
    vs2015_runtime            14.15.26706          h3a45250_4
    wcwidth                   0.1.7                    py37_0
    webencodings              0.5.1                    py37_1
    wheel                     0.33.4                   py37_0
    widgetsnbextension        3.4.2                    py37_0
    win_inet_pton             1.1.0                    py37_0
    wincertstore              0.2                      py37_0
    winpty                    0.4.3                         4
    xz                        5.2.4                h2fa13f4_4
    yaml                      0.1.7                hc54c509_2
    zeromq                    4.3.1                h33f27b4_3
    zlib                      1.2.11               h62dcd97_3
    zstd                      1.3.7                h508b16e_0

fichiers dist dir pyinstaller:

    PS C:\Users\xxx\Idp\dist\main> dir


        Directory: C:\Users\xxx\Idp\dist\main


    Mode                LastWriteTime         Length Name
    ----                -------------         ------ ----
    d-----         2019/7/9     15:04                Crypto
    d-----         2019/7/9     15:04                PyQt5
    -a----         2019/7/8     16:35          19208 api-ms-win-core-console-l1-1-0.dll
    -a----         2019/7/8     16:35          18696 api-ms-win-core-datetime-l1-1-0.dll
    -a----         2019/7/8     16:35          18696 api-ms-win-core-debug-l1-1-0.dll
    -a----         2019/7/8     16:35          18696 api-ms-win-core-errorhandling-l1-1-0.dll
    -a----         2019/7/8     16:35          22280 api-ms-win-core-file-l1-1-0.dll
    -a----         2019/7/8     16:35          18696 api-ms-win-core-file-l1-2-0.dll
    -a----         2019/7/8     16:35          18696 api-ms-win-core-file-l2-1-0.dll
    -a----         2019/7/8     16:35          18696 api-ms-win-core-handle-l1-1-0.dll
    -a----         2019/7/8     16:35          19208 api-ms-win-core-heap-l1-1-0.dll
    -a----         2019/7/8     16:35          18696 api-ms-win-core-interlocked-l1-1-0.dll
    -a----         2019/7/8     16:35          19720 api-ms-win-core-libraryloader-l1-1-0.dll
    -a----         2019/7/8     16:35          21256 api-ms-win-core-localization-l1-2-0.dll
    -a----         2019/7/8     16:35          19208 api-ms-win-core-memory-l1-1-0.dll
    -a----         2019/7/8     16:35          18696 api-ms-win-core-namedpipe-l1-1-0.dll
    -a----         2019/7/8     16:35          19720 api-ms-win-core-processenvironment-l1-1-0.dll
    -a----         2019/7/8     16:35          20744 api-ms-win-core-processthreads-l1-1-0.dll
    -a----         2019/7/8     16:35          19208 api-ms-win-core-processthreads-l1-1-1.dll
    -a----         2019/7/8     16:35          18184 api-ms-win-core-profile-l1-1-0.dll
    -a----         2019/7/8     16:35          19208 api-ms-win-core-rtlsupport-l1-1-0.dll
    -a----         2019/7/8     16:35          18696 api-ms-win-core-string-l1-1-0.dll
    -a----         2019/7/8     16:35          20744 api-ms-win-core-synch-l1-1-0.dll
    -a----         2019/7/8     16:35          19208 api-ms-win-core-synch-l1-2-0.dll
    -a----         2019/7/8     16:35          19720 api-ms-win-core-sysinfo-l1-1-0.dll
    -a----         2019/7/8     16:35          19208 api-ms-win-core-timezone-l1-1-0.dll
    -a----         2019/7/8     16:35          18696 api-ms-win-core-util-l1-1-0.dll
    -a----         2019/7/8     16:35          19720 api-ms-win-crt-conio-l1-1-0.dll
    -a----         2019/7/8     16:35          22792 api-ms-win-crt-convert-l1-1-0.dll
    -a----         2019/7/8     16:35          19208 api-ms-win-crt-environment-l1-1-0.dll
    -a----         2019/7/8     16:35          20744 api-ms-win-crt-filesystem-l1-1-0.dll
    -a----         2019/7/8     16:35          19720 api-ms-win-crt-heap-l1-1-0.dll
    -a----         2019/7/8     16:35          19208 api-ms-win-crt-locale-l1-1-0.dll
    -a----         2019/7/8     16:35          27912 api-ms-win-crt-math-l1-1-0.dll
    -a----         2019/7/8     16:35          19720 api-ms-win-crt-process-l1-1-0.dll
    -a----         2019/7/8     16:35          23304 api-ms-win-crt-runtime-l1-1-0.dll
    -a----         2019/7/8     16:35          24840 api-ms-win-crt-stdio-l1-1-0.dll
    -a----         2019/7/8     16:35          24840 api-ms-win-crt-string-l1-1-0.dll
    -a----         2019/7/8     16:35          21256 api-ms-win-crt-time-l1-1-0.dll
    -a----         2019/7/8     16:35          19208 api-ms-win-crt-utility-l1-1-0.dll
    -a----         2019/7/9     15:01         779541 base_library.Zip
    -a----         2019/7/9     15:04            306 config.json
    -a----         2019/7/8     16:56        3205632 libcrypto-1_1-x64.dll
    -a----         2019/7/8     16:56        3573880 libGLESv2.dll
    -a----         2019/7/8     16:56         681472 libssl-1_1-x64.dll
    -a----         2019/7/9     15:04        1523306 main.exe
    -a----         2019/7/9     15:04           1029 main.exe.manifest
    -a----         2019/7/9     10:07         625808 MSVCP140.dll
    -a----         2019/7/8     16:35         193024 pyexpat.pyd
    -a----         2019/7/8     16:56          51712 python3.dll
    -a----         2019/7/8     16:35        3745280 python37.dll
    -a----         2019/7/8     16:56        6016632 Qt5Core.dll
    -a----         2019/7/8     16:56         440952 Qt5DBus.dll
    -a----         2019/7/8     16:56        6443640 Qt5Gui.dll
    -a----         2019/7/8     16:56        1338488 Qt5Network.dll
    -a----         2019/7/8     16:56        4010616 Qt5Qml.dll
    -a----         2019/7/8     16:56        3814520 Qt5Quick.dll
    -a----         2019/7/8     16:56         334968 Qt5Svg.dll
    -a----         2019/7/8     16:56         156280 Qt5WebSockets.dll
    -a----         2019/7/8     16:56        5574776 Qt5Widgets.dll
    -a----         2019/7/9     15:04            209 run.log
    -a----         2019/7/8     16:35          19456 select.pyd
    -a----         2019/7/8     16:56         108544 sip.pyd
    -a----         2019/7/8     16:35        1016584 ucrtbase.dll
    -a----         2019/7/8     16:35        1065472 unicodedata.pyd
    -a----         2019/7/8     16:35          87200 VCRUNTIME140.dll
    -a----         2019/7/8     16:35          81920 _bz2.pyd
    -a----         2019/7/8     16:35         125952 _ctypes.pyd
    -a----         2019/7/8     16:35          31744 _hashlib.pyd
    -a----         2019/7/8     16:35         249856 _lzma.pyd
    -a----         2019/7/8     16:35          68608 _socket.pyd
    -a----         2019/7/8     16:35         114176 _ssl.pyd

DLL chargées lors de l'exécution dans conda env:

    Process: main.exe Pid: 864  

    Name    Path
    kernel32.dll.mui    C:\Program Files\WindowsApps\Microsoft.LanguageExperiencePackzh-CN_18362.8.25.0_neutral__8wekyb3d8bbwe\Windows\System32\zh-CN\kernel32.dll.mui
    KernelBase.dll.mui  C:\Program Files\WindowsApps\Microsoft.LanguageExperiencePackzh-CN_18362.8.25.0_neutral__8wekyb3d8bbwe\Windows\System32\zh-CN\KernelBase.dll.mui
    user32.dll.mui  C:\Program Files\WindowsApps\Microsoft.LanguageExperiencePackzh-CN_18362.8.25.0_neutral__8wekyb3d8bbwe\Windows\System32\zh-CN\user32.dll.mui
    _ctypes.pyd C:\Users\xxx\Idp\dist\main\_ctypes.pyd
    _hashlib.pyd    C:\Users\xxx\Idp\dist\main\_hashlib.pyd
    _socket.pyd C:\Users\xxx\Idp\dist\main\_socket.pyd
    _ssl.pyd    C:\Users\xxx\Idp\dist\main\_ssl.pyd
    _AES.cp37-win_AMD64.pyd C:\Users\xxx\Idp\dist\main\Crypto\Cipher\_AES.cp37-win_AMD64.pyd
    libcrypto-1_1-x64.dll   C:\Users\xxx\Idp\dist\main\libcrypto-1_1-x64.dll
    libssl-1_1-x64.dll  C:\Users\xxx\Idp\dist\main\libssl-1_1-x64.dll
    main.exe    C:\Users\xxx\Idp\dist\main\main.exe
    MSVCP140.dll    C:\Users\xxx\Idp\dist\main\MSVCP140.dll
    qgif.dll    C:\Users\xxx\Idp\dist\main\PyQt5\Qt\plugins\imageformats\qgif.dll
    qicns.dll   C:\Users\xxx\Idp\dist\main\PyQt5\Qt\plugins\imageformats\qicns.dll
    qico.dll    C:\Users\xxx\Idp\dist\main\PyQt5\Qt\plugins\imageformats\qico.dll
    qjpeg.dll   C:\Users\xxx\Idp\dist\main\PyQt5\Qt\plugins\imageformats\qjpeg.dll
    qsvg.dll    C:\Users\xxx\Idp\dist\main\PyQt5\Qt\plugins\imageformats\qsvg.dll
    qtga.dll    C:\Users\xxx\Idp\dist\main\PyQt5\Qt\plugins\imageformats\qtga.dll
    qtiff.dll   C:\Users\xxx\Idp\dist\main\PyQt5\Qt\plugins\imageformats\qtiff.dll
    qwbmp.dll   C:\Users\xxx\Idp\dist\main\PyQt5\Qt\plugins\imageformats\qwbmp.dll
    qwebp.dll   C:\Users\xxx\Idp\dist\main\PyQt5\Qt\plugins\imageformats\qwebp.dll
    qwindows.dll    C:\Users\xxx\Idp\dist\main\PyQt5\Qt\plugins\platforms\qwindows.dll
    qwindowsvistastyle.dll  C:\Users\xxx\Idp\dist\main\PyQt5\Qt\plugins\styles\qwindowsvistastyle.dll
    QtCore.pyd  C:\Users\xxx\Idp\dist\main\PyQt5\QtCore.pyd
    QtGui.pyd   C:\Users\xxx\Idp\dist\main\PyQt5\QtGui.pyd
    QtSvg.pyd   C:\Users\xxx\Idp\dist\main\PyQt5\QtSvg.pyd
    QtWidgets.pyd   C:\Users\xxx\Idp\dist\main\PyQt5\QtWidgets.pyd
    sip.pyd C:\Users\xxx\Idp\dist\main\PyQt5\sip.pyd
    python3.dll C:\Users\xxx\Idp\dist\main\python3.dll
    python37.dll    C:\Users\xxx\Idp\dist\main\python37.dll
    Qt5Core.dll C:\Users\xxx\Idp\dist\main\Qt5Core.dll
    Qt5Gui.dll  C:\Users\xxx\Idp\dist\main\Qt5Gui.dll
    Qt5Svg.dll  C:\Users\xxx\Idp\dist\main\Qt5Svg.dll
    Qt5Widgets.dll  C:\Users\xxx\Idp\dist\main\Qt5Widgets.dll
    select.pyd  C:\Users\xxx\Idp\dist\main\select.pyd
    VCRUNTIME140.dll    C:\Users\xxx\Idp\dist\main\VCRUNTIME140.dll
    SortDefault.nls C:\Windows\Globalization\Sorting\SortDefault.nls
    ~FontCache-FontFace.dat C:\Windows\ServiceProfiles\LocalService\AppData\Local\FontCache\~FontCache-FontFace.dat
    advapi32.dll    C:\Windows\System32\advapi32.dll
    bcrypt.dll  C:\Windows\System32\bcrypt.dll
    bcryptprimitives.dll    C:\Windows\System32\bcryptprimitives.dll
    C_1252.NLS  C:\Windows\System32\C_1252.NLS
    cfgmgr32.dll    C:\Windows\System32\cfgmgr32.dll
    clbcatq.dll C:\Windows\System32\clbcatq.dll
    combase.dll C:\Windows\System32\combase.dll
    CoreMessaging.dll   C:\Windows\System32\CoreMessaging.dll
    CoreUIComponents.dll    C:\Windows\System32\CoreUIComponents.dll
    crypt32.dll C:\Windows\System32\crypt32.dll
    cryptbase.dll   C:\Windows\System32\cryptbase.dll
    cryptsp.dll C:\Windows\System32\cryptsp.dll
    d3d11.dll   C:\Windows\System32\d3d11.dll
    d3d9.dll    C:\Windows\System32\d3d9.dll
    DataExchange.dll    C:\Windows\System32\DataExchange.dll
    dcomp.dll   C:\Windows\System32\dcomp.dll
    igd9dxva64.dll  C:\Windows\System32\DriverStore\FileRepository\iigd_dch_base.inf_AMD64_b95c9a044993331b\igd9dxva64.dll
    dwmapi.dll  C:\Windows\System32\dwmapi.dll
    DWrite.dll  C:\Windows\System32\DWrite.dll
    DXCore.dll  C:\Windows\System32\DXCore.dll
    dxgi.dll    C:\Windows\System32\dxgi.dll
    gdi32.dll   C:\Windows\System32\gdi32.dll
    gdi32full.dll   C:\Windows\System32\gdi32full.dll
    iertutil.dll    C:\Windows\System32\iertutil.dll
    imm32.dll   C:\Windows\System32\imm32.dll
    kernel.appcore.dll  C:\Windows\System32\kernel.appcore.dll
    kernel32.dll    C:\Windows\System32\kernel32.dll
    KernelBase.dll  C:\Windows\System32\KernelBase.dll
    locale.nls  C:\Windows\System32\locale.nls
    mpr.dll C:\Windows\System32\mpr.dll
    msasn1.dll  C:\Windows\System32\msasn1.dll
    msctf.dll   C:\Windows\System32\msctf.dll
    msvcp_win.dll   C:\Windows\System32\msvcp_win.dll
    msvcrt.dll  C:\Windows\System32\msvcrt.dll
    netapi32.dll    C:\Windows\System32\netapi32.dll
    netutils.dll    C:\Windows\System32\netutils.dll
    ntdll.dll   C:\Windows\System32\ntdll.dll
    ntmarta.dll C:\Windows\System32\ntmarta.dll
    ole32.dll   C:\Windows\System32\ole32.dll
    oleaut32.dll    C:\Windows\System32\oleaut32.dll
    powrprof.dll    C:\Windows\System32\powrprof.dll
    profapi.dll C:\Windows\System32\profapi.dll
    rmclient.dll    C:\Windows\System32\rmclient.dll
    rpcrt4.dll  C:\Windows\System32\rpcrt4.dll
    rsaenh.dll  C:\Windows\System32\rsaenh.dll
    sechost.dll C:\Windows\System32\sechost.dll
    SHCore.dll  C:\Windows\System32\SHCore.dll
    Shell32.dll C:\Windows\System32\Shell32.dll
    shlwapi.dll C:\Windows\System32\shlwapi.dll
    srvcli.dll  C:\Windows\System32\srvcli.dll
    TextInputFramework.dll  C:\Windows\System32\TextInputFramework.dll
    twinapi.appcore.dll C:\Windows\System32\twinapi.appcore.dll
    ucrtbase.dll    C:\Windows\System32\ucrtbase.dll
    umpdc.dll   C:\Windows\System32\umpdc.dll
    user32.dll  C:\Windows\System32\user32.dll
    userenv.dll C:\Windows\System32\userenv.dll
    uxtheme.dll C:\Windows\System32\uxtheme.dll
    version.dll C:\Windows\System32\version.dll
    win32u.dll  C:\Windows\System32\win32u.dll
    windows.storage.dll C:\Windows\System32\windows.storage.dll
    winmm.dll   C:\Windows\System32\winmm.dll
    winmmbase.dll   C:\Windows\System32\winmmbase.dll
    WinTypes.dll    C:\Windows\System32\WinTypes.dll
    ws2_32.dll  C:\Windows\System32\ws2_32.dll
    wtsapi32.dll    C:\Windows\System32\wtsapi32.dll    
5
Sofair R.

J'ai résolu cela moi-même en commentant tout dans site-packages\PyQt5\__init__.py et en ajoutant ce code à partir d'une ancienne version de QT __init__.py:

import os as _os

_path = _os.path.dirname(__file__) + '\\Qt\\bin;' + _os.environ['PATH']
_os.environ['PATH'] = _path
0
cryer enable

Je commente tout le contenu du fichier site-packages\PyQt5\__init__.py et réinstaller. Ça marche.

J'utilise python3.5 avec PyInstaller=3.5 et PyQt5=5.13.0. L'exe emballé fonctionne sur mon ordinateur, mais ne fonctionne pas sur les autres. Le message d'erreur est:

 File "anaconda3\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 627, in exec_module
  File "site-packages\PyQt5\__init__.py", line 41, in <module>
  File "site-packages\PyQt5\__init__.py", line 33, in find_qt
ImportError: unable to find Qt5Core.dll on PATH

Donc je vois site-packages\PyQt5\__init__.py (5.13.0) est:

def find_qt():
    import os

    path = os.environ['PATH']

    dll_dir = os.path.dirname(__file__) + '\\Qt\\bin'
    if os.path.isfile(dll_dir + '\\Qt5Core.dll'):
        path = dll_dir + ';' + path
        os.environ['PATH'] = path
    else:
        for dll_dir in path.split(';'):
            if os.path.isfile(dll_dir + '\\Qt5Core.dll'):
                break
        else:
            raise ImportError("unable to find Qt5Core.dll on PATH")

    try:
        os.add_dll_directory(dll_dir)
    except AttributeError:
        pass


find_qt()
del find_qt

Je pense que PyQt5 ne peut pas trouver le CHEMIN dans l'autre ordinateur bien que Qt5Core.dll existe déjà directement dans le projet. J'ai donc commenté le fichier et maintenant ça fonctionne.

0
杨明祺