Python3中__init__.py如何存储包信息?移除文件后如何重置其引用?
Python包移除文件后__init__.py引用报错解决方法
根本原因
该报错并非是__init__.py自动保留了旧引用,通常来自两方面原因:一是__init__.py中手动写入了和已删除文件相关的导入规则,二是Python残留的字节码缓存没有同步更新。
修复步骤
1. 清理__init__.py中的显式导入
打开mypackage/__init__.py文件,删除所有和myfile.py相关的导入语句,常见的相关语句包括:
from . import myfilefrom .myfile import *from .myfile import [函数/类/变量名]
修改完成后保存文件即可。
2. 清理Python编译缓存
如果修改完__init__.py后仍然报错,按以下操作清理缓存:
- 删除
mypackage目录下的__pycache__文件夹 - 如果你使用Python 2环境,同时删除目录下所有
.pyc、.pyo后缀的缓存文件 - 重新运行原项目即可生效。
额外检查
如果执行完以上操作依然报错,需要排查原项目其他业务代码中是否存在from mypackage import myfile、import mypackage.myfile这类直接导入已移除文件的语句,对应修改或删除即可。
内容的提问来源于stack exchange,提问作者Kinder9211
相关产品推荐
相关产品推荐

