text-detection-ctpn项目移植到windows的各种问题

       此项目用于中文OCR,项目地址https://github.com/eragonruan/text-detection-ctpn。该项目基于linux平台,因此在windows下想要玩转就有无数的坑! 有人写过如何解决,但故弄玄虚,没有真正解决问题,一个文件还需要积分才可以下载,晕倒我!

其它问题都不大,主要是要解决下面2个问题。

1)bbox.pyx和cython_mms.pyx编译windows下的bbox.pyd和cython_mms.pyd文件。因为作者提供的linux下的setup.sh文件可以保证你产生bbox.c和cython_mms.c文件,而无法产生pyd文件!

2)另外是产生的pyd文件无法正确执行的问题。

 

第一步,我自己写一个编译py文件如下:

解决报错:AttributeError: 'MSVCCompiler' object has no attribute 'compiler_so'。放弃作者提供的编译脚本,自己写。

rom distutils.core import setup
import sys
import os
import numpy as np
from Cython.Build import cythonize
os.chdir(sys.path[0])
vslib="C:\\Program Files (x86)\\Windows Kits\\10\\Include\\10.0.18362.0\\ucrt"
vslib2="C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Enterprise\\VC\\Tools\\MSVC\\14.25.28610\\include"
vslib3="C:\\Program Files (x86)\\Windows Kits\\10\\Include\\10.0.18362.0\\shared"
numpy_include = np.get_include()
setup(ext_modules=cythonize("bbox.pyx"), include_dirs=[numpy_include,vslib,vslib2,vslib3])
setup(ext_modules=cythonize("cython_nms.pyx"), include_dirs=[numpy_include,vslib,vslib2,vslib3])

    注意自己的头文件路径建议通过everything搜索到,注意操作系统是64位还是32位,千万不要搞错。如果你的路径有问题,会报告找不到.h文件。由于是在Windows下,你必须安装好 visualcppbuildtools的工具包。另外设置好Path变量,否则提示找不到cl.exe编译器等错误。

编译通过,激动一下!

第二步,发现链接错误,找不到c++的lib文件。

    问题又出现了,连接失败!找不到很多lib文件。这里如何设置 lib路径我不清楚,也没有看到资料。我采用最笨的办法是找到lib文件后Copy到当前目录。

果然链接成功!产生了2个pyd文件。复制到前目录。执行demo.py,激动中。。。

第三步,修改bbox.pyx文件,去掉cimport cython

   问题又来了,启动后,提示bbox找不到"cpython.pxd"文件!这是什么鬼,整过系统都没有这个文件!百度也好,https://stackoverflow.com/也好,都找不到任何相关信息。这里卡了我很久啊!

     下面是重点:

     打开bbox.pyx文件,发现有“cimport cython“ 代码,奇怪了,代码里只用了numpy库,为什么要导入这个C库呢!干掉它!重新编译。覆盖旧的 pxd文件。在此执行demo.py。激动人心的时刻终于到了!

text-detection-ctpn项目移植到windows的各种问题_第1张图片

希望大家能少爬点坑!我辛苦了快3天,也就这点成绩!

上面是主要问题,其它的小问题网上都可以找到答案,没有把所有的坑都记录下来。先休息了!

 

你可能感兴趣的:(AI,AI,Python,TensorFlow)