Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python中azure函数的部署不会从requirements.txt安装依赖项_Python_Azure_Function_Deployment - Fatal编程技术网

python中azure函数的部署不会从requirements.txt安装依赖项

python中azure函数的部署不会从requirements.txt安装依赖项,python,azure,function,deployment,Python,Azure,Function,Deployment,我有一个简单的python脚本,可以按照说明部署为azure函数 触发脚本时(设置为blob upload的事件网格事件),它会遇到运行时错误: 需求文件具有其他依赖项,但它们不会出现在日志输出中(仅在第3行之前!)。尝试部署多次,但结果相同。 Requirements.txt: azure-functions numpy==1.16.4 matplotlib==3.1.0 opencv_python==4.1.1.26 scikit_image==0.15.0 scipy==1.2.1 ski

我有一个简单的python脚本,可以按照说明部署为azure函数

触发脚本时(设置为blob upload的事件网格事件),它会遇到运行时错误:

需求文件具有其他依赖项,但它们不会出现在日志输出中(仅在第3行之前!)。尝试部署多次,但结果相同。 Requirements.txt:

azure-functions
numpy==1.16.4
matplotlib==3.1.0
opencv_python==4.1.1.26
scikit_image==0.15.0
scipy==1.2.1
skimage==0.0
Python脚本:

mport json
import logging
import numpy as np
import matplotlib
import matplotlib.mlab as mlab
import matplotlib.pyplot as plt
import statistics
import cv2
import os
import scipy
import scipy.signal as ss
import skimage
from skimage.filters import (threshold_otsu, threshold_niblack, threshold_sauvola)
from skimage.restoration import denoise_nl_means, estimate_sigma

import azure.functions as func


def main(event: func.EventGridEvent):
    result = json.dumps({
        'id': event.id,
        'data': event.get_json(),
        'topic': event.topic,
        'subject': event.subject,
        'event_type': event.event_type,
    })

    logging.info('Python EventGrid trigger processed an event: %s', result)
    logging.info('cv2 %s ', cv2.__version__)
    logging.info('matplotlib %s ', matplotlib.__version__)
    logging.info('scipy %s ', scipy.__version__)
    logging.info('skimage %s', skimage.__version__)

如果需求中只提到azure功能,那么部署和触发器工作正常。这是一个始终在线的应用程序服务计划,并且正在Linux上进行部署。部署出了什么问题?

解决了这个问题。requirements.txt文件中有一个伪造的浏览条目。python中的导入指的是skimage,但要求必须是scikit图像。因为我通过pipereqs生成了这个文件,所以我忽略了这一点


奇怪的是,发现部署日志并不容易。azure func的vscode终端中的默认输出没有完整堆栈。但是在Azure扩展选项卡下,有功能应用程序的详细部署日志,其中包含需要调试的必要信息。

嗨,Darshat,谢谢你的帖子。根据visual studio代码输出窗口,仅从my requirements.txt收集了第1行azure函数和第2行Pandar,未提及linke 3 numpy。你对此有什么见解吗?正如我提到的,在vscode中显示日志的VS代码集成似乎并没有显示所有日志。我不得不浏览azure门户以查看详细的部署日志。你试过了吗?
azure-functions
numpy==1.16.4
matplotlib==3.1.0
opencv_python==4.1.1.26
scikit_image==0.15.0
scipy==1.2.1
skimage==0.0
mport json
import logging
import numpy as np
import matplotlib
import matplotlib.mlab as mlab
import matplotlib.pyplot as plt
import statistics
import cv2
import os
import scipy
import scipy.signal as ss
import skimage
from skimage.filters import (threshold_otsu, threshold_niblack, threshold_sauvola)
from skimage.restoration import denoise_nl_means, estimate_sigma

import azure.functions as func


def main(event: func.EventGridEvent):
    result = json.dumps({
        'id': event.id,
        'data': event.get_json(),
        'topic': event.topic,
        'subject': event.subject,
        'event_type': event.event_type,
    })

    logging.info('Python EventGrid trigger processed an event: %s', result)
    logging.info('cv2 %s ', cv2.__version__)
    logging.info('matplotlib %s ', matplotlib.__version__)
    logging.info('scipy %s ', scipy.__version__)
    logging.info('skimage %s', skimage.__version__)