使用matplotlib时获取错误消息:
错误#15:初始化libiomp5.dylib,但发现libiomp5.dylib 已经初始化 OMP:提示:这意味着OpenMP运行时的多个副本已链接到程序中。这很危险,因为它可以 降低性能或导致错误结果。最好的事情 是为了确保只有一个OpenMP运行时链接到 过程,例如通过避免在任何情况下静态链接OpenMP运行时 图书馆。作为不安全,不受支持,未记录的解决方法,您可以 设置环境变量KMP_DUPLICATE_LIB_OK = TRUE以允许 程序继续执行,但可能会导致崩溃或无提示 产生不正确的结果。有关更多信息,请参见 http://www.intel.com/software/products/support/。
答案 0 :(得分:28)
这似乎是MacOS问题。请执行以下操作以解决该问题:
import os
os.environ['KMP_DUPLICATE_LIB_OK']='True'
找到答案
答案 1 :(得分:6)
我在macOS上也遇到了同样的问题,并发现以下原因:
问题:
我有一个conda环境,其中安装了Numpy,SciPy和TensorFlow。
Conda正在使用英特尔®MKL优化,请参阅docs:
Anaconda已将一些最受欢迎的数字/科学Python库的MKL驱动的二进制版本打包到MKL Optimizations中,以提高性能。
英特尔MKL功能(例如FFT,LAPACK,BLAS)采用OpenMP技术。
但是在macOS上,您不需要MKL,因为Accelerate Framework附带了自己的优化算法,并且已经在使用OpenMP。这就是错误消息的原因: private void btnDeal_Click(object sender, EventArgs e)
{
delear.Deal(player, 2);
//gets the file paths of the pictures used to load images into picture boxes
foreach (KeyValuePair<string, int> entry in player.GetCardRankSuit())
{
CreateControlsPlayer(entry.Key, entry.Value, pnlPlayer);
}
}
解决方法:
您应该安装所有没有MKL支持的软件包:
OMP Error #15: ...
然后使用
conda install nomkl
之后
conda install numpy scipy pandas tensorflow
有关更多信息,请参见conda MKL Optimizations。
答案 2 :(得分:5)
这是一个更好的解决方案(如果适用)。否则,gcamargo的解决方案很可能会起作用。但是,它带有警告“可能会导致崩溃或以静默方式产生不正确的结果”
我在使用numpy,keras和matplotlib的python程序在Mac上遇到了相同的错误。我用
解决了 conda install nomkl
答案 3 :(得分:2)
使用conda将tensoflow更新为1.13时,在OSX中出现相同的问题。
显然,对于OSX张量流,Anaconda中新的Intel-MKL优化已被破坏。
答案 4 :(得分:1)
因此,对于那些在lightgbm上遇到同样问题的人,我在the documentation中发现可以
pip uninstall lightgbm
pip install lightgbm
ln -sf `ls -d "$(brew --cellar libomp)"/*/lib`/* $CONDA_PREFIX/lib
这三件事对我有用。
答案 5 :(得分:1)
在安装TensorFlow的conda环境中,我遇到了同样的问题。
pip uninstall tensorflow
pip install tensorflow
问题消失了。
答案 6 :(得分:1)
尝试更改matplotlib
的后端。
例如,在我的情况下,Tkagg
后端会导致此问题。我将其更改为Qt5Agg
matplotlib.use('Qt5Agg')
它有帮助。
答案 7 :(得分:1)
检查您的环境(anaconda)中的mkl软件包是否有更新。
我只需更新mkl就可以解决我的情况。
conda install -c intel mkl
(macOS Catalina 10.15.5)
答案 8 :(得分:0)
conda install --revision 0
不能为我解决UnsatisfiableError: The following specifications...
。因此,我在Anaconda-Navigator环境中手动安装了nomkl
并删除了mkl
和mil-service
,它对我来说非常有用!
答案 9 :(得分:0)
面对相同的错误 #15,尽管有帮助,但迄今为止(2021 年 2 月 5 日)没有一个解决方案完全有效。但是,我确实设法解决了它,同时避免了:使用 dylib
库抖动、从源代码安装或设置环境变量 KMP_DUPLICATE_LIB_OK=TRUE
及其作为“不安全、不受支持、未记录的解决方法”的缺点及其潜在的“崩溃或默默地产生不正确的结果”。
问题在于,尽管加载了 nomkl
包,但 conda 并未获取 tensorflow (v2.0.0) 的非 mkl 构建。最终使该解决方案起作用的是:
defaults
通道加载包(即从具有非 mkl 版本的 tensorflow 的通道。截至 2021 年 2 月 5 日,conda-forge 没有 2.0 或
更大)。tensorflow>=2.*=eigen_py37h153756e_0
。如果没有这个,conda 会继续加载 mkl_...
版本的包,尽管 nomkl
包也被加载。我使用以下 environment.yml 文件(根据 conda documentation for managing environments)创建了一个 conda 环境:
name: tf_nomkl
channels:
- conda-forge
- defaults
dependencies:
- nomkl
- python>=3.7
- numpy
- scipy
- pandas
- jupyter
- jupyterlab
- nb_conda
- nb_conda_kernels
- ipykernel
- pathlib
- matplotlib
- seaborn
- tensorflow>=2.*=eigen_py37h153756e_0
您可以尝试在没有 environment.yml 文件的情况下执行相同操作,但如果可以,最好一次性加载环境中所需的所有包。 此解决方案适用于 MacOS Big Sur v11.1。