下载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,从那以后我一无所知,该怎么办还是我做错了什么。
任何帮助将不胜感激。
答案 0 :(得分:1)
编辑:因此,我尝试使用32位版本进行此操作,它给出了您遇到的相同错误。这似乎是尝试使用64位python导入32位.dll的问题,反之亦然,如Python Ctypes Load Library
中所示/ EDIT
我确实可以在我的系统上运行它……经过一些修改,该程序包并不像应有的那样即插即用。
我不知道我要去哪里,所以我只列出我做了什么:
从发行版中下载预编译的二进制文件(我使用过openalpr-2.3.0-win-64bit.zip)https://github.com/openalpr/openalpr/releases
下载项目本身,https://github.com/openalpr/openalpr
将两者解压缩。
转到openalpr-master 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\
并在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 . . .