IPython नोटबुक में Python 2.x और Python 3.x दोनों का उपयोग करना


255

मैं IPython नोटबुक का उपयोग करता हूं और IPython में 2.x या 3.x python नोटबुक बनाने के लिए चयन करने में सक्षम होना चाहूंगा।

मेरे पास शुरू में एनाकोंडा था। एनाकोंडा के साथ एक वैश्विक पर्यावरण चर को यह चुनने के लिए बदलना पड़ा कि आप किस संस्करण में अजगर चाहते हैं और फिर आईपीथॉन को शुरू किया जा सकता है। यह वह नहीं है जिसकी मुझे तलाश थी इसलिए मैंने एनाकोंडा को अनइंस्टॉल कर दिया और अब MacPorts और PiP का उपयोग करके अपना स्वयं का इंस्टालेशन स्थापित किया है। ऐसा लगता है कि मुझे अभी भी उपयोग करना है

port select --set python <python version> 

अजगर 2.x और 3.x के बीच टॉगल करें। जो एनाकोंडा समाधान से बेहतर नहीं है।

वहाँ एक तरीका है कि आप अपने मौजूदा मैकपार्ट्स बिल्ड के साथ अधिमानतः IPython नोटबुक शुरू करने के बाद अजगर के किस संस्करण का उपयोग करना चाहते हैं?


2

जवाबों:


336

यहाँ विचार कई ipythonगुठली स्थापित करने का है । यहां एनाकोंडा के लिए निर्देश दिए गए हैं। यदि आप एनाकोंडा का उपयोग नहीं कर रहे हैं, तो मैंने हाल ही में शुद्ध virtualenvs का उपयोग करके निर्देश जोड़े हैं ।

एनाकोंडा> = 4.1.0

संस्करण 4.1.0 के बाद से, एनाकोंडा में एक विशेष पैकेज शामिल है जो nb_conda_kernelsनोटबुक गुठली के साथ कोंडा वातावरण का पता लगाता है और स्वचालित रूप से उन्हें पंजीकृत करता है। यह एक नया अजगर संस्करण का उपयोग करते हुए नए कॉन्डा वातावरण बनाने में आसान बनाता है:

conda create -n py27 python=2.7 ipykernel
conda create -n py36 python=3.6 ipykernel

जुपिटर नोटबुक के पुनः आरंभ के बाद, नई गुठली ग्राफिकल इंटरफ़ेस पर उपलब्ध हैं। कृपया ध्यान दें कि नए पैकेजों को नए वातावरण में स्पष्ट रूप से स्थापित किया जाना है। प्रबंध वातावरण conda के डॉक्स में अनुभाग में अधिक जानकारी प्रदान करता है।

मैन्युअल रूप से पंजीकरण गुठली

जो उपयोगकर्ता उपयोग नहीं करना चाहते हैं nb_conda_kernels एनाकोंडा के पुराने संस्करणों का या अभी भी उपयोग ipython kernels को मैन्युअल रूप से पंजीकृत करने के लिए निम्न चरणों का उपयोग कर सकते हैं।

python2.7पर्यावरण को कॉन्फ़िगर करें :

conda create -n py27 python=2.7
conda activate py27
conda install notebook ipykernel
ipython kernel install --user

python3.6पर्यावरण को कॉन्फ़िगर करें :

conda create -n py36 python=3.6
conda activate py36
conda install notebook ipykernel
ipython kernel install --user

उसके बाद आप के बीच चयन करने में सक्षम होना चाहिए python2
औरpython3 इंटरफ़ेस में एक नया नोटबुक बनाते समय ।

यदि आप अपने गुठली के नाम बदलना चाहते हैं, तो इसके अतिरिक्त --nameऔर --display-nameविकल्प पास कर सकते हैं ipython kernel installipython kernel install --helpअधिक informations के लिए देखें ।


आपका समाधान बहुत कुछ दिखता है जिस समाधान का मैंने उपयोग किया है और सिद्धांत रूप में मैं यह काम करने की उम्मीद करूंगा। चूंकि मैंने पहले ही एनाकोंडा की स्थापना रद्द कर दी थी और मुझे यह काम मिल गया था, इसलिए मैं सत्यापित नहीं कर पा रहा था।
प्रताप

9
यदि आप रूट की आवश्यकता के बिना कर्नेलस्पेस सेट करना चाहते हैं, तो आप ipython kernelspec install-self --userउन्हें वर्तमान उपयोगकर्ता के लिए स्थापित करने के लिए कर सकते हैं।
थॉमस के

1
मैंने इसका पता लगा लिया है! आपके उत्तर ने मदद की! dropbox.com/s/6ayqf55ctkv2xgk/…
चतुर प्रोग्रामर

7
मुख्य आइटम यह है कि आपको INSTALL करना चाहिए nb_conda_kernels यह मेरे प्रारंभिक एनाकोंडा के साथ नहीं आया था! धन्यवाद!
डार्टडॉग

1
@ एलएस, वास्तव में मैं जिस वातावरण से जुपिटर शुरू करता हूं, उसमें डिफ़ॉल्ट रूप से स्थापित nb_conda_kernels नहीं है। मैंने सभी टिप्पणियों को पढ़ने के लिए समय नहीं लिया: शायद आप अपने उत्तर को संपादित कर सकते हैं और डार्टडॉग के रीमेक को शामिल कर सकते हैं।
एंटोनी गौटियर

276

यदि आप अजगर 3 पर जुपिटर चला रहे हैं , तो आप इस तरह से पायथन 2 कर्नेल सेट कर सकते हैं:

python2 -m pip install ipykernel

python2 -m ipykernel install --user

http://ipython.readthedocs.io/en/stable/install/kernel_install.html


52
'3' के लिए '2' स्विच करें यदि आपके पास पहले से ही python2 है और python3 की आवश्यकता है। मुझे समझ में नहीं आता कि यह शीर्ष उत्तर क्यों नहीं है, यह निश्चित रूप से ओकाम के रेजर द्वारा जीतता है और यह मेरे लिए काम करता है।
wordforthewise

6
अच्छी तरह से काम। वास्तव में पहला उत्तर होना चाहिए।
JSmyth

2
अजगर में ही python2 कमांड शामिल है? कृपया इस उत्तर की कुछ व्याख्या विस्तृत रूप से दें। :)
verystrongjoe

3
यह काम करता है, लेकिन यह अतिरिक्त पैकेज के साथ मेरे सिस्टम अजगर 2 से जुड़ा नहीं है। क्या एक मौजूदा अजगर बाइनरी / निष्पादन योग्य से लिंक करने का एक तरीका है?
रटगेर हॉस्टेस्ट

1
पूरी तरह से win10 में काम करता है, बस के python2साथ बदलें your\path\to\python(2).exe
लुसिएन

42

ये निर्देश बताते हैं कि गैर-एनाकोंडा उपयोगकर्ताओं के लिए अलग-अलग आभासी वातावरण में python2 और python3 कर्नेल कैसे स्थापित करें। यदि आप एनाकोंडा का उपयोग कर रहे हैं, तो कृपया एनाकोंडा के सीधे समाधान के लिए मेरे दूसरे उत्तर को ढूंढें ।

मुझे लगता है कि आप पहले से ही jupyter notebookस्थापित है।


पहले सुनिश्चित करें कि आपके पास उपलब्ध के साथ एक python2और एक python3दुभाषिया pipहै।

Ubuntu पर आप इन द्वारा स्थापित होगा:

sudo apt-get install python-dev python3-dev python-pip python3-pip

अगला कर्नेल वातावरण तैयार और पंजीकृत करें

python -m pip install virtualenv --user

# configure python2 kernel
python -m virtualenv -p python2 ~/py2_kernel
source ~/py2_kernel/bin/activate
python -m pip install ipykernel
ipython kernel install --name py2 --user
deactivate

# configure python3 kernel
python -m virtualenv -p python3 ~/py3_kernel
source ~/py3_kernel/bin/activate
python -m pip install ipykernel
ipython kernel install --name py3 --user
deactivate

चीजों को आसान बनाने के लिए, आप शेल शेल फाइल में सक्रियण कमांड के लिए शेल उपनाम जोड़ना चाह सकते हैं। आपके द्वारा उपयोग किए जाने वाले सिस्टम और शेल के आधार पर, यह उदाहरण के लिए ~/.bashrc, ~/.bash_profileया हो सकता है~/.zshrc

alias kernel2='source ~/py2_kernel/bin/activate'
alias kernel3='source ~/py3_kernel/bin/activate'

अपने शेल को पुनः आरंभ करने के बाद, अब आप उस वातावरण को सक्रिय करने के बाद नए पैकेज स्थापित कर सकते हैं जिसे आप उपयोग करना चाहते हैं।

kernel2
python -m pip install <pkg-name>
deactivate

या

kernel3
python -m pip install <pkg-name>
deactivate

इसके बाद डॉट को स्थापित किया, पंडों को स्थापित किया, ज्यूपिटर शुरू किया, पी 3 कर्नेल पर स्विच किया: आयात पंडों को 'नहीं मिला' त्रुटि के साथ विफल हो गया। यह मुझे
बोनर्स

1
@ user1255933, गलत पाइप संस्करण के साथ स्थापित होने के कारण यह संभव है। यह तब हो सकता है जब लक्ष्य वातावरण को सक्रिय करने में विफल रहा है या इसमें एक पाइप संस्करण नहीं है। आपको मेरा जवाब यहाँ दिलचस्प लग सकता है: stackoverflow.com/questions/32680081/…
cel

कर्नेल स्थापित करने के लिए गैर-एनाकोंडा तरीके का उपयोग करने के निर्देश के लिए धन्यवाद
mdivk

37

नोटबुक / जुपिटर के वर्तमान संस्करण के साथ, आप पायथन 3 कर्नेल बना सकते हैं । पायथन 2 के साथ कमांड लाइन से एक नया नोटबुक एप्लिकेशन शुरू करने के बाद, आपको ड्रॉपडाउन मेनू में एक प्रविष्टि „पायथन 3" देखना चाहिए "नया"। यह आपको एक नोटबुक देता है जो पायथन 3 का उपयोग करता है। इसलिए आपके पास अलग-अलग पायथन संस्करणों के साथ दो नोटबुक हो सकते हैं।

विवरण

  1. इस निर्देशिका बनाएँ: mkdir -p ~/.ipython/kernels/python3
  2. ~/.ipython/kernels/python3/kernel.jsonइस सामग्री के साथ यह फ़ाइल बनाएँ :

    {
        "display_name": "IPython (Python 3)", 
        "language": "python", 
        "argv": [
            "python3", 
            "-c", "from IPython.kernel.zmq.kernelapp import main; main()", 
            "-f", "{connection_file}"
        ], 
        "codemirror_mode": {
            "version": 2, 
            "name": "ipython"
        }
    }
  3. नोटबुक सर्वर को पुनरारंभ करें।

  4. ड्रॉपडाउन मेनू से „पायथन 3" चुनें "नया"
  5. पायथन 3 नोटबुक के साथ काम करें
  6. ड्रॉपडाउन मेनू से „पायथन 2" चुनें "नया"
  7. पायथन 2 नोटबुक के साथ काम करें

यह बहुत अच्छा है और मैं उस काम को पाने की कोशिश कर रहा हूं, लेकिन क्या आप बता सकते हैं कि आप jupyterइस परिदृश्य में कैसे शुरू करते हैं (मुझे या तो दौड़ना है ipython notebookया ipython3 notebook)। अभी मैं केवल एक या दूसरे (अपने संबंधित वातावरण के साथ) चला सकता हूं, लेकिन मुझे अंदर सूचीबद्ध दोनों गुठली दिखाई देती हैं jupyter। क्या आप शायद अपने जवाब का विस्तार कर सकते हैं कि इसमें कैसे शुरू करें jupyterताकि मैं चला सकूं python2और python3साइड-बाय-साइड हो सके! धन्यवाद!
क्रिस

1
ठीक है, मुझे लगता है कि मुझे यह समझ में आया - मुझे kernel.jsonफ़ाइल ~/Library/Jupyter/kernels/python3/को ओएस एक्स पर अंदर समायोजित करना था और लिंक की गई फ़ाइल में वर्णित तर्कों को जोड़ना था।
क्रिस

@ क्रिस हाँ, जबकि लिंक के पीछे का विवरण IPython नोटबुक में दिया गया है, यह एक संपादक में किया जा सकता है। किसी दिए गए पथ पर और दिखाए गए सामग्री पर बस एक निश्चित नाम के साथ एक फ़ाइल बनाएं या संशोधित करें। खुशी है कि आपने अपनी समस्या हल कर ली।
माइक मूलर

मैं उस लिंक से विवरण शामिल करने के लिए आपके उत्तर को संपादित करने की सिफारिश करूंगा। उत्तर को एक लिंक के पीछे सबसे महत्वपूर्ण भाग "छिपा" नहीं रखना चाहिए।
क्रिस

1
@ क्रिस लिंक से विवरण जोड़ा गया।
माइक म्यूलर

22

एक समाधान उपलब्ध है जो मुझे Ipython kernelspec को कॉन्फ़िगर करके अपने MacPorts की स्थापना रखने की अनुमति देता है।

आवश्यकताएँ:

  • MacPorts सामान्य / ऑप्ट निर्देशिका में स्थापित है
  • अजगर 2.7 macports के माध्यम से स्थापित किया गया है
  • अजगर 3.4 मैकपोर्ट्स के माध्यम से स्थापित किया गया है
  • इथनथॉन को अजगर 2.7 के लिए स्थापित किया गया है
  • इथनथॉन को अजगर 3.4 के लिए स्थापित किया गया है

अजगर के लिए 2. x:

$ cd /opt/local/Library/Frameworks/Python.framework/Versions/2.7/bin
$ sudo ./ipython kernelspec install-self

अजगर 3.x के लिए:

$ cd /opt/local/Library/Frameworks/Python.framework/Versions/3.4/bin
$ sudo ./ipython kernelspec install-self

अब आप Ipython नोटबुक खोल सकते हैं और फिर एक अजगर 2.x या अजगर 3.x नोटबुक चुनें।

अपना अजगर चुनें!


क्या आप कृपया पुष्टि कर सकते हैं कि आप एक ही उदाहरण में साइड-बाय-साइड चला सकते हैं python2और python3कर्नेल नोटबुक कर सकते हैं jupyter? इस मामले में, आप वास्तव jupyterमें परस्पर विरोधी रास्ते नहीं बनाना शुरू करते हैं । मैं वर्तमान में python2या तो पहले से ही python3उपयुक्त $PATH $PYTHONPATHवातावरण स्थापित करके चला सकता हूं या कोड कर सकता हूं । क्या मैं इससे किसी तरह बच सकता हूं?
क्रिस

मैं या तो python2 या python3 कर्नेल नोटबुक चला सकता हूं।
18

आप कैसे शुरू करते हैं jupyter(यह देखते हुए कि यह python 2.7और इसके लिए स्थापित है python 3.4) क्या आपने $ PYTHONPATH को परिभाषित किया है या कुछ आभासी वातावरण में खट्टे हैं? क्या आप फोन कर रहे हैं ipython notebook? यदि हां, तो ipythonवह कौन सा है - 2.7 या 3.4 के लिए स्थापित?
क्रिस

मैं सिर्फ फोन कर रहा हूं python notebookwhich ipythonशो है कि यह की ओर इशारा करते है/opt/local/Library/Frameworks/Python.framework/Versions/3.4/bin/ipython
deltap

ठीक है, मैंने अपनी समस्या का पता लगा लिया और इसे पूर्व-परिभाषित के साथ करना पड़ा $PYTHONPATH, जिससे गुठली को बदलना मुश्किल हो गया। मुझे unset PYTHONPATHशुरू करने से पहले ipythonऔर अब यह काम करता है।
क्रिस

18

मेरी लिनक्स स्थापना से मैंने किया:

sudo ipython2 kernelspec install-self

और अब मेरा अजगर 2 सूची में वापस आ गया है।

संदर्भ:

http://ipython.readthedocs.org/en/latest/install/kernel_install.html


अपडेट करें:

ऊपर दिया गया तरीका अब हटा दिया गया है और भविष्य में इसे हटा दिया जाएगा। नई विधि होनी चाहिए:

sudo ipython2 kernel install


2
मुझे अपने उबंटू इंस्टॉल में बेतरतीब ढंग से चिपकाने वाली कमांड से नफरत है, लेकिन यह मेरे लिए काम करता है।
यूसुफ

1
चुना हुआ उत्तर होना चाहिए।
e9t

1
संक्षेप में और इस बिंदु पर, मैंने मैक ओएस एक्स पर इस समाधान को लागू किया है, बिना किसी समस्या के काम करता है।
कोनराड

1
मैंने सारे जवाब आजमाए। लेकिन यह मेरे लिए काम कर गया। यदि आप ubuntu पर हैं, तो इसे आज़माएँ।
सिनसुरेन

1
और मैं जहां मिलता है ipython2?
सूदो

5

निम्न चरणों में ज्यूपिटर नोटबुक में python2 कर्नेल जोड़ने के चरण दिए गए हैं ::

एक टर्मिनल खोलें और एक नया अजगर 2 वातावरण बनाएं: conda create -n py27 python=2.7

पर्यावरण को सक्रिय करें: लिनक्स source activate py27या विंडोज़activate py27

Env में कर्नेल स्थापित करें: conda install notebook ipykernel

env के बाहर कर्नेल स्थापित करें: ipython kernel install --user

env को बंद करें: source deactivate

हालांकि एक देर से जवाब उम्मीद है कि किसी को यह उपयोगी लगता है: पी


इससे आगे कुछ भी नहीं जोड़ा गया है जो पहले से ही @ सीएल के उत्तर में स्पष्ट रूप से कहा गया था ।
19

3

sudo pip3 install jupyterPython3 के लिए jupyter स्थापित करने के लिए और python2 के लिए sudo pip install jupyterjupyter नोटबुक स्थापित करने के लिए उपयोग करें । फिर, आप ipython kernel installजुपिटर नोटबुक से चुनने के लिए दोनों प्रकार के नोटबुक को सक्षम करने के लिए कमांड कॉल कर सकते हैं ।


1

मैंने इस उत्कृष्ट जानकारी को देखा और तब से आश्चर्यचकित हो गया

  1. मेरे पास python2, python3 और IPython सभी स्थापित हैं,
  2. मैंने PyCharm स्थापित किया है,
  3. PyCharm अपने पायथन कंसोल के लिए IPython का उपयोग करता है,

अगर Pyharm प्रयोग करेंगे

  1. IPython-py2 जब मेनू> फ़ाइल> सेटिंग्स> परियोजना> परियोजना व्याख्याकार == py2 AND
  2. IPython-py3 जब मेनू> फ़ाइल> सेटिंग्स> प्रोजेक्ट> प्रोजेक्ट इंटरप्रेटर == py3

उत्तर: हाँ!

PS i में विंडोज के लिए पायथन लॉन्चर स्थापित है।


0

विंडोज 7 के तहत मुझे एनाकोंडा और एनाकोंडा 3 स्थापित किया गया था। मैं चला गया \Users\me\anaconda\Scriptsऔर निष्पादित किया गया

sudo .\ipython kernelspec install-self

फिर मैं चला गया \Users\me\anaconda3\Scriptsऔर निष्पादित किया गया

sudo .\ipython kernel install

(मुझे मिला jupyter kernelspec install-self is DEPRECATED as of 4.0. You probably want 'ipython kernel install' to install the IPython kernelspec. )

jupyter notebook(एनाकोंडा 3) शुरू करने के बाद मुझे "नया" के तहत ऊपरी दाएं कोने में एक साफ ड्रॉपडाउन मेनू मिला, जिससे मुझे पायथन 2 ओडर पायथन 3 कर्नेल के बीच चयन करने की अनुमति मिली।


0
  • यदि आप वर्चुअल वातावरण में एनाकोंडा चला रहे हैं।
  • और जब आप एक नई नोटबुक बनाते हैं, लेकिन मैं आभासी पर्यावरण कर्नेल का चयन करने के लिए नहीं दिखा रहा हूं।
  • फिर आपको निम्नलिखित कमांड का उपयोग करके इसे ipykernel में सेट करना होगा
$ pip install --user ipykernel
$ python -m ipykernel install --user --name=test2
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.