在PythonAnywhere运行flask.py报错,请求协助修复
在PythonAnywhere运行Flask应用时遇到
TypeError: 'module' object is not callable的解决方法 问题场景
运行名为flask.py的Flask应用文件时,出现如下报错:
Traceback (most recent call last):
File "", line 1, in
File "/bin/pythonanywhere_runner.py",
line 35, in _pa_run
globals().update(new_variables)
TypeError: 'module' object is not callable
核心原因
绝大多数情况是文件名与官方Flask模块重名:你将应用文件命名为flask.py,导致Python导入时优先加载自己的文件,而非系统安装的Flask库,后续调用Flask相关功能时,因引用的是自身模块而非可调用对象触发错误。
解决步骤
- 重命名应用文件:把
flask.py改成任意不与第三方库重名的名称,比如app.py、my_site.py。 - 清理缓存文件:删除当前目录下的
flask.pyc文件(若存在)以及__pycache__文件夹,避免残留编译文件干扰导入逻辑。 - 检查导入语句:确保代码使用正确的导入格式,示例:
避免出现from flask import Flask app = Flask(__name__)import flask后直接flask()的错误调用(flask是模块,并非可调用函数)。 - 更新PythonAnywhere配置:如果通过Web应用托管功能运行,进入Web应用设置页,将"Source code"路径下的启动文件改为新文件名,同时同步修改WSGI配置文件中的引用(比如原
import flask改为import app)。
验证方法
在PythonAnywhere控制台运行重命名后的文件(如python app.py),若能正常启动Flask服务,再重启Web应用即可。
内容的提问来源于stack exchange,提问作者Alex sa
相关产品推荐
相关产品推荐

