सारांश (tldr)
यदि आप चाहते हैं कि 'python3' कर्नेल हमेशा लॉन्च किए गए वातावरण से पायथन इंस्टॉलेशन को चलाए, तो उपयोगकर्ता 'python3' कर्नेल को हटाएं, जो कि वर्तमान वातावरण के साथ जो कुछ भी हो, उस पर पूर्वता ले रहा है:
jupyter kernelspec remove python3
पूर्ण समाधान
मैं निम्नलिखित मामले के लिए एक वैकल्पिक और सरल समाधान पोस्ट करने जा रहा हूं:
- आपने एक कोंडा वातावरण बनाया है
- इस वातावरण में ज्यूपिटर स्थापित किया गया है (जो ipykernel को भी स्थापित करता है)
- जब आप कमांड चलाते हैं
jupyter notebook
और 'न्यू' ड्रॉपडाउन मेनू में 'python3' पर क्लिक करके एक नया नोटबुक बनाते हैं, तो वह नोटबुक आधार वातावरण से अजगर को निष्पादित करता है, न कि वर्तमान वातावरण से।
- आप इसे पसंद करेंगे ताकि किसी भी वातावरण में 'python3' के साथ एक नई नोटबुक लॉन्च करने से उस वातावरण से पायथन संस्करण निष्पादित हो और आधार न हो
मैं बाकी समाधान के लिए पर्यावरण के लिए 'test_env' नाम का उपयोग करने जा रहा हूं। इसके अलावा, ध्यान दें कि 'python3' कर्नेल का नाम है।
वर्तमान में शीर्ष-मतदान जवाब काम करता है, लेकिन एक विकल्प है। यह निम्नलिखित करने के लिए कहता है:
python -m ipykernel install --user --name test_env --display-name "Python (test_env)"
इससे आपको यह परीक्षण करने का विकल्प मिलेगा कि आप किस परिवेश jupyter notebook
से लॉन्च करते हैं, पर्यावरण की जांच करें । लेकिन, 'python3' के साथ एक नोटबुक लॉन्च करना अभी भी आधार वातावरण से अजगर की स्थापना का उपयोग करेगा।
क्या संभावना है कि उपयोगकर्ता python3 कर्नेल मौजूद है। jupyter kernelspec list
अपने सभी वातावरणों को सूचीबद्ध करने के लिए कमांड चलाएँ । उदाहरण के लिए, यदि आपके पास एक मैक है तो आपको निम्नलिखित लौटा दिए जाएंगे (मेरा उपयोगकर्ता नाम टेड है)।
python3 /Users/Ted/Library/Jupyter/kernels/python3
ज्यूपिटर यहां क्या कर रहा है, गुठली की तलाश में तीन अलग-अलग रास्तों के माध्यम से खोज कर रहा है। यह उपयोगकर्ता से , Env से , सिस्टम में जाता है । प्रत्येक ऑपरेटिंग सिस्टम के लिए खोजे जाने वाले रास्तों पर अधिक विवरण के लिए यह दस्तावेज़ देखें ।
उपरोक्त दो गुठली दोनों उपयोगकर्ता पथ में हैं, जिसका अर्थ है कि वे उस पर्यावरण की परवाह किए बिना उपलब्ध होंगे जो आप से एक ज्यूपिटर नोटबुक लॉन्च करते हैं। इसका मतलब यह भी है कि अगर पर्यावरण स्तर पर एक और 'python3' कर्नेल है, तो आप इसे कभी एक्सेस नहीं कर पाएंगे।
मेरे लिए, यह अधिक समझ में आता है कि आपने जिस नोटबुक से नोटबुक लॉन्च किया था, उस वातावरण से 'python3' कर्नेल को चुनना उस वातावरण से अजगर को निष्पादित करना चाहिए।
आप यह देख सकते हैं कि आपके OS के लिए Env खोज पथ में देख कर आपके पास एक और 'python3' वातावरण है या नहीं (ऊपर डॉक्स के लिए लिंक देखें)। मेरे लिए (मेरे मैक पर), मैंने निम्नलिखित कमांड जारी की:
ls /Users/Ted/anaconda3/envs/test_env/share/jupyter/kernels
और मैं वास्तव में एक 'python3' कर्नेल वहाँ सूचीबद्ध था।
इस GitHub मुद्दे की टिप्पणी के लिए धन्यवाद (पहली प्रतिक्रिया देखें), आप निम्न आदेश के साथ उपयोगकर्ता 'python3' वातावरण को हटा सकते हैं:
jupyter kernelspec remove python3
अब जब आप दौड़ेंगे jupyter kernelspec list
, तो यह मानकर कि test_env अभी भी सक्रिय है, आपको निम्नलिखित मिलेंगे:
python3 /Users/Ted/anaconda3/envs/test_env/share/jupyter/kernels/python3
ध्यान दें कि यह पथ test_env निर्देशिका के भीतर स्थित है। यदि आप एक नया वातावरण बनाते हैं, तो ज्यूपिटर स्थापित करें, इसे सक्रिय करें और गुठली को सूचीबद्ध करें, आपको इसके पर्यावरण पथ में स्थित एक और 'पायथन 3' कर्नेल मिलेगा।
उपयोगकर्ता 'python3' कर्नेल किसी भी Env 'python3' कर्नेल पर पूर्वता ले रहा था। इसे हटाकर, सक्रिय वातावरण 'python3' कर्नेल को उजागर किया गया और हर बार चुना जा सकता है। यह कर्नेल को मैन्युअल रूप से बनाने की आवश्यकता को समाप्त करता है। यह सॉफ्टवेयर के विकास के संदर्भ में अधिक समझ में आता है, जहां कोई खुद को एकल वातावरण में अलग करना चाहेगा। एक कर्नेल चलाना जो होस्ट वातावरण से भिन्न है, स्वाभाविक नहीं लगता है।
यह भी लगता है कि यह उपयोगकर्ता 'python3' डिफ़ॉल्ट रूप से सभी के लिए स्थापित नहीं है, इसलिए हर कोई इस मुद्दे से सामना नहीं करता है।
conda install ipykernel
उस माहौल में भागो ।