PyCharm运行Flask项目报错:ImportError: cannot import name 'request' from 'flask'
问题原因
- 核心触发原因是文件命名与Python标准库模块冲突,你的业务代码文件命名为
token.py,恰好和Python标准库的token模块重名。 - 导入
flask的依赖加载链会逐级加载到标准库的tokenize模块,该模块需要导入标准库的token模块,此时重名的业务代码文件会被优先加载,触发文件中from flask import request的导入逻辑,但此时flask本身还未完成初始化加载,最终形成循环导入触发报错。
解决方法
- 修改业务代码文件名,避免和标准库/第三方库重名,例如将
token.py改为jwt_token.py或者token_resource.py。 - 删除项目对应目录下的
__pycache__缓存文件夹,避免旧的缓存文件被加载。 - 重启运行环境后重新执行代码即可。
注意事项
后续命名业务代码文件时,尽量避免与Python标准库、常用第三方库重名,例如不要使用json.py、requests.py、flask.py等作为文件名,防止出现同类命名冲突问题。
内容的提问来源于stack exchange,提问作者terence
相关产品推荐
相关产品推荐

