Python Auto Update Import
当你在vscode中重构Python项目的时候,是否经常遇到以下问题:移动文件📃,修改文件名📃,移动文件夹📂,修改文件夹名📂,导入引用更新不准确,需要手动调整
这是一个智能的VSCode扩展,用于自动更新Python模块发生变动时的导入引用。支持绝对导入和相对导入的智能转换,让重构Python项目变得轻松无忧。
🖼️ 使用场景
使用场景

开启更新预览开关后,会先展示导入更新预览页面,等待用户确认更新再进行操作
setting.json: 输入 pythonAutoUpdateImport.showPreviewDialog

点击“复制报告”按钮,获取完整的导入更新报告
Python 导入更新报告
==============================
操作: 移动文件夹: tests/b → tests/dev/b
影响文件: 3 个
更新语句: 12 处
创建时间: 2025/8/11 21:19:20
详细更新列表:
--------------------------------------------------
📁 tests/a/a.py
1. 行1: import b.b → import dev.b.b
2. 行2: from ..b import b as b_1 → from ..dev.b import b as b_1
3. 行3: from b import b as b_2 → from dev.b import b as b_2
4. 行4: from ..b.b import B as B_1 → from ..dev.b.b import B as B_1
5. 行5: from b.b import B as B_2 → from dev.b.b import B as B_2
📁 tests/test.py
1. 行17: import b.b → import dev.b.b
2. 行18: from ..b import b as b_1 → from ..b import b as b_1
3. 行19: from b import b as b_2 → from dev.b import b as b_2
4. 行20: from ..b.b import B as B_1 → from ..b.b import B as B_1
5. 行21: from b.b import B as B_2 → from dev.b.b import B as B_2
📁 tests/dev/b/b.py
1. 行2: from ..a import a as a_1 → from ...a import a as a_1
2. 行4: from ..a.a import A as A_1 → from ...a.a import A as A_1
配置项

✨ 功能特性
🚀 自动更新关联py文件的导入引用,关联场景:
- 移动文件,如 📃b.py 移动到 📂/c/b.py
- 修改文件名,如 📃b.py 修改为 📃b1.py
- 移动文件夹,如 📂/b 移动到 📂/c
- 修改文件夹名,如 📂/b 修改为 📂/b1
🎯 多种导入类型支持
- ✅ 绝对导入:
import module
/ from module import item
- ✅ 相对导入:
from . import item
/ from ..module import item
- ✅ 别名导入:
import module as alias
- ✅ 多项导入:
from module import item1, item2
🔧 灵活配置
- 可配置导入根目录: 支持
src/
, lib/
, app/
等自定义结构
- 多层级路径支持: 如
apps/backend/src/
等复杂项目结构
- 智能省略根目录: 自动在绝对导入中省略配置的根目录
🛠️ 安装
- 在VSCode中打开扩展面板 (
Ctrl+Shift+X
)
- 搜索 "Python Auto Update Import"
- 点击安装
或者从 VSCode Marketplace 安装
⚙️ 配置选项
在VSCode设置中搜索 pythonAutoUpdateImport
或直接编辑 settings.json
:
{
"pythonAutoUpdateImport.enabled": true,
"pythonAutoUpdateImport.importRoots": ["src"],
"pythonAutoUpdateImport.logLevel": "basic",
"pythonAutoUpdateImport.showPreviewDialog": true
}
配置说明
pythonAutoUpdateImport.enabled
- 类型:
boolean
- 默认值:
true
- 说明: 是否启用Python导入自动更新功能
pythonAutoUpdateImport.importRoots
- 类型:
string[]
- 默认值:
["src"]
- 说明: Python导入的根目录列表,这些目录在绝对导入路径中会被省略,比如修改
src/a/b.py
文件名为src/a/b1.py
,被其他模块引用为from a.b import var
,自动更新的时候会自动更新为from a.b1 import var
- 示例:
["src"]
- 省略src目录
["src", "lib", "app"]
- 支持多个根目录
["apps/backend", "apps/frontend"]
- 支持多层级路径
pythonAutoUpdateImport.showPreviewDialog
- 类型:
boolean
- 默认值:
true
- 说明: 是否在更新导入前显示预览确认对话框。设置为false时将自动更新而不需要用户确认
pythonAutoUpdateImport.logLevel
- 类型:
string
- 可选值:
"none"
, "basic"
, "verbose"
- 默认值:
"basic"
- 说明: 日志输出级别
none
: 无日志输出
basic
: 基本信息
verbose
: 详细调试信息
🤝 贡献
欢迎贡献代码!请查看 GitHub仓库 了解更多信息。
📄 许可证
MIT License - 查看 LICENSE 文件了解详情。
享受自动化的Python重构体验! 🐍✨