Azure Function生成SAS令牌时导入azure.storage.blob出现ModuleNotFoundError问题求助
解决Azure Function中
ModuleNotFoundError: No module named 'azure.storage'的问题 你已经在虚拟环境里装好了依赖,但运行函数时还是找不到包,这大概率是函数运行时没有正确使用你的虚拟环境导致的,下面是具体的排查和解决步骤:
确保激活虚拟环境后启动函数
先通过命令行激活你的虚拟环境:.venv\Scripts\activate激活成功后,再运行
func start启动函数。这样Azure Functions Core Tools会使用当前激活环境中的依赖包,而不是全局Python环境。确认VS Code(如果使用)的Python解释器选择正确
如果是用VS Code开发,左下角会显示当前使用的Python解释器,点击它并选择你的.venv文件夹里的Python.exe。选完后重启函数,确保工具用的是虚拟环境的解释器。重新安装依赖并验证
激活虚拟环境后,执行以下命令重新安装requirements里的依赖,避免安装过程中出现遗漏:pip install -r requirements.txt安装完成后再运行
pip freeze,确认azure-storage-blob==12.6.0确实出现在列表里。配置VS Code强制使用虚拟环境
在项目的.vscode/settings.json文件中添加以下配置,明确告诉函数扩展使用你的虚拟环境:{ "azureFunctions.pythonVenv": ".venv" }清理函数缓存
有时候旧的缓存会导致依赖加载异常,停止函数后,删除项目根目录下的.python_packages文件夹,然后重新激活环境启动函数,让工具重新加载依赖。
这些步骤应该能解决你的问题,本质是让Azure Functions运行时正确指向你装有依赖的虚拟环境,而不是默认的全局环境。
内容的提问来源于stack exchange,提问作者MikeF
相关产品推荐
相关产品推荐

