openslide-python在windows环境下和linux环境下安装_pyvip和 openslide_果冻_Jump的博客-程序员资料

技术标签: python  机器学习  

1,Liunx

Linux环境相对比较简单,两行命令搞定:

apt install python-openslide    #针对ubuntu,其他系统没测试过
pip install Openslide-python   #pip 安装

2,Windows

windows稍微复杂点,而且会出现不同的状况

  1. 在官网下载windows二进制包
    https://openslide.org/download/
    在这里插入图片描述
  2. 解压缩下载的压缩包,并把bin文件夹、lib文件夹放入到环境变量里
    在这里插入图片描述
  3. 执行命令进行安装
pip install Openslide-python   #pip 安装
  1. 测试一下import openslide是否可以运行
import openslide

有些人会正常运行,那就跳过不用看下面的了。

有些人会失败,报错信息如下:

Python 3.6.10 |Anaconda, Inc.| (default, May  7 2020, 19:46:08) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import openslide
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "d:\ProgramData\Anaconda3\envs\path\lib\site-packages\openslide\__init__.py", line 29, in <module>
    from openslide import lowlevel
  File "d:\ProgramData\Anaconda3\envs\path\lib\site-packages\openslide\lowlevel.py", line 44, in <module>
    _lib = cdll.LoadLibrary('libopenslide-0.dll')
  File "d:\ProgramData\Anaconda3\envs\path\lib\ctypes\__init__.py", line 426, in LoadLibrary
    return self._dlltype(name)
  File "d:\ProgramData\Anaconda3\envs\path\lib\ctypes\__init__.py", line 348, in __init__
    self._handle = _dlopen(self._name, mode)
OSError: [WinError 126] 找不到指定的模块。

这个错误是因为python搜索的bin库里没有找到相应的dll,所以需要做如下操作:

  • 找到openslide文件夹下面的lowlevel.py文件
d:\ProgramData\Anaconda3\envs\path\lib\site-packages\openslide\lowlevel.py
  • 在lowlevel.py下面增加如下代码:
import os

# openslide-bin-path为 openslide 的bin文件夹绝对路径。
os.environ['PATH'] = "openslide-bin-path" + ";" + os.environ['PATH']   

# 例如: 
os.environ['PATH'] = "D:\\openslide-win64-20171122\\bin" + ";" + os.environ['PATH']  
  1. 再次运行import openslide进行测试,成功
    在这里插入图片描述
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/lichao0627/article/details/106468228

智能推荐

你应该知道的前端面试题(万字总结)_cyg_l02的博客-程序员资料

前言自己整理出来的一些前端工程师必备的面试题,面试中出场率很高,相信小伙伴在找工作或者跳槽中能够顺利找到自己想要的工作。Html1、DOCTYPE有什么作用?标准模式与混杂模式如何区分?它们有何意义?DOCTYPE的作用是告诉浏览器使用哪种版本的HTML规范来渲染文档。当DOCTYPE不存在或者形式不正确时会导致HTML文档以混杂模式解析文档。标准模式以浏览器支持的最高标准运行,混杂模...

石家庄铁道大学 C程序设计代码第8天_一生长共月亏盈的博客-程序员资料

链表自学,b站视频 自己找。建议完整看一个。对于理解很有帮助的。第八天代码 也存在可以完善的地方。祝大家学习愉快!#include&lt;stdio.h&gt;#include&lt;string.h&gt;struct jd{int a;//数据域struct jd next;//指针域}p;struct jd cj(),x1(struct jd k),x3(struct...

< IOS > X-code 5.1 x86 - 64 编译问题_weixin_30892037的博客-程序员资料

关于xcode 5.1 x86 - 64 编译问题坐等了N久,终于IOS 7.1 发布了,作为一个果粉,忍不住第一时间升级了。结果用设备测试的时候,出问题了,一直检测不到设备,哈哈,纠结了半天,才想到原来是7.1 问题了。原来Xcode版本不得低于设备版本,IOS7.1 对应的是 Xcode 5.1,果断的升级Xcode。Xcode5.1 完成之后,打开以前的项...

GDB调试的一系列博客_weixin_34416754的博客-程序员资料

2019独角兽企业重金招聘Python工程师标准&gt;&gt;&gt; ...

HLSL Intrinsic Functions_hlsl bit_警醒与鞭策的博客-程序员资料

//Cg 3.1 Toolkit Documentation 补充bitCount- return the number of bits set in a bitfield.bitfieldExtract- return an extracted range of bits from a bitfield.bitfieldInsert- returns an extrac...

C++封装互斥锁和基于RAII机制能自动解锁的互斥锁_奇妙之二进制的博客-程序员资料

#include "base/mutex.h"Mutex::Mutex() { pthread_mutex_init(&amp;mutex_, NULL); }Mutex::~Mutex() { pthread_mutex_destroy(&amp;mutex_); }void Mutex::Lock() { pthread_mutex_lock(&amp;mutex_); }void Mutex::Unlock() { pthread_mutex_unlock(&amp;mutex_);

随便推点

传感器与检测技术_葱花   的博客-程序员资料

4.2 试分析变气隙厚度电感式传感器的工作原理。当衔铁移动时气隙厚度发生变化,引起磁路中磁阻变化,从而导致线圈的电感值变化。通过测量电感量的变化就能确定衔铁位移量的大小和方向。4.4 差动式比单线圈式结构的变磁阻电感式传感器在灵敏度和线性度方面有什么优势?为什么?1) 差动式比单线圈式的灵敏度提高一倍。2) 差动式的非线性项近似等于单线圈非线性项乘以因子。( 主要考虑第-个非线性项,对于单线圈而言,的第 一个非线性项为;对于差动式结构,的第一个非线性项为),但该因子,所以差动式结构的线性

ioctl系统调用过程(深入Linux(ARM)内核源码)_ioctl源码_ora___的博客-程序员资料

1. 系统调用过程简述图1-1 系统调用过程图探究系统调用过程,以ioctl为例,通俗来说,其实就是探究操作系统实现应用程序的ioctl对应上特定驱动程序的ioctl的过程。由于应用程序的ioctl处于用户空间,驱动程序的ioctl处于内核空间,所以这两者之间不属于简单的函数调用关系;在者,考虑到内核空间操作的安全性,系统调用过程大量的安全性处理,进而使得系统调用看起来十分复杂,但是了解...

WinSCP怎么连接linux服务器;_winscp 主机名 端口号_SEVENY_的博客-程序员资料

我们打开软件进入到主界面我们在界面中可以看到需要输入主机名、端口号、用户名、密码等信息,输入完成后我们点击登录。

Node 介绍及安装_来杯卡布奇洛的博客-程序员资料

一、Node开发概述1. 为什么学习服务器端开发基础能够和后端程序员更加紧密的配合网站业务逻辑前置,学习前端技术需要后端技术支撑(Ajax)扩宽知识视野,能够站在更高的角度审视整个项目2. 服务器端开发要做的事实现网站的业务逻辑数据的增删改查3. 为什么选择NodeJavaScript语言本身是完善的函数式语言,在前端开发时,开发人员往往写得比较随意,让人感觉JavaScript就是个“玩具语言”。但是,在Node环境下,通过模块化的JavaScript代码,加上函数式编程,并且无

出现Field 'ssl_cipher' doesn't have a default value错误怎么解决???__我走路带风的博客-程序员资料

1、选择数据表        语句如下:use mysql;        2、在mysql的user表中增加连接用户帐号:        这里不要直接使用INSERT语句添加user记录,使用INSERT可能出现:        ERROR 1364 (HY000): Field 'ssl_cipher' doesn't have a default value错误。不过早期的M...

推荐文章

热门文章

相关标签