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

部署子目录源码的Python Function App遇模块依赖问题

解决方案

针对你遇到的Azure Function App启动时找不到dotenv模块的问题,可通过以下步骤排查解决:

  • 确保激活项目虚拟环境后再启动Function
    先回到项目根目录激活虚拟环境:

    # Linux/macOS
    source venv/bin/activate
    # Windows
    venv\Scripts\activate
    

    激活后再进入./backend/entrypoints/my-func目录执行func start。如果未激活虚拟环境,func可能调用系统Python,无法识别已安装在项目虚拟环境中的依赖。

  • 让Function目录识别根目录的requirements.txt
    Azure Functions工具会优先检查Function所在目录的requirements.txt。可以在my-func目录下创建指向根目录依赖文件的软链接:

    # Linux/macOS
    ln -s ../../../requirements.txt requirements.txt
    # Windows(用mklink)
    mklink requirements.txt ..\..\..\requirements.txt
    

    或者直接复制根目录的requirements.txt到my-func目录下。

  • 调整Python路径确保backend根目录被加载
    在Function的入口文件(如函数的__init__.py)开头添加代码,将backend目录加入Python搜索路径:

    import sys
    from pathlib import Path
    
    # 获取backend目录的绝对路径
    backend_root = Path(__file__).parent.parent.parent
    sys.path.append(str(backend_root))
    

    这不仅能解决domain等模块的导入问题,也能确保虚拟环境中的依赖被正确识别。

  • 验证func工具与虚拟环境Python版本一致
    执行以下命令确认版本匹配:

    func --version
    python --version
    

    如果func使用的Python版本和虚拟环境不一致,会导致依赖无法找到。若版本不匹配,需调整func的Python环境指向项目虚拟环境。

  • 重新安装依赖到虚拟环境
    清理现有依赖后重新安装,确保依赖完全安装到当前虚拟环境:

    pip uninstall -y python-dotenv
    pip install -r requirements.txt
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 06:03:21