2013-12-11 11 views
9

ipython --pylab वास्तव में क्या करता है?ipython --pylab बनाम ipython

ipython --pylabबिल्कुल के बराबर है:

> ipython 
> from pylab import * 

यदि नहीं, तो मतभेद क्या हैं?

मैं इसे कैसे एक ही राज्य के लिए ला सकता है के रूप में अगर मैं--pylab साथ यह शुरू किया था मैं बिना--pylab तर्क IPython लांच कहो,?

+1

मुझे लगता है कि '--pylab' ध्वज के लिए प्रोत्साहन बनाने के लिए था' एक MATLAB क्लोन ipython', तो MATLAB उपयोगकर्ताओं स्विचिंग पायथन/numpy/scipy/matplotlib को 'आयात' कथन से निपटना नहीं होगा। – SethMMorton

उत्तर

20

--pylab[=option] लगभग है तकनीकी रूप से %pylab option के बराबर है कि आप --pylab कर्नेल को अन-पिलैब नहीं कर सकते हैं, लेकिन आप %pylab कर्नेल को पुनरारंभ कर सकते हैं।

%pylab थोड़ा और अधिक है कि बस from pylab import * (एक लंबे समय तक स्पष्टीकरण के लिए %pylab? देखें) है, लेकिन संक्षेप में हाँ यह बहुत कुछ (क्यूटी, wx, OSX ...) का आयात करता है, लेकिन यह भी घटना छोरों हुक और सेट matplotlib के लिए कुछ डिस्प्ले हुक (चीजें जो जादुई रूप से आपको इनलाइन ग्राफ प्राप्त करने की अनुमति देती हैं)। यदि आप सोचते हैं तो डिस्प्ले-हुक सेट करना sympy.init_printing() जैसा कुछ है।

ध्यान दें कि आईपीथन 1.0 से शुरू होने पर हम --pylab या %pylab (जब तक आप वास्तव में निहितार्थ नहीं जानते) का उपयोग न करने की सलाह देते हैं। हम %matplotlib प्रदान करते हैं जो केवल प्रदर्शन हुक में प्रवेश करता है। %pylab आपको चेतावनी देगा यदि यह वर्तमान नामस्थान में कुछ ऑब्जेक्ट को प्रतिस्थापित करता है, और कौन सा। यह विशेष रूप से sum जैसे कार्यों के लिए उपयोगी है, जिसमें पिल्लाब के साथ और बिना व्यवहार का व्यवहार समान होता है और सूक्ष्म बग की ओर जाता है।

हम अब मानते हैं कि --pylab एक गलती थी, लेकिन यह अभी भी आईपीथन की शुरुआत में उपयोगी था। हम सभी जानते हैं कि Explicit is better than implicit इसलिए यदि आप लोगों को सलाह दे सकते हैं कि %pylab का उपयोग न करें, तो हम इसकी सराहना करेंगे, एक दिन से इसे छुटकारा पाने के लिए। % Pylab मदद से

निकालें कि pylab का ही आयात हिस्सा दे:

%pylab makes the following imports:: 

import numpy 
import matplotlib 
from matplotlib import pylab, mlab, pyplot 
np = numpy 
plt = pyplot 

from IPython.display import display 
from IPython.core.pylabtools import figsize, getfigs 

from pylab import * 
from numpy import * 
2

मुझे लगता है कि कमांड लाइन पर --pylab विकल्प %pylab जादू का उपयोग करने के बराबर है। कम से कम इस तरह मैंने इसका इस्तेमाल किया है। यही कारण है कि यह भी आप, साजिश रचने बैकएंड का चयन करने का अवसर देता है यानी %pylab inline, %pylab qt, आदि

3

इंटरैक्टिव साजिश है, जो आप के साथ गतिशील सक्षम कर सकते हैं आयात के अलावा एक उल्लेखनीय अंतर है:

import matplotlib 
matplotlib.rcParams['interactive'] = True 
+0

या 'ipython --matplotlib' जो बैकएंड सेट करता है और इसे इंटरैक्टिव बनाता है, लेकिन सभी पिलैब सामान आयात किए बिना। – askewchan