Mac OS 10.14.5下openslide-python导入错误求助:无法定位OpenSlide dylib
这个问题其实是新手用openslide-python时很容易踩的坑——你只装了openslide-python(Python绑定库),但它依赖的底层OpenSlide C核心库还没安装,所以ctypes才会找不到libopenslide.0.dylib这个动态文件。我给你分步解决:
1. 先安装底层的OpenSlide核心库
Mac下最便捷的方式是用Homebrew:
打开终端执行:
brew install openslide如果你还没装Homebrew,Mojave(10.14.5)完全支持安装,不过看你用了Anaconda,大概率已经配置过Homebrew了。
要是不想用Homebrew,也可以去OpenSlide官方下载对应Mojave的dmg安装包,安装后库文件会在
/Library/Frameworks/OpenSlide.framework/Versions/Current/lib路径下。
2. 让虚拟环境能识别到这个动态库
Virtualenv默认会隔离系统环境,所以可能读不到系统安装的库路径,你可以选下面任意一种方式解决:
方式一:临时设置环境变量
每次激活虚拟环境后,先执行这条命令:
export DYLD_LIBRARY_PATH=/usr/local/lib:$DYLD_LIBRARY_PATH
如果是手动装的dmg包,把路径换成/Library/Frameworks/OpenSlide.framework/Versions/Current/lib即可。
方式二:永久配置(推荐)
把环境变量写到虚拟环境的激活脚本里,每次激活自动生效:
- 打开你的虚拟环境目录下的
bin/activate文件 - 在文件末尾添加:
手动安装的话替换成对应的库路径就行。export DYLD_LIBRARY_PATH=/usr/local/lib:$DYLD_LIBRARY_PATH
方式三:创建符号链接
直接把动态库链接到虚拟环境的site-packages目录:
ln -s /usr/local/lib/libopenslide.0.dylib /path/to/your/virtualenv/lib/python3.6/site-packages/
记得把/path/to/your/virtualenv替换成你自己的虚拟环境实际路径。
3. 验证解决效果
重新激活虚拟环境,打开Python Shell执行import openslide,应该就不会再报错了。
本质上openslide-python只是个“Python接口层”,必须依赖底层的OpenSlide C库才能运行,这是很多初次使用的开发者容易忽略的点~
内容的提问来源于stack exchange,提问作者clems

