2016-10-30 2 views
3

Python (dlibOpenCV)에 이미지 처리 스크립트를 만들었습니다.이 기능을 Azure 함수에 가져 와서이 함수를 어떻게 호출 할 수 있는지 궁금합니다. API. 은 아직 Azure Functions에 대한 미리보기에 있으므로 여기에 모듈을 가져 오는 데 경험이있는 사람이 Azure Functions 인 지 알고 싶습니다. OpenCV을 설치하는 것이 가능한지 알고 싶습니다.Azure에서 Python + OpenCV + dlib 실행

답변

1

(I 강하게 나는 그것이 파이썬 3.4에 대한 패키지와 함께 작동하도록 얻을 수 없었다, 그 기능이 파이썬 2.7을 사용하여 믿고) 찾을 수 모듈을 사용자의 기능과 동일한 폴더에있는 lib 폴더에 업로드하여 기능에 추가하십시오.

그러나 OpenCV의 컨텍스트에서는 현재 지원되는 시나리오가 아닙니다. Azure 함수 환경에서 사용되는 기본 Python 버전은 Python 2.7입니다. 파이썬 2.7에서 OpenCV를 사용하여 기능 코드를 실행하려고하면, 당신은 얻을 것이다 오류 메시지가

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 

이에 대한 수정이 Python 2.7에 의해 사용되는 numpy 버전을 업데이트하는 것입니다

, 다음과 유사하지만 것 직접 업데이트를 실행할 수 없습니다.

아시다시피 Azure Functions에 대한 Python 언어 지원은 현재 실험 단계에 있습니다. 이 문제는 파이썬이 일류 언어로 완벽하게 탑재 될 때 해결 될 것입니다.

0

그래서 나는 더러운 해킹을 발견했다. 첫 번째 실행에서 패키지를 설치하고 오류를 던져서 함수가 다시 시작될 것이다. 다음 단계에 따라 함수 디렉토리에

  1. 업로드 패키지 (난 그냥 함수가 원 공급기되는 망할 놈의 프로젝트에 패키지를 추가).
  2. (아마도 더 좋은 방법이 있습니다,하지만 난 파이썬에 정말 새로운 해요) 같은 것을 수행

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

그래서 --user 뒤에 이유는 그것이 나를 못하게 것입니다 관리자 권한으로 설치 ... 또한 require.txt를 git 저장소에 포함 시키면 패키지가 웹 애플리케이션에 설치되지만 Function에 자체 Python 환경이있는 것으로 나타나 패키지를 수동으로 설치해야합니다.

그래서 유일한 트릭은 적절한 휠 패키지를 당신은 당신의 자신을 가져올 수