2016-10-30 6 views
3

Я создал сценарий обработки изображений в Pythondlib и OpenCV) - Мне было интересно, как я могу довести эту функциональность Azure функций, так что сценарий может быть вызван через API. Поскольку Python по-прежнему находится в предварительном просмотре для Azure Functions Я хотел бы знать, есть ли у кого-нибудь здесь опыт с подключением модулей до Azure Functions, и если можно установить OpenCV?Run Python + OpenCV + dlib в лазури Функция

ответ

1

Вы можете принести свой собственный модулей к вашей функции, загрузив их в папку lib, находящуюся в той же папке, что и ваша функция.

Однако в контексте OpenCV это не поддерживаемый сценарий на данный момент. Версия Python по умолчанию, используемая в среде Azure Function, - Python 2.7. Если вы пытаетесь выполнить код функции с помощью OpenCV для Python 2.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, используемой Python 2.7, но вы не смогут самостоятельно запускать обновление.

Как вы уже отметили, языковая поддержка Python для Azure Functions находится на экспериментальной стадии прямо сейчас. Эти проблемы будут рассмотрены, когда Python будет полностью интегрирован в качестве первоклассного языка.

0

так что я понял, грязный хак, он установит пакет на первом запуске и выбросит ошибку, поэтому функция перезапустится. Выполните следующие шаги:

  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') 
    

Так что причина --user в том, что он не позволит мне установите его с правами администратора ... Также, если вы включили файл требований .txt с вашим репозиторием git, пакеты устанавливаются в WebApp, но, похоже, функция получила свою собственную среду python, поэтому вам нужно вручную устанавливать пакеты.

Так что единственный реальный трюк это найти подходящий колесный пакет (я твердо убежден, что функция использует Python 2.7, я не мог заставить его работать с пакетами для Python 3.4)

Смежные вопросы