我正在使用 Python + IPython 进行数据科学。我创建了一个文件夹,其中包含我编写的所有模块,以包的形式组织,例如
python_workfolder
|
|---a
| |---__init__.py
| |---a1.py
| |---a2.py
|
|---b
| |---__init__.py
| |---b1.py
| |---b2.py
|
|---c
| |---__init__.py
| |---c1.py
| |---c2.py
|
|
|---script1.py
|---script2.py
在每个会话开始时,我要求 IPython 自动重新加载模块:
%load_ext autoreload
%autoreload 2
现在...假设 a1.py 包含一个类 ,A1
我想从其中一个脚本中调用它。在__init__.p
包中a
我导入模块
import a1
然后在脚本中我导入我需要的类
from a.a1 import A1
如果 A1 类中有一些错误并且我对其进行了修改,那么在不重新启动内核的情况下无法让 Python 重新加载它。
我试过用del a1
, del sys.modules['a1']
, del sys.modules['a']
. 每次它使用旧版本的类,直到我不重新启动内核......任何人都可以给我一些建议吗?