繁体   English   中英

在Azure函数中导入python cv2时出错

[英]Error while importing python cv2 in Azure function

我们正在使用Azure CLI部署基于Python的Azure函数,但是在导入cv2库时出现以下错误。

ImportError:libgthread-2.0.so.0:无法打开共享库文件:没有此类文件或目录

我们没有使用任何docker映像。 宁愿使用非基于docker的解决方案。

Exception: ImportError: libgthread-2.0.so.0: cannot open shared object file: No such file or directory
Stack:   File "/usr/local/lib/python3.6/site-packages/azure_functions_worker/dispatcher.py", line 239, in _handle__function_load_request
    func_request.metadata.entry_point)
  File "/usr/local/lib/python3.6/site-packages/azure_functions_worker/loader.py", line 66, in load_function
    mod = importlib.import_module(fullmodname)
  File "/usr/local/lib/python3.6/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 994, in _gcd_import
  File "<frozen importlib._bootstrap>", line 971, in _find_and_load
  File "<frozen importlib._bootstrap>", line 941, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "<frozen importlib._bootstrap>", line 994, in _gcd_import
  File "<frozen importlib._bootstrap>", line 971, in _find_and_load
  File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 665, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 678, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/home/site/wwwroot/FaceFinderHttpTrigger/__init__.py", line 11, in <module>
    import cv2
  File "/home/site/wwwroot/.python_packages/lib/python3.6/site-packages/cv2/__init__.py", line 3, in <module>
    from .cv2 import *

有一个类似的SO线程Azure函数:在Linux下的Python函数中,如何导入非标准模块,例如opencv / imutils? 与您的问题相同。

由于libgthread共享库是Linux基本库,根据我的经验,这似乎是由于Azure CLI无法将这些具有本地依赖项的Python软件包打包为Azure Function引起的。 因此,我认为唯一的解决方案是作为官方文档由您自己构建Azure函数作为Docker容器,作为官方文档Create a function on Linux using a custom image ,或尝试使用Azure CLI命令func azure functionapp publish--build-native-deps func azure functionapp publish --build-native-deps选项可使用Docker容器自动构建和配置依赖项。

我也知道,有一个具有OPENCV WITH AZURE FUNCTIONS博客,它似乎可以与Azure函数的opencv一起很好地工作,但是我认为它只是在本地开发环境上运行,而不是在云上运行。 因此,我仍然建议您使用本机依赖项将应用程序部署为该应用程序的Docker contaier。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM