首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Conda中导入PySpin :找不到mkl_intel_thread.dll

在Conda中导入PySpin :找不到mkl_intel_thread.dll
EN

Stack Overflow用户
提问于 2019-04-21 22:57:28
回答 3查看 2.7K关注 0票数 6

我在Anaconda中使用PySpin api作为点灰相机。api是一个C++库的Python包装器,名为Spinnaker (https://www.ptgrey.com/spinnaker-sdk)。

当我导入Spyder (import PySpin)时,一切正常(注意,我在安装所有东西的环境中从Conda提示符启动Spyder )。不幸的是,从conda提示符而不是Spyder (python foo.py,其中foo.py包含import PySpin)运行导入会产生以下结果:

英特尔MKL致命错误:无法加载mkl_intel_thread.dll。 序数242不能位于动态链接库C:\Anaconda3\Library\bin\mkl_intel_thread.dll中。

注意:我在anaconda提示符下从轮子上安装了Spinnaker (PySpin):

代码语言:javascript
复制
pip install spinnaker_python-1.20.0.15-cp36-cp36m-win_amd64.whl

它说,在C:\Windows\System32 32中找到以下文件,并重命名或删除它们:

代码语言:javascript
复制
mkl_core.dll
mkl_def.dll
mkl_intel_thread.dll

这些文件不在我的机器上,所以在我的情况下,这似乎不是问题所在。

例如,这里他们提到了这个解决方案:

thread.dll

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-04-23 14:00:23

当我第一次导入numpy和导入PySpin时,它对我是有效的。

代码语言:javascript
复制
import numpy as np # must be imported first
import PySpin

system = PySpin.System.GetInstance()
version = system.GetLibraryVersion()
print('Library version: %d.%d.%d.%d' % (version.major, version.minor, version.type, version.build))
# Library version: 1.20.0.15

我在Windows 10下使用Python3.5和Miniconda。

票数 4
EN

Stack Overflow用户

发布于 2019-05-05 23:37:55

这个问题是由libiomp5md.dll轮毂中包含的文件spinnaker_python与Anaconda发行版不兼容引起的。简单地删除或重命名该文件将导致默认的Anaconda版本的文件将被加载。

从Anaconda提示符中执行以下命令以解决问题。如果为所有用户安装了Anaconda,则需要Anaconda提示符的Administrator版本。

代码语言:javascript
复制
move %CONDA_PREFIX%\Lib\site-packages\PySpin\libiomp5md.dll %CONDA_PREFIX%\Lib\site-packages\PySpin\libiomp5md.bak
票数 3
EN

Stack Overflow用户

发布于 2019-04-22 18:35:18

灰色点推荐的解决方案

从点格雷的开发人员那里,我给他发了邮件,他们知道这个问题。他们建议删除conda安装的numpy,然后用pip重新安装它。这就是:

代码语言:javascript
复制
conda uninstall numpy
pip install numpy

注意,虽然这样做有效,但我不能保证它能在包含其他依赖项的复杂项目中很好地扩展。

更新:更新工作了一天左右,但当我添加其他依赖项/更新(特别是OpenCV)时,它就停止工作了。然而,也许其他人在这个解决方案上会有更好的运气,所以我会把它留在这里。

第二解

如果您遇到了其他解决方案的问题,也许可以尝试一下它对我是有用的:从从conda提示符启动的ipython运行代码,然后从conda再次运行:

代码语言:javascript
复制
ipythyon
%run foo.py  #script containing import PySpin
exit()

它在那里成功了,这并不奇怪(基本上这就是Spyder所做的)。奇怪的是,回到conda提示符中,我再次尝试运行程序:

代码语言:javascript
复制
python foo.py

这次起作用了。所以,在我使用ipython之前,它是不起作用的,现在它已经开始工作了。

坦率地说,我不知道为什么这样做解决了问题,但它确实解决了问题。\_(ツ)_/

我把这些解决方案放在这里,但是坦率地说,我会尝试在PySpin之前导入numpy,就像接受的答案一样。只是比较容易,也不那么有破坏性。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55787461

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档