在Azure函数中运行Python+OpenCV+dlib

2024-04-19 08:29:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我在Python(使用dlibOpenCV)中创建了一个图像处理脚本,我想知道如何将此功能引入Azure函数,以便可以通过API调用脚本。由于Python仍在Azure Functions的预览中,我想知道这里是否有人有将模块带到Azure Functions的经验,以及是否可以在那里安装OpenCV?在


Tags: 模块函数功能脚本api经验functionsazure
2条回答

所以我想到了一个肮脏的黑客,它会在第一次运行时安装这个包并抛出一个错误,所以函数会重新启动。请执行以下步骤:

  1. 将包上载到函数目录(我刚刚将包添加到与函数同步的git项目中)。在
  2. 做一些类似的事情(可能有更好的方法,但我对python还不熟悉):

    try:
     import pyodbc
    except:
     package = 'pyodbc-3.0.10-cp27-none-win32.whl'
     pip.main(['install', ' user', package])
     raise ImportError('Restarting')
    

所以用户背后的原因是它不允许我以管理员权限安装它。。。如果您确实包括要求.txt在git存储库中,包被安装到WebApp中,但函数似乎有自己的python环境,因此您必须手动安装包。在

所以找到合适的wheel包是唯一的诀窍(我坚信函数使用的是python2.7,我不能让它与python3.4的包一起工作)

您可以将您自己的模块上传到与您的函数位于同一文件夹中的lib文件夹中。在

然而,在OpenCV的上下文中,它目前不是一个受支持的场景。Azure函数环境中使用的默认Python版本是python2.7。如果您尝试使用OpenCV for Python2.7执行函数代码,您将得到的错误消息如下所示:

2016-11-07T20:47:33.151 Function completed (Failure, Id=42fa9d38-05f1-46d4-a8ce-9fbaa24a870d)
2016-11-07T20:47:33.166 Exception while executing function: Functions.ImageProcessor. Microsoft.Azure.WebJobs.Script: ImportError: numpy.core.multiarray failed to import
Traceback (most recent call last):
  File "D:\home\site\wwwroot\ImageProcessor\run.py", line 17, in <module>
    import cv2
ImportError: numpy.core.multiarray failed to import

修复方法是更新numpy使用的numpy版本,但您将无法自己运行更新。在

正如您所注意到的,Python语言对Azure函数的支持目前正处于试验阶段。这些问题将在Python作为一级语言完全采用时得到解决。在

相关问题 更多 >