在部署中使用 OpenVino 时出现导入错误。已尝试在 request.txt 文件中指定所有先前版本的 OpenVino,以防问题与版本有关。确切的错误是:
File "/app/.heroku/python/lib/python3.8/site-packages/openvino/inference_engine/__init__.py", line 29, in <module>
2022-01-11T03:31:36.967769+00:00 app[web.1]: from .ie_api import *
2022-01-11T03:31:36.967828+00:00 app[web.1]: ImportError: /app/.heroku/python/lib/python3.8/site-packages/openvino/inference_engine/ie_api.cpython-38-x86_64-linux-gnu.so: undefined symbol: _ZTVN15InferenceEngine5TBlobIhSt9enable_ifILb1EvEEE
我不确定这个错误的性质是什么。会不会是依赖问题?完整的 requirements.txt 文件是:
anyio
asgiref
astroid
azure-common
azure-core
azure-identity
azure-keyvault-secrets
certifi
cffi
charset-normalizer
click
cryptography
fastapi
h11
idna
isodate
isort
lazy-object-proxy
mccabe
msal
msal-extensions
msrest
oauthlib
opencv-python-inference-engine
openvino
platformdirs
portalocker
pycparser
pydantic
PyJWT
pylint
python-multipart
requests
requests-oauthlib
six
sniffio
starlette
toml
typing-extensions
urllib3
uvicorn
wrapt
还有一个 Aptfile :
libpython3.8
runtime.txt 文件包含:
python-3.8.12
万一知道有什么用。我还尝试从依赖项中删除 Numpy,因为我听说了与 Numpy 和 OpenVino 相关的错误。
更新*
有趣的是,当在 requirements.txt 中将 opencv-python-inference-engine 替换为 opencv-python-headless 时,错误发生了变化:
cv2.error: OpenCV(4.5.5) /io/opencv/modules/dnn/src/dnn.cpp:4319: error: (-2:Unspecified error) Build OpenCV with Inference Engine to enable loading models from Model Optimizer. in function 'readFromModelOptimizer'
所以我认为错误可能与opencv导入有关?或者它可能与buildpack有关?
对于我正在使用的推理:
im_cv = cv.imread(tmp_path_str)
frame = cv.cvtColor(im_cv, cv.COLOR_RGB2BGR)
blob = cv.dnn.blobFromImage(frame, size=(180,180), ddepth=cv.CV_8U)
net.setInput(blob)
out = net.forward()