cnocr 报错RuntimeError: Cannot find the MXNet library.
安装后,引用之前博文中的测试代码,运行,
报错详细代码为:
RuntimeError: Cannot find the MXNet library.
List of candidates:
D:\Anaconda\lib\site-packages\mxnet\libmxnet.dll
D:\Anaconda\lib\site-packages\mxnet…/…/lib/libmxnet.dll
D:\Anaconda\lib\site-packages\mxnet…/…/build/libmxnet.dll
D:\Anaconda\lib\site-packages\mxnet…/…/build\libmxnet.dll
D:\Anaconda\lib\site-packages\mxnet…/…/build\Release\libmxnet.dll
D:\Anaconda\lib\site-packages\mxnet…/…/windows\Release\libmxnet.dll
一、
根据这篇博文:https://blog.csdn.net/qq_31949641/article/details/121546456
尝试:pip install mxnet==1.7.0,发现同样的问题。
二、
发现cnocr在pypi上有更新的版本,有说使用Pytorch替代了原本的Mxnet并且在任务清单打钩,更新一个版本试试:
cnocr from Pypi:https://pypi.org/project/cnocr/2.2.3/
pip install cnocr==2.2.3
安装过程中出现:
ERROR: Could not find a version that satisfies the requirement torchvision>=0.9.0 (from cnocr) (from versions: 0.1.6, 0.1.7, 0.1.8, 0.1.9, 0.2.0, 0.2.1, 0.2.2, 0.2.2.post2, 0.2.2.post3)
ERROR: No matching distribution found for torchvision>=0.9.0
报错仍然没有变化。
三、
之前有知乎回答说直接将缺失的东西放到对应的地址,找了半天没找到libmxnet.dll的直接下载地址,
四、
在pypi中搜索mxnet,发现tsinghua的源没有1.9.0的版本,修改下载源后下载pip config set global.index-url https://pypi.org/simple/
因为使用的是笔记本电脑,显卡是:Intel® Iris® Xe Graphics,所以不下载cuda版本。
仍然没有1.9.0的版本。官网中1.8.0开始就没有windows版本的可下载链接了。
五、
接下来,在Pypi直接下载mxnet的wheel安装包:
mxnet from Pypi: https://pypi.org/project/mxnet/1.9.1/#files
发现提供下载的wheel名字中均manylinux,并且标记都是linux内核,剩下的一个是macos,担心无法使用wheel安装。
wheel from Pypi: https://files.pythonhosted.org/packages/27/83/b307ad1f6e1ff60f8e418cb87f53646192681b417aadc1f40a345ba64637/mxnet-1.9.1-py3-none-manylinux2014_x86_64.whl
确实无法支持,报错:ERROR: mxnet-1.9.1-py3-none-manylinux2014_x86_64.whl is not a supported wheel on this platform.
六、
尝试直接从linux的whl中把缺失的libmxnet.dll找出来,找了一圈没有。
七、
根据之前博主中的思路,下载1.2.0的版本的whl,解压找到了:libmxnet.dll,试一下放到对应的.\site-packages\mxnet\位置能否成功运行。
报错:OSError: [WinError 193] %1 不是有效的 Win32 应用程序。包的名字是:mxnet-1.2.0-py2.py3-none-win_amd64,64位的windows为什么会出现这个报错?
八、
直接pip安装一个1.2.0版本试一试,(似乎之前那位博主尝试过了),
果然,报错:ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.
cnocr 1.2.3.1 requires mxnet<1.7.0,>=1.5.0, but you have mxnet 1.2.0 which is incompatible.
也就是必须要1.5.0到1.6.0的版本才行呗,看来只能从libmxnet.dll想办法了
九、尝试1.7.0post版本,找到libmxnet.dll试试。
继续报错:OSError: [WinError 193] %1 不是有效的 Win32 应用程序。
十、尝试其它版本cnocr:
pip install cnocr1.2.3
pip install cnocr1.1.0
报错仍然没有解决
========2023年7月15日17:24:13
希望能为大家提供一些解决思路,减少爬坑的时间。