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
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With