试图加载dll时,OpenALPR Python绑定失败



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

File "C:UsersrhenriquezAppDataLocalProgramsPythonPython37-32libsite-packagesopenalpropenalpr.py", line 51, in __init__
self._openalprpy_lib = ctypes.cdll.LoadLibrary("libopenalprpy.dll")
File "C:UsersrhenriquezAppDataLocalProgramsPythonPython37-32libctypes__init__.py", line 434, in LoadLibrary
return self._dlltype(name)
File "C:UsersrhenriquezAppDataLocalProgramsPythonPython37-32libctypes__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,从那时起,我一直不知道该做什么,或者我做错了什么。

如有任何帮助,我们将不胜感激。

EDIT:所以我在32位版本中尝试了这个,它给出了与您遇到的相同的错误。这似乎是在使用64位python时尝试导入32位.dll的问题,反之亦然,如python Ctypes加载库中所示

/编辑

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

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

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

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

打开两者的拉链。

转到openalpr mastercd C:openalpr-masteropenalpr-mastersrcbindingspython中的bindings文件夹,然后运行python setup.py install进行绑定。

然后导航到站点包中的项目文件夹,很可能是C:UsersrhenriquezAppDataLocalProgramsPythonPython37-32libsite-packagesopenalpr,并在IDLE、中打开openalpr.py

在这里,您可以将第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 . . .

最新更新