50 lines
1.9 KiB
Python
50 lines
1.9 KiB
Python
import os
|
|
|
|
|
|
def find_bad_imports(root_dir):
|
|
# 我们要查找的错误引用字符串
|
|
targets = [
|
|
"app.models.material",
|
|
"from app.models.material"
|
|
]
|
|
|
|
print(f"🚀 开始扫描目录: {os.path.abspath(root_dir)}")
|
|
print(f"🔍 正在寻找残留代码: {targets} ...\n")
|
|
|
|
found_count = 0
|
|
|
|
# 排除的目录(避免扫描虚拟环境或缓存)
|
|
exclude_dirs = {'.git', '__pycache__', 'venv', '.idea', '.vscode'}
|
|
|
|
for root, dirs, files in os.walk(root_dir):
|
|
# 修改 dirs 列表以跳过排除的目录
|
|
dirs[:] = [d for d in dirs if d not in exclude_dirs]
|
|
|
|
for file in files:
|
|
if file.endswith(".py"):
|
|
file_path = os.path.join(root, file)
|
|
try:
|
|
with open(file_path, 'r', encoding='utf-8') as f:
|
|
lines = f.readlines()
|
|
for i, line in enumerate(lines, 1):
|
|
for target in targets:
|
|
if target in line:
|
|
print(f"❌ 发现错误文件: {file_path}")
|
|
print(f" ➡️ 第 {i} 行: {line.strip()}")
|
|
found_count += 1
|
|
except Exception as e:
|
|
# 忽略无法读取的文件(如二进制文件)
|
|
pass
|
|
|
|
print("-" * 50)
|
|
if found_count == 0:
|
|
print("✅ 恭喜!未发现任何 'app.models.material' 的残留引用。")
|
|
print("💡 如果依然报错,请尝试完全重启 Docker 或清理 __pycache__。")
|
|
else:
|
|
print(f"⚠️ 共发现 {found_count} 处错误引用,请照上方路径逐一修改。")
|
|
print("👉 修改方法: 将 'app.models.material' 改为 'app.models.base'")
|
|
|
|
|
|
if __name__ == "__main__":
|
|
# 扫描当前目录
|
|
find_bad_imports(".") |