【发布时间】:2012-04-06 20:44:06
【问题描述】:
我在导入 scipy.special 包时遇到问题。它无害,只是烦人/有趣。
当我使用 import scipy as sp 导入 scipy 然后尝试访问 sp.special 我得到:
>>> import scipy as sp
>>> sp.special
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'module' object has no attribute 'special'
>>>
但如果我再做import scipy.special,我可以通过scipy.special 和sp.special 访问特殊模块:
>>> import scipy as sp
>>> import scipy.special
>>> scipy.special
<module 'scipy.special' from 'C:\Python27\lib\site-packages\scipy\special\__init__.pyc'>
>>> sp.special
<module 'scipy.special' from 'C:\Python27\lib\site-packages\scipy\special\__init__.pyc'>
>>>
所以我现在可以通过sp 和scipy 命名空间访问special 模块。有趣的是,我可以通过 scipy 命名空间访问 scipy 的其余部分。
第一个问题:为什么special模块第一次没有导入?
第二个问题:如何只通过sp 命名空间访问special 模块,而不定义scipy 命名空间?
编辑:使用 Python 2.7.2 和 scipy 0.10.1
【问题讨论】: