2012-03-22 12 views
11

मुझे scipy.special पैकेज आयात करने में कोई समस्या है। यह हानिकारक नहीं है, सिर्फ परेशान/दिलचस्प है।scipy.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' 
>>> 

लेकिन मैं scipy.special और sp.special के माध्यम से विशेष मॉड्यूल का उपयोग कर सकते है, तो मैं तो import scipy.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'> 
>>> 

जब मैं import scipy as sp और उसके बाद का उपयोग कर scipy आयात sp.special उपयोग करने के लिए मैं कोशिश तो अब मेरे पास मॉड्यूल sp और scipy नामस्थान दोनों के माध्यम से सुलभ है। दिलचस्प बात यह है कि मैं scipy नेमस्पेस के माध्यम से शेष scipy तक पहुंच सकते हैं।

पहला प्रश्न: special मॉड्यूल पहली बार क्यों आयात नहीं करता है?

दूसरा प्रश्न: मैं कैसे scipy नाम स्थान को परिभाषित करने के बिना, केवल sp नाम स्थान के माध्यम से special मॉड्यूल के लिए उपयोग कर सकते हैं?

संपादित करें: अजगर 2.7.2 का उपयोग कर और scipy 0.10.1

उत्तर

15

डिफ़ॉल्ट रूप से, "आयात scipy" किसी भी सबपैकेज आयात नहीं करता। बड़े फोरट्रान एक्सटेंशन मॉड्यूल के साथ बहुत सारे उप-पैकेज हैं जो लोड होने में धीमे होते हैं। मैं import scipy या संक्षिप्त import scipy as sp करने की अनुशंसा नहीं करता हूं। यह सिर्फ बहुत उपयोगी नहीं है। from scipy import special, from scipy import linalg, आदि का उपयोग करें

+0

धन्यवाद, मैं भविष्य में इसे ध्यान में रखूंगा। क्या दस्तावेज़ों में कहीं भी है जो स्पष्ट रूप से यह कहता है? मैं [एपीआई] में ऐसी टिप्पणी नहीं देख सकता (http://docs.scipy.org/doc/scipy-0.10.1/reference/api.html) दस्तावेज़ –

+1

मुझे पता है कि यह एक पुरानी टिप्पणी है, लेकिन यह है अभी भी एक एफएक्यू है, तो यहां एक संसाधन है: http://docs.scipy.org/doc/scipy/reference/api.html#guidelines-for-importing-functions-from-scipy –

संबंधित मुद्दे