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

使用Waitress部署Heroku应用时遇'module object not callable'错误求助

解决Waitress部署时的"module object not callable"错误

这个错误的核心原因很清晰:你在Procfile里指定的myapp:application并不是一个可调用的WSGI应用实例,Waitress试图把myapp.application这个模块当作应用来调用,自然会抛出"module not callable"的错误。

问题定位

看你的__init__.py代码,你已经通过app = create_app()创建了Flask应用实例,但你的Procfile却指向了myapp:application——这其实是导入了myapp.application模块,而不是你创建的app对象。

解决步骤

  1. 修改Procfile内容
    把原来的Procfile:

    web: waitress-serve --port=5000 myapp:application
    

    改成指向你在__init__.py里定义的app对象:

    web: waitress-serve --port=5000 myapp:app
    
  2. 验证应用结构
    确保你的文件结构和导入路径是正确的:

    /myapp
      requirements.txt
      Procfile
      /myapp
        /static
        /templates
        __init__.py
        application.py  # 这里是你定义create_app的文件
        config.py
        models.py
        views.py
    
  3. 重新测试heroku local
    执行heroku local,现在Waitress应该能正确找到你的Flask应用实例,访问页面就不会再出现那个错误了。

额外检查点

  • 确认create_app()函数确实返回了一个有效的Flask实例(从你的代码看app = create_app()是没问题的)
  • 确保myapp目录是一个有效的Python包(包含__init__.py)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 06:35:10