Python >> Tutoriel Python >  >> Python Tag >> exec()

Impossible de charger mkl_intel_thread.dll sur l'exécutable python

MODIFIER :

  1. Essayez de copier tous les fichiers commençant par mkl vous trouvez sous Library\bin ou numpy\core dans le dossier build, ainsi que libiomp5md.dll , voir Python Pyinstaller 3.1 Intel MKL FATAL ERROR :Impossible de charger mkl_intel_thread.dll et l'application graphique convertie cx_freeze (tkinter) se bloque après avoir appuyé sur le bouton plot.

    Une fois que vous avez trouvé quel(s) fichier(s) doit(vent) être copié(s) manuellement, vous pouvez laisser cx_Freeze inclure le(s) fichier(s) nécessaire(s) en utilisant le include_files liste des build_exe options (voir extrait de code ci-dessous). Si nécessaire, vous pouvez utiliser un tuple (source, destination) comme élément dans le include_files liste à laisser cx_Freeze copier un fichier de source à un destination spécifique dans le répertoire de construction, voir le cx_Freeze Documentation.

  2. Je vois d'autres problèmes potentiels dans le script de configuration que vous avez publié dans votre question :

    • inclure le numpy entier paquets utilisant le packages liste des build_exe options, c'est plus facile et peut-être plus sûr
    • il est plus sûr de trouver dynamiquement l'emplacement des DLL TCL/TK
    • pour cx_Freeze 5.1.1, les DLL TCL/TK doivent être incluses dans un lib sous-répertoire du répertoire de construction

En résumé, essayez d'utiliser

PYTHON_INSTALL_DIR = os.path.dirname(os.path.dirname(os.__file__))
os.environ['TCL_LIBRARY'] = os.path.join(PYTHON_INSTALL_DIR, 'tcl', 'tcl8.6')
os.environ['TK_LIBRARY'] = os.path.join(PYTHON_INSTALL_DIR, 'tcl', 'tk8.6')

build_exe_options = {'packages': ['numpy'],
                     'includes': ['matplotlib.backends.backend_tkagg'],
                     'include_files': [(os.path.join(PYTHON_INSTALL_DIR, 'DLLs', 'tcl86t.dll'),
                                        os.path.join('lib', 'tcl86t.dll')),
                                       (os.path.join(PYTHON_INSTALL_DIR, 'DLLs', 'tk86t.dll'),
                                        os.path.join('lib', 'tk86t.dll'))
                                       # add here further files which need to be included as described in 1.
                                      ]}

dans votre script d'installation.