0

下载 openALPR 库的 Windows 预编译二进制文件后,运行源代码中包含的 setup.py 进行安装,然后运行预编译二进制目录中包含的 python_test.bat 我收到以下错误:

File "C:\Users\rhenriquez\AppData\Local\Programs\Python\Python37-32\lib\site-packages\openalpr\openalpr.py", line 51, in __init__
    self._openalprpy_lib = ctypes.cdll.LoadLibrary("libopenalprpy.dll")
  File "C:\Users\rhenriquez\AppData\Local\Programs\Python\Python37-32\lib\ctypes\__init__.py", line 434, in LoadLibrary
    return self._dlltype(name)
  File "C:\Users\rhenriquez\AppData\Local\Programs\Python\Python37-32\lib\ctypes\__init__.py", line 356, in __init__
    self._handle = _dlopen(self._name, mode)
OSError: OSError: [WinError 193] %1 is not a valid Win32 application

当我开始运行脚本时,错误是 WinError 126,然后我注意到脚本试图调用的 dll (openalprpy.dll) 在其名称的开头没有“lib”,所以我添加了它以 dll 的名称命名。然后它开始向我发送 WinError 193,从那时起我一直不知道还能做什么或我做错了什么。

任何帮助,将不胜感激。

4

1 回答 1

2

编辑:所以我用 32 位版本尝试了这个,它给出了你遇到的同样的错误。这似乎是在使用 64 位 python 时尝试导入 32 位 .dll 的问题,反之亦然,如Python Ctypes Load Library中所示

/编辑

我确实让它在我的系统上工作......经过一些修改,这个包并不像它应该的那样“即插即用”。

我不知道我哪里做对了,所以我只列出我做了什么:

从发行版下载预编译的二进制文件(我使用 openalpr-2.3.0-win-64bit.zip)https://github.com/openalpr/openalpr/releases

下载项目本身,https://github.com/openalpr/openalpr

解压两者。

转到 openalpr-master 中的 bindings 文件夹cd C:\openalpr-master\openalpr-master\src\bindings\python并运行python setup.py install以进行绑定。

然后导航到站点包中的项目文件夹,很可能C:\Users\rhenriquez\AppData\Local\Programs\Python\Python37-32\lib\site-packages\openalpr\openalpr.py在 IDLE 中打开,

在这里您可以将第 51 行从 更改为self._openalprpy_lib = ctypes.cdll.LoadLibrary("libopenalprpy.dll")self._openalprpy_lib = ctypes.cdll.LoadLibrary("openalprpy.dll")因为如果您更改文件名,其他链接似乎会损坏。

我还发现将第 90 行更改为是有益的,except Exception:因为它不想正确导入并且没有引发 ImportError。

之后 python_test.bat 正常工作。

Namespace(config='openalpr.conf', country='us', plate_image='samples/us-1.jpg', runtime_data='runtime_data')
Using OpenALPR 2.3.0
Image size: 497x372
Processing Time: 561.825989
Plate #1
          Plate   Confidence
  -       THECAR   92.207481
  -       THEGAR   81.348961
  -        HECAR   80.229317
  -       TMECAR   78.159492
  -       THE0AR   77.702461
  -       THECAB   77.389000
  -        THEAR   76.510017
Press any key to continue . . .
于 2019-01-23T18:32:30.250 回答