【问题标题】:scipy.special import issuescipy.special 导入问题
【发布时间】: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.specialsp.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'>
>>>

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

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

第二个问题:如何只通过sp 命名空间访问special 模块,而不定义scipy 命名空间?

编辑:使用 Python 2.7.2 和 scipy 0.10.1

【问题讨论】:

    标签: python scipy


    【解决方案1】:

    默认情况下,“import scipy”不导入任何子包。带有大型 Fortran 扩展模块的子包太多,加载速度很慢。我不推荐使用import scipy 或缩写import scipy as sp。它只是不是很有用。使用from scipy import specialfrom scipy import linalg等。

    【讨论】:

    • 谢谢,我以后会记住的。文档中是否有任何地方明确说明了这一点?我在API文档中看不到这样的评论
    • 我知道这是一条旧评论,但它仍然是一个常见问题解答,所以这里有一个资源:docs.scipy.org/doc/scipy/reference/…
    猜你喜欢
    • 1970-01-01
    • 2010-10-04
    • 2012-11-12
    • 2020-04-23
    • 2012-08-21
    • 2018-02-15
    • 2014-07-16
    • 2023-04-08
    • 1970-01-01
    相关资源
    最近更新 更多