これは、CX_FREEZEを使用しているため、pythonインストールされていないunident pythonプログラムを作成しようとしています。しかし、次のエラーが発生します。 "mkl_intel_thread.dllを読み込めません"
pythonインストール(MINICONDA3)を持っているPCでは、CX_FREEZEを使用して実行可能ファイルを構築し、実行可能ファイルを実行したときにMKL_INTEL_THREAD.DLLを読み込めます。 My pythonフォルダ、ライブラリ\ binに移動することでこれを修正し、実行可能ファイルを配置する場所にMKL_INTEL_THREAD.DLLファイルをコピーしました。問題は、フォルダ全体を別のPCに移動するとき(pythonインストールされていなくても)、MKL_INTEL_THREAD.DLLがフォルダ内にある場合でも、このエラーが再表示されます。
配布したいファイル(plot.py):
_import matplotlib.pyplot as plt
a = [0, 1, 2]
b = [0, 2, 0]
plt.fill(a, b, 'b')
plt.show()
_
cX_FREEZEセットアップファイル(Setup.py):
_import cx_Freeze
import sys
import matplotlib
import numpy
import os
os.environ['TCL_LIBRARY'] = "C:\\Miniconda3\\tcl\\tcl8.6"
os.environ['TK_LIBRARY'] = "C:\\Miniconda3\\tcl\\tk8.6"
executables = [cx_Freeze.Executable("plot.py")]
build_exe_options = {"includes":['numpy.core._methods',
'numpy.lib.format', 'matplotlib.backends.backend_tkagg']}
cx_Freeze.setup(
name = "script",
options = {"build_exe": build_exe_options},
version = "0.0",
description = "A basic example",
executables = executables)
_
同様の問題がCX_FREEZE 6.1または6.2に影響します。実行可能ファイルは、エラーメッセージまたはWHELのいずれかを起動しません。
Intel MKLエラー:指定されたモジュールが見つかりませんでした。 mkl_intel_thread.dll。
[。] Intel MKL致命的なエラー:mkl_intel_thread.dllをロードできません。
構成:
これは、Python 3.6.8以前のバージョンのNumpyなどでも観察されます。 1.18.4 + MKLまたは1.19.0 + MKL。
BUILDディレクトリのサブディレクトリmkl_rt.dll
では、cx_freezeに3 dll python38.dll
、vcruntime140.dll
、lib\numpy\core
が含まれていることを確認しましたが、元のインストールにはDLLサブディレクトリsite-packages\numpy\core
(すべてのDLLはsite-packages\numpy\DLLs
にあります)に含まれていません。 。 CX_FREEZEを使用してアプリケーションを構築した後、ビルドディレクトリのサブディレクトリmkl_rt.dll
からlib\numpy\core
を手動で削除した場合、この問題は消え、アプリケーションが機能します。
このソリューションは、setup.py
スクリプトの最後に次のコードを追加して実装できます。
numpy_core_dir = os.path.join(dist_dir, 'lib', 'numpy', 'core')
for file_name in os.listdir(numpy_core_dir):
if file_name.lower().endswith('.dll'):
file_path = os.path.join(numpy_core_dir, file_name)
os.remove(file_path)
dist_dir
は、cx_freezeによって生成されたビルドディレクトリ(build_exe
オプションに渡されます)です。
これら4つのファイルを_cx_freeze
_生成されたビルドフォルダにコピーするだけです。
_mkl_core.dll
mkl_def.dll
mkl_intel_thread.dll
mkl_mc3.dll
_