You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Function App从v2升级到v4后本地运行出现ImportError求助

问题描述

将Azure Function App从v2版本升级到v4版本后,在VS Code的venv环境中执行命令func host start --verbose时,出现以下错误:

Result: Failure Exception: ImportError: cannot import name 'HTTPFailure' from 'azure.cosmos.errors'

已尝试升级azure-cosmos到4.4.0版本,但问题未解决,已知azure.cosmos.errors模块已被弃用,但不确定是否与此问题直接相关。

已安装的pip包列表如下:

Package                               Version
------------------------------------- ---------
adal                                  1.2.7    
asn1crypto                            1.5.1    
astroid                               2.15.6   
azure-common                          1.1.28   
azure-core                            1.28.0   
azure-cosmos                          4.4.0    
azure-functions                       1.15.0   
azure-functions-worker                1.1.9    
azure-keyvault                        4.2.0    
azure-keyvault-certificates           4.7.0    
azure-keyvault-keys                   4.8.0    
azure-keyvault-secrets                4.7.0    
azure-mgmt-advisor                    9.0.0    
azure-mgmt-applicationinsights        4.0.0    
azure-mgmt-authorization              4.0.0    
azure-mgmt-batch                      17.1.0   
azure-mgmt-batchai                    2.0.0    
azure-mgmt-billing                    6.0.0    
azure-mgmt-cdn                        12.0.0   
azure-mgmt-cognitiveservices          13.5.0   
azure-mgmt-commerce                   6.0.0    
azure-mgmt-compute                    30.1.0
azure-mgmt-consumption                10.0.0
azure-mgmt-containerinstance          10.1.0
azure-mgmt-containerregistry          10.1.0
azure-mgmt-containerservice           25.0.0
azure-mgmt-core                       1.4.0
azure-mgmt-cosmosdb                   9.2.0
azure-mgmt-datafactory                3.1.0
azure-mgmt-datalake-analytics         0.6.0
azure-mgmt-datalake-nspkg             3.0.1
azure-mgmt-datalake-store             0.5.0
azure-mgmt-datamigration              10.0.0
azure-mgmt-devspaces                  0.2.0
azure-mgmt-devtestlabs                9.0.0
azure-mgmt-dns                        8.1.0
azure-mgmt-eventgrid                  10.2.0
azure-mgmt-eventhub                   11.0.0
azure-mgmt-hanaonazure                1.0.0
azure-mgmt-iotcentral                 9.0.0
azure-mgmt-iothub                     2.4.0
azure-mgmt-iothubprovisioningservices 1.1.0
azure-mgmt-keyvault                   10.2.3
azure-mgmt-loganalytics               12.0.0
azure-mgmt-logic                      10.0.0
azure-mgmt-machinelearningcompute     0.4.1
azure-mgmt-managementgroups           1.0.0
azure-mgmt-managementpartner          1.0.0
azure-mgmt-maps                       2.0.0
azure-mgmt-marketplaceordering        1.1.0
azure-mgmt-media                      10.2.0
azure-mgmt-monitor                    6.0.1
azure-mgmt-msi                        7.0.0
azure-mgmt-network                    24.0.0
azure-mgmt-notificationhubs           8.0.0
azure-mgmt-nspkg                      3.0.2
azure-mgmt-policyinsights             1.0.0
azure-mgmt-powerbiembedded            2.0.0
azure-mgmt-rdbms                      10.1.0
azure-mgmt-recoveryservices           2.4.0
azure-mgmt-recoveryservicesbackup     6.0.0
azure-mgmt-redis                      14.2.0
azure-mgmt-relay                      1.1.0
azure-mgmt-reservations               2.3.0
azure-mgmt-resource                   23.0.1
azure-mgmt-scheduler                  2.0.0
azure-mgmt-search                     9.0.0
azure-mgmt-servicebus                 8.2.0
azure-mgmt-servicefabric              2.0.0
azure-mgmt-signalr                    1.2.0
azure-mgmt-sql                        3.0.1
azure-mgmt-storage                    21.0.0
azure-mgmt-subscription               3.1.1
azure-mgmt-trafficmanager             1.1.0
azure-mgmt-web                        7.1.0
azure-nspkg                           3.0.2
azure-storage-blob                    12.17.0
azure-storage-common                  2.1.0
cachetools                            5.3.1
certifi                               2023.7.22
cffi                                  1.15.1
chardet                               5.1.0
charset-normalizer                    3.2.0
colorama                              0.4.6
coverage                              7.2.7
cryptography                          41.0.2
decorator                             5.1.1
dill                                  0.3.7
exceptiongroup                        1.1.2
grpcio                                1.33.2
grpcio-tools                          1.33.2
idna                                  3.4
iniconfig                             2.0.0
isodate                               0.6.1
isort                                 5.12.0
Jinja2                                2.10
lazy-object-proxy                     1.9.0
MarkupSafe                            2.0.0
mccabe                                0.7.0
msrest                                0.7.1
msrestazure                           0.6.4
oauthlib                              3.2.2
packaging                             23.1
pip                                   23.2.1
pipdeptree                            2.12.0
platformdirs                          3.9.1
pluggy                                1.2.0
protobuf                              3.6.1
ptvsd                                 4.3.2
py                                    1.11.0
pycparser                             2.21
PyJWT                                 2.8.0
pylint                                2.17.4
pytest                                7.4.0
pytest-cov                            4.1.0
python-dateutil                       2.8.2
python-dotenv                         1.0.0
python-http-client                    3.3.7
pytz                                  2023.3
requests                              2.31.0
requests-oauthlib                     1.3.1
retry                                 0.9.2
sendgrid                              6.10.0
setuptools                            58.1.0
six                                   1.12.0
starkbank-ecdsa                       2.2.0
tomli                                 2.0.1
tomlkit                               0.11.8
typed-ast                             1.5.5
typing_extensions                     4.7.1
urllib3                               2.0.4
解决方案

1. 替换代码中的错误引用模块

azure-cosmos v4.x版本已完全重构错误处理体系,原azure.cosmos.errors模块已被弃用,其中的HTTPFailure类已迁移至azure.cosmos.exceptions模块,替换为CosmosHttpResponseError(对应HTTP请求错误场景)。

  • 找到代码中所有类似如下的导入语句:
    from azure.cosmos.errors import HTTPFailure
    
  • 替换为:
    from azure.cosmos.exceptions import CosmosHttpResponseError
    
  • 同时修改代码中捕获异常的逻辑,例如:
    # 原代码
    try:
        # Cosmos DB操作
    except HTTPFailure as e:
        # 错误处理
    
    # 修改后
    try:
        # Cosmos DB操作
    except CosmosHttpResponseError as e:
        # 错误处理
    

如果需要处理其他特定错误场景,可参考azure.cosmos.exceptions下的具体异常类,比如:

  • CosmosResourceNotFoundError:资源不存在
  • CosmosResourceExistsError:资源已存在
  • CosmosAccessConditionFailedError:访问条件失败

2. 清理并重新安装依赖

执行以下命令清理旧的依赖缓存,确保azure-cosmos版本正确加载:

pip uninstall -y azure-cosmos
pip install azure-cosmos==4.4.0

3. 升级Azure Functions相关依赖

确保azure-functions和azure-functions-worker版本与Function App v4 runtime兼容:

pip install --upgrade azure-functions azure-functions-worker

4. 检查依赖兼容性

确认azure-mgmt-cosmosdb版本与azure-cosmos版本适配,当前你安装的azure-mgmt-cosmosdb 9.2.0与azure-cosmos 4.4.0是兼容的,若后续仍有问题,可尝试将azure-mgmt-cosmosdb升级至最新稳定版:

pip install --upgrade azure-mgmt-cosmosdb

内容的提问来源于stack exchange,提问作者iamrhass

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 19:17:03