Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

scipy.special import issue

Tags:

python

scipy

I have an issue with importing the scipy.special package. It isn't harmful, just annoying/interesting.

When I import scipy using import scipy as sp and then try to access sp.special I get:

>>> import scipy as sp >>> sp.special Traceback (most recent call last):   File "<stdin>", line 1, in <module> AttributeError: 'module' object has no attribute 'special' >>> 

but if I then do import scipy.special I can access the special module through scipy.special and 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'> >>> 

So I now have the special module accessible through both sp and scipy namespaces. The interesting bit is that I can access the rest of scipy through the scipy namespace.

First question: Why does the special module not import first time round?

Second question: How can I get access to the special module through the sp namespace only, without defining the scipy namespace?

Edit: using Python 2.7.2 and scipy 0.10.1

like image 938
Iain Rist Avatar asked Mar 22 '12 09:03

Iain Rist


1 Answers

By default, "import scipy" does not import any subpackage. There are too many subpackages with large Fortran extension modules that are slow to load. I do not recommend doing import scipy or the abbreviated import scipy as sp. It's just not very useful. Use from scipy import special, from scipy import linalg, etc.

like image 198
Robert Kern Avatar answered Oct 13 '22 01:10

Robert Kern