【问题标题】:Openslide-python import errorOpenslide-python 导入错误
【发布时间】:2017-05-15 19:09:26
【问题描述】:

从 python 终端内部运行 import openslide 时收到以下错误

<code>Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\dev_res\python\python2_713\lib\site-packages\openslide\__init__.py", line 29, in <module>
    from openslide import lowlevel
  File "C:\dev_res\python\python2_713\lib\site-packages\openslide\lowlevel.py", line 41, in <module>
    _lib = cdll.LoadLibrary('libopenslide-0.dll')
  File "C:\dev_res\python\python2_713\lib\ctypes\__init__.py", line 440, in LoadLibrary
    return self._dlltype(name)
  File "C:\dev_res\python\python2_713\lib\ctypes\__init__.py", line 362, in __init__
    self._handle = _dlopen(self._name, mode)
WindowsError: [Error 127] The specified procedure could not be found
</code>

我的操作系统是 Windows 64 位,我使用的是 Python 2.7.13(64 位)。我安装了 OpenSlide 二进制文件(2016-7-17 64 位版本)并将相应的 bin 文件夹添加到我的系统路径中。然后我使用 pip 安装了 python-openslide。请注意,此错误与未将 windows 二进制文件添加到系统路径时发生的 WindowsError: [Error 126] The specified module could not be found (see question) 不同。

使用 Python 3.5.3 时也会出现同样的问题。有趣的是,除了 32 位版本(python 2.7 32 位和 32 位 openslide 二进制文件)外,我尝试了相同的工作流程,但没有收到此错误。不过,我更喜欢使用 64 位版本。

任何帮助将不胜感激。谢谢!

【问题讨论】:

    标签: python python-2.7 python-import openslide


    【解决方案1】:

    从 github 上的 openslide-python 作者获得帮助后,我得到了一个可行的解决方案。

    问题是您的搜索路径中有多个 dll 与 openslide 所需的名称相同。以我为例,zlib1.dll 不仅位于 openslide\bin 目录中,还位于 MATLAB 目录、github 目录和 Intel wifi 目录中。当 python 要求操作系统查找所需的 dll 时,操作系统将返回它遇到的第一个名称匹配实例,它可能不是 openslide\bin 实例。

    一个快速的解决方法是从 openslide\bin 目录中启动 python。换句话说,启动命令提示符,导航到 openslide\bin 目录,键入“python”,现在键入 import openslide 应该可以正常工作。这是有效的,因为首先搜索启动 python 的目录以查找匹配的 dll。一个更严格的解决方案是,将以下内容添加到 lowlevel.py 文件的开头(可以在 Lib\site 中找到) -packages\openslide 你的 python 安装目录)

    os.environ['PATH'] = "path-to-openslide-bin" + ";" + os.environ['PATH']

    注意:将 path-to-openslide-bin 替换为正确的路径

    每次你输入import openslidelowlevel.py 都会运行,它会尝试加载适当的dll。上面的代码行将 dll 的位置添加到环境路径的开头,以确保该文件夹位于搜索层次结构的顶部,因此将在其他名称匹配实例之前找到。

    可以在githubhere查看对应的issue/user报告

    【讨论】:

    • 我想我漏掉了,你说的“openslide\bin”文件夹是什么?
    猜你喜欢
    • 1970-01-01
    • 2016-05-07
    • 1970-01-01
    • 1970-01-01
    • 2016-06-20
    • 2018-11-03
    • 2017-06-29
    相关资源
    最近更新 更多