【问题标题】:Why do I get error ModuleNotFoundError: No module named 'azure.storage' during execution of my azure python function?为什么在执行我的 azure python 函数期间出现错误 ModuleNotFoundError: No module named 'azure.storage'?
【发布时间】:2021-05-21 16:47:05
【问题描述】:

我目前正在使用 Python 3.9 进行部署以安装依赖项并将 azure 函数设置为也使用 Python 3.9

这是我目前使用的需求文件

msrest==0.6.16
azure-core==1.6.0
azure-functions
azure-storage-blob==12.5.0
pandas
numpy
pyodbc
requests==2.23.0
snowflake-connector-python==2.4.0
azure.identity
azure.keyvault.secrets==4.1.0
azure.servicebus==0.50.3
pyarrow==3.0.0
stopit==1.1.2

在构建定义期间安装所需依赖项的 bash 脚本

python3.9 -m venv worker_venv
source worker_venv/bin/activate
pip3.9 install setuptools
pip3.9 install --upgrade pip
pip3.9 install -r requirements.txt

我的 python 脚本使用以下导入

import logging
from azure.storage.blob import *
import datetime
import azure.functions as func
import json

我能找到的最有用的文章是 https://docs.microsoft.com/en-us/azure/azure-functions/recover-python-functions?tabs=coretools

作为一种解决方法,我尝试使用以下命令远程构建选项: func azure functionapp 发布。有趣的是,当我使用该命令时,错误在执行期间消失了,并且该功能按预期工作。我想再次启用自动构建和部署过程,该过程确实有效,直到我需要包含 pyarrow 库。

对我做错了什么有什么建议吗?

【问题讨论】:

    标签: python-3.x azure-functions


    【解决方案1】:

    我能够下载远程构建生成的内容。然后我发现它有一个 .python_packages 文件夹。我现在将我的安装依赖项 bash 脚本更新为下面的示例,该示例模仿远程构建如何创建 .python_packages 。本质上,我正在从 worker_venv/lib64/python3.9 复制下载的包/site-packages.python_packages/lib/site-packages。我的函数现在正在执行,没有任何错误。

    python3.9 -m venv worker_venv
    source worker_venv/bin/activate
    pip3.9 install setuptools
    pip3.9 install --upgrade pip
    pip3.9 install -r requirements.txt
    mkdir .python_packages
    cd .python_packages
    mkdir lib
    cd lib
    mv ../../worker_venv/lib64/python3.9/site-packages .
    

    【讨论】:

      猜你喜欢
      • 2020-04-16
      • 2021-05-20
      • 2022-12-19
      • 1970-01-01
      • 1970-01-01
      • 2021-03-13
      • 1970-01-01
      • 2018-10-27
      • 1970-01-01
      相关资源
      最近更新 更多