使用VS Code开发Python版Azure Functions遇ModuleNotFoundError求助
解决Azure Functions Python本地测试中的
azure.storage模块找不到问题 针对你遇到的Exception: ModuleNotFoundError: No module named 'azure.storage'问题,可尝试以下排查和解决步骤:
1. 全局排查项目中残留的azure.storage引用
使用VS Code的全局搜索功能(Ctrl+Shift+F),搜索整个项目目录下的所有文件,查找是否有未修改的import azure.storage语句,或者其他引用azure.storage的代码片段(包括注释、配置文件中的字符串等)。即使你自己的主文件改了导入,可能其他函数文件、工具类或遗留代码仍在引用旧包。
2. 检查虚拟环境的实际依赖情况
激活你的.venv虚拟环境后,执行以下命令:
pip list
- 确认
azure-storage-blob已成功安装; - 如果发现列表中存在
azure.storage包(可能是之前误装的),立即卸载:
pip uninstall -y azure.storage
3. 修正local.settings.json的路径配置
Windows环境下,.python_packages的站点包路径格式应为反斜杠,且PYTHONPATH需包含项目根目录,修改后的配置如下:
{ "IsEncrypted": false, "Values": { "AzureWebJobsStorage": "", "FUNCTIONS_WORKER_RUNTIME": "python", "PYTHONPATH": ".;.python_packages\\Lib\\site-packages" }, "ConnectionStrings": { "MyDatabaseConnectionString": "my_connection_string" } }
删除多余的python配置项,函数运行时会自动使用VS Code选中的解释器。
4. 清理缓存并重新安装依赖
- 删除项目根目录下的
.python_packages文件夹和所有__pycache__文件夹; - 在激活的虚拟环境中,执行函数工具的自动构建命令,确保依赖安装路径正确:
func host start --build
该命令会自动读取requirements.txt并将依赖安装到函数运行时识别的路径中,比手动pip install更可靠。
5. 确认函数启动方式
确保通过VS Code的Azure Functions扩展提供的**「Start Function App」**按钮启动函数,而非直接用Python解释器运行单个脚本。前者会加载函数应用的完整环境配置,包括路径和依赖。
6. 规范requirements.txt内容
确保requirements.txt中azure-storage-blob的拼写正确,可指定一个稳定版本避免兼容性问题:
azure-storage-blob>=12.19.0
保存后重新执行依赖安装。
内容的提问来源于stack exchange,提问作者robkru12
相关产品推荐
相关产品推荐

