我知道标题有点令人困惑,所以我做了一个示例包,说明了我的意思。包结构是:
pkg/
__init__.py
test.py
在 init .py:
中from test import func
在test.py中:
import numpy as np
def func(x):
return np.asarray(x)
然后,当我导入我的包时,pkg.func()完全按预期工作
>>> import pkg
>>> x=[1,2,3]
>>> pkg.func(x)
array([1,2,3])
但是,numpy也作为pkg.test.np导入,即使它没有在 init .py文件中指定!
>>> pkg.test.np
<module 'numpy' from '/Applications/Anaconda....'>
>>> pkg.test.np.array([1,2,3])
array([1,2,3])
这是一件好事吗?有必要吗?我不喜欢它,因为它给我的包增加了不必要的混乱。有没有办法阻止它?
由于