VSCode配置FastAPI与Tortoise ORM 环境搭建教程【指南】

陌瑶大大_6221

陌瑶大大_6221

2026-05-28

611人浏览

原创

能直接跑通 fastapi + tortoise-orm 的最小 vscode 环境核心是三件事:python 解释器必须指向项目虚拟环境、uvicorn 和 tortoise-orm 必须装在此环境中、app 实例与 tortoise.init() 初始化逻辑顺序不能错位;其余均为可选。

vscode配置fastapi与tortoise orm 环境搭建教程【指南】

能直接跑通 FastAPI + Tortoise-ORM 的最小 VSCode 环境,核心就三件事:Python 解释器必须指向项目虚拟环境、uvicorn 和 tortoise-orm 必须装在这个环境里、app 实例和 Tortoise.init() 初始化逻辑不能错位。其余都是锦上添花。

VSCode 里选不对 Python 解释器,后续全白搭

VSCode 默认不自动识别项目虚拟环境,哪怕你用 python -m venv .venv 创建了,它仍可能用系统 Python 或其他全局解释器。后果是:ImportError: No module named 'tortoise'、ModuleNotFoundError: No module named 'uvicorn' 这类报错根本不是代码问题,而是包压根没装对地方。

  • 按 Ctrl+Shift+P(Windows/Linux)或 Cmd+Shift+P(macOS),输入 Python: Select Interpreter
  • 从列表里选带 .venv、venv 或你自定义名(如 myenv)的路径;没出现就点 Enter interpreter path,手动填:
    – Windows:.venv\Scripts\python.exe
    – macOS/Linux:.venv/bin/python
  • 选完后,右下角状态栏必须显示该路径;如果没变,关掉所有终端再新开一个

uvicorn 启动失败,90% 是 main:app 找不到

错误信息常是 ImportError: cannot import name 'app' from 'main' 或 Application not found。本质是 Python 导入链断裂,和 FastAPI 本身无关。

VSCode
VSCode

避免常见的 VSCode 错误——设置冲突、调试器配置和扩展冲突。

下载
  • main.py 文件顶层必须有且仅有一个变量名是 app,类型是 FastAPI() 实例(不能是函数、类、带下划线前缀如 _app)
  • 终端当前工作目录必须是 main.py 所在的项目根目录(不是子文件夹)
  • 必须已激活虚拟环境:(.venv) 要出现在终端提示符最前面;Windows 激活命令是 .venv\Scripts\activate,macOS/Linux 是 source .venv/bin/activate
  • 推荐安装 fastapi[all] 而非单独装 fastapi 和 uvicorn——它会一并装好 asyncpg、aiosqlite、python-multipart 等 Tortoise-ORM 常用依赖

Tortoise.init() 放错位置,数据库连不上还无报错

很多人把 Tortoise.init() 写在路由函数里、或者写在 if __name__ == "__main__": 下,结果服务启动了但模型注册失败,查数据库时直接 AttributeError: type object 'User' has no attribute 'all'。

  • Tortoise.init() 必须在 app 实例创建之后、uvicorn.run() 之前执行,且只执行一次
  • 推荐统一放在 db.py 中初始化,然后在 main.py 开头 import 并调用,例如:
    from db import init_db<br>init_db()
  • 连接 URL 中的驱动名要匹配实际安装的异步驱动:postgres:// 对应 asyncpg,sqlite:// 对应 aiosqlite;写成 postgresql:// 却没装 asyncpg,会静默失败
  • 别漏掉 register_tortoise(app, ...) —— 它负责把 Tortoise 生命周期绑定到 FastAPI 的 startup/shutdown 事件,否则服务重启时连接不释放

调试时断点不生效,其实是 uvicorn 模式配错了

VSCode 调试 FastAPI 不能用 "program": "main.py",否则异步上下文丢失,await 会卡死,断点也进不去视图函数。

  • 必须用 "module": "uvicorn" 模式,在 .vscode/launch.json 中配置:
    {<br>  "configurations": [<br>    {<br>      "name": "FastAPI Debug",<br>      "type": "python",<br>      "request": "launch",<br>      "module": "uvicorn",<br>      "args": ["main:app", "--reload", "--host", "127.0.0.1", "--port", "8000"],<br>      "console": "integratedTerminal",<br>      "justMyCode": false<br>    }<br>  ]<br>}
  • "justMyCode": false 很关键——否则断点进不了 tortoise 或 uvicorn 内部,查连接池、事务、异常堆栈时完全抓瞎
  • 确保 main.py 里没有 if __name__ == "__main__": uvicorn.run(...) 这种写法,它和调试模式冲突

最易被忽略的是 Tortoise.init() 和 register_tortoise() 的执行顺序与作用域——它们必须在应用启动前完成注册,且不能被条件语句包裹;一旦漏掉或放错位置,服务看似正常运行,但所有 ORM 操作都会在运行时才暴露问题,排查成本远高于前期多加两行检查。

大量免费API接口:立即使用
涵盖生活服务API、金融科技API、企业工商API、等相关的API接口服务。免费API接口可安全、合规地连接上下游,为数据API应用能力赋能!

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

vscode

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
Python FastAPI异步API开发_Python怎么用FastAPI构建异步API
Python FastAPI异步API开发_Python怎么用FastAPI构建异步API

Python FastAPI 异步开发利用 async/await 关键字,通过定义异步视图函数、使用异步数据库库 (如 databases)、异步 HTTP 客户端 (如 httpx),并结合后台任务队列(如 Celery)和异步依赖项,实现高效的 I/O 密集型 API,显著提升吞吐量和响应速度,尤其适用于处理数据库查询、网络请求等耗时操作,无需阻塞主线程。

2025.12.22

119

5

Python 微服务架构与 FastAPI 框架
Python 微服务架构与 FastAPI 框架

本专题系统讲解 Python 微服务架构设计与 FastAPI 框架应用,涵盖 FastAPI 的快速开发、路由与依赖注入、数据模型验证、API 文档自动生成、OAuth2 与 JWT 身份验证、异步支持、部署与扩展等。通过实际案例,帮助学习者掌握 使用 FastAPI 构建高效、可扩展的微服务应用,提高服务响应速度与系统可维护性。

2026.02.06

534

18

Python Web框架FastAPI 全栈开发教程合集
Python Web框架FastAPI 全栈开发教程合集

以 FastAPI 为核心,讲解现代 Python Web API 的高效开发方式,涵盖路由定义与路径参数/查询参数/请求体绑定、Pydantic 模型的数据校验与序列化、依赖注入(Depends)系统的分层设计、中间件与 CORS 配置、OAuth2 + JWT 认证流程、后台任务(BackgroundTasks)、WebSocket 实时通信、SQLAlchemy 异步 ORM 集成、自动生成 OpenAPI/Swagger 交互文

2026.05.09

496

23

Python FastAPI异步微服务与高性能接口设计
Python FastAPI异步微服务与高性能接口设计

本专题聚焦 Python FastAPI 框架在高性能接口与微服务开发中的应用,讲解异步请求处理、依赖注入机制、路由设计、数据库异步操作以及接口性能优化策略。结合实际项目案例,帮助开发者构建高并发、低延迟的现代化后端服务架构。

2026.06.16

419

12

vscode是什么_vscode怎么安装配置
vscode是什么_vscode怎么安装配置

VS Code(Visual Studio Code)是一款免费、开源的跨平台代码编辑器,由微软开发和维护。它被广泛用于软件开发和编程,支持多种编程语言和框架。VS Code 同时提供了丰富的功能和扩展性,使开发者可以高效地编写、编辑和调试代码。

2023.06.30

1235

18

vscode怎么运行代码
vscode怎么运行代码

vscode是一个运行于MacOS X、Windows和Linux之上的,针对于编写现代Web和云应用的跨平台源代码编辑器;vscode免费而且功能强大,对JavaScript和NodeJS的支持非常好,自带很多功能,例如代码格式化,代码智能提示补全、Emmet插件等。php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

2023.07.21

2572

3

vscode使用的框架介绍
vscode使用的框架介绍

VSCode是一款跨平台代码编辑器,它基于Electron框架和Monaco Editor构建。想了解更多vscode的相关内容,可以阅读本专题下面的文章。

2024.03.14

1869

12

vscode一般用来写什么语言
vscode一般用来写什么语言

VSCode是一款功能强大的代码编辑器,支持多种编程语言和文件格式。它内置对 JavaScript、Python、Java、C++、TypeScript、HTML/CSS、Go 等语言的支持。想了解更多vscode的相关内容,可以阅读本专题下面的文章。

2024.03.14

1707

8

vscode可以写什么语言
vscode可以写什么语言

vscode是一款强大的代码编辑器,支持多种编程语言的开发。通过安装扩展,可以为 JavaScript/TypeScript、Python、Java、C#、PHP、Go、Ruby、Rust、HTML/CSS 等语言提供智能代码补全、调试和格式化等功能。想了解更多vscode的相关内容,可以阅读本专题下面的文章。

2024.03.15

2567

12

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程