VSCode Pylance无法识别相对导入,运行代码报错求助
解决ModuleNotFoundError: No module named 'app'问题
问题分析
直接运行app/main.py时,Python会将app目录加入sys.path,而非项目根目录deviverse-backend。此时from app import create_app会尝试在app目录下查找app子包,导致找不到模块。同时app/__init__.py中的导入语句也不符合包内导入规范。
解决方案
1. 修正包内导入语句
修改app/__init__.py中的导入为相对导入:
from flask import Flask from .auth import auth_routes # 改为相对导入,添加.表示当前包下的auth子包 def create_app(): app = Flask(__name__) # Configure app settings if needed # Register blueprints app.register_blueprint(auth_routes.auth_bp) return app
2. 正确运行应用
切换到项目根目录deviverse-backend,使用模块方式运行:
python -m app.main
这种方式会将项目根目录加入Python的模块搜索路径,让import app能正确找到顶层的app包。
3. 调整Pylance识别路径
在工作区的.vscode/settings.json中添加如下配置,让Pylance将项目根目录视为源码根:
{ "python.analysis.extraPaths": ["${workspaceFolder}"] }
保存后重启VS Code,Pylance就能正确识别包结构和导入语句。
内容的提问来源于stack exchange,提问作者Madster
相关产品推荐
相关产品推荐

