Windows本地运行Azure Functions时遭遇意外ModuleNotFoundError
Windows下本地运行Azure Functions遇ModuleNotFoundError的解决方案
问题根源:你启动func start时,工具调用的是系统全局Python解释器,而非你创建的虚拟环境中的Python,因此无法找到虚拟环境内安装的依赖包(从报错的sys.path中看不到.venv\Lib\site-packages路径可确认此问题)。
以下是无需修改代码仓库的本地解决方案:
方案1:指定func使用虚拟环境的Python解释器
激活虚拟环境后,直接指定func使用虚拟环境内的Python启动:
# 激活虚拟环境后执行 func start --python --python-exe ".venv\Scripts\python.exe"
方案2:手动设置PYTHONPATH指向虚拟环境依赖
激活虚拟环境后,临时将虚拟环境的site-packages路径加入环境变量:
# PowerShell环境下执行 $env:PYTHONPATH = "$(Get-Location)\.venv\Lib\site-packages;$env:PYTHONPATH" func start --python
方案3:确保虚拟环境Python版本与func工具匹配
从报错信息看,你的func工具使用的是Python 3.10,需确认虚拟环境的Python版本一致:
- 激活虚拟环境后检查版本:
python --version
- 若版本不匹配,重新创建对应版本的虚拟环境:
python3.10 -m venv .venv .\.venv\Scripts\Activate.ps1 pip install -r requirements.txt func start --python
方案4:切换至PowerShell执行所有步骤
CMD有时会出现虚拟环境变量传递异常,改用管理员身份打开PowerShell,重新执行全套流程:
python -m venv .venv .\.venv\Scripts\Activate.ps1 pip install -r requirements.txt func start --python
内容的提问来源于stack exchange,提问作者Sammy Paykel
相关产品推荐
相关产品推荐

