小编典典

特殊进口问题

python

我在导入scipy.special软件包时遇到问题。这不是有害的,只是令人讨厌/有趣。

当我使用导入scipyimport scipy as sp并尝试访问时,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'>
>>>

现在,我special可以通过spscipy名称空间访问该模块。有趣的是,我可以通过scipy名称空间访问scipy的其余部分。

第一个问题:为什么special模块不第一次导入?

第二个问题:如何specialsp不定义scipy名称空间的情况下仅通过名称空间访问模块?

编辑:使用Python 2.7.2和scipy 0.10.1


阅读 127

收藏
2020-12-20

共1个答案

小编典典

默认情况下,“ import scipy”不导入任何子包。具有大型Fortran扩展模块的子软件包太多,加载速度很慢。我不建议这样做import scipy或简称import scipy as sp。只是不是很有用。使用from scipy import specialfrom scipy import linalg等等。

2020-12-20