使用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对象。
解决步骤
修改Procfile内容
把原来的Procfile:web: waitress-serve --port=5000 myapp:application改成指向你在
__init__.py里定义的app对象:web: waitress-serve --port=5000 myapp:app验证应用结构
确保你的文件结构和导入路径是正确的:/myapp requirements.txt Procfile /myapp /static /templates __init__.py application.py # 这里是你定义create_app的文件 config.py models.py views.py重新测试
heroku local
执行heroku local,现在Waitress应该能正确找到你的Flask应用实例,访问页面就不会再出现那个错误了。
额外检查点
- 确认
create_app()函数确实返回了一个有效的Flask实例(从你的代码看app = create_app()是没问题的) - 确保
myapp目录是一个有效的Python包(包含__init__.py)
内容的提问来源于stack exchange,提问作者hungryhippo
相关产品推荐
相关产品推荐

