สภาพแวดล้อม Conda ไม่แสดงขึ้นใน Jupyter Notebook


363

ผมติดตั้งงู (กับงูหลาม 2.7) และการติดตั้ง Tensorflow tensorflowในสภาพแวดล้อมที่เรียกว่า ฉันสามารถนำเข้า Tensorflow ได้สำเร็จในสภาพแวดล้อมนั้น

ปัญหาคือ Jupyter Notebook ไม่รู้จักสภาพแวดล้อมใหม่ที่ฉันเพิ่งสร้างขึ้น ไม่ว่าฉันจะเริ่มต้น Jupyter โน๊ตบุ๊คจาก GUI Navigator หรือจากบรรทัดคำสั่งภายในtensorflow env มีเพียงหนึ่งเคอร์เนลในเมนูที่เรียกว่าPython [Root]และ Tensorflow ไม่สามารถนำเข้า แน่นอนฉันคลิกตัวเลือกนั้นหลายครั้งไฟล์ที่บันทึกเปิดใหม่ แต่สิ่งเหล่านี้ไม่ได้ช่วย

น่าแปลกที่ฉันเห็นสภาพแวดล้อมทั้งสองเมื่อฉันเปิดCondaแท็บที่หน้าแรกของ Jupyter แต่เมื่อฉันเปิดFilesแท็บและลองไปnewที่โน้ตบุ๊กฉันยังคงลงเอยด้วยเคอร์เนลเพียงอันเดียว

ฉันดูคำถามนี้: เชื่อมโยงสภาพแวดล้อม Conda กับโน๊ตบุ๊ค Jupyter แต่ไม่มีไดเรกทอรีเช่นเดียว~/Library/Jupyter/kernelsกับในคอมพิวเตอร์ของฉัน! ไดเรกทอรี Jupyter runtimeนี้มีเพียงหนึ่งไดเรกทอรีย่อยที่เรียกว่า

ฉันสับสนจริงๆ สภาพแวดล้อมของ Conda ควรจะกลายเป็นเมล็ดข้าวโดยอัตโนมัติหรือไม่? (ฉันติดตามhttps://ipython.readthedocs.io/en/stable/install/kernel_install.htmlเพื่อตั้งค่าเมล็ดด้วยตนเอง แต่ไม่ได้รับการแจ้งว่าipykernelไม่พบ)


43
ทำงานconda install ipykernelในสภาพแวดล้อมนั้น
โทมัส K

1
conda install ipykernelดูเหมือนว่าจะติดตั้งjupyterในสภาพแวดล้อม ... ฉันขาดอะไรไปหรือเปล่า?
Dror

1
ipykernel สันนิษฐานว่ามี jupyter เป็นการพึ่งพาหรือไม่
kevinkayaks

1
ดูเหมือนจะไม่ทำงานอีกต่อไป ... ดูคำตอบด้านล่างจาก Andreas
Casey L

@ThomasK สามารถใช้งานได้ต่อเมื่อnb_condaมีการใช้งานหรือหากเคอร์เนลตั้งค่าด้วยตนเองตามที่แนะนำในคำถาม ไม่งั้นมันจะเลอะสิ่งต่าง ๆ มากมาย ปฏิบัติการjupyterจะชี้ไปที่ปฏิบัติการภายในสภาพแวดล้อม แต่ระบบjupyter-notebookจะเริ่มต้น (หากติดตั้ง) และดังนั้นจึงไม่ใช้สภาพแวดล้อมด้วยเคอร์เนลเริ่มต้น
lumbric

คำตอบ:


542

ฉันไม่คิดว่าคำตอบอื่น ๆ จะทำงานได้อีกต่อไปเนื่องจาก conda หยุดการตั้งค่าสภาพแวดล้อมโดยอัตโนมัติเป็น jupyter kernels คุณต้องเพิ่มเมล็ดด้วยตนเองสำหรับแต่ละสภาพแวดล้อมด้วยวิธีต่อไปนี้:

source activate myenv
python -m ipykernel install --user --name myenv --display-name "Python (myenv)"

ดังที่บันทึกไว้ที่นี่: http://ipython.readthedocs.io/en/stable/install/kernel_install.html#kernels-for-different-environment เห็นปัญหานี้ด้วย

ภาคผนวก: คุณควรจะสามารถติดตั้งnb_conda_kernelsแพคเกจด้วยconda install nb_conda_kernelsเพื่อเพิ่มสภาพแวดล้อมทั้งหมดโดยอัตโนมัติดูhttps://github.com/Anaconda-Platform/nb_conda_kernels


28
เป็นไปได้ไหมที่การติดธงทำเครื่องหมายเป็นวิธีการแก้ไขที่ทันสมัยที่สุด ณ วันนี้
N. CHATURV3DI

1
สิ่งนี้ใช้ได้สำหรับฉันเท่านั้น! conda ติดตั้ง nb_conda - ไม่ได้ช่วย ขอบคุณ!
Deil

2
การติดตั้งnb_conda_kernelsทำงานสำหรับฉัน ณ เมษายน 2018 ( Python 3.6.4, conda 4.3.27, jupyter 4.4.0)
wflynny

3
การแก้ไขความคิดเห็นก่อนหน้าของฉัน: env ใหม่ไม่แสดงเฉพาะในครั้งแรก หลังจากที่คุณปิดใช้งานและเปิดใช้งาน env อีกครั้งจากนั้นเปิด jupyter จากนั้นจะแสดงขึ้นอย่างถูกต้อง
R71

23
หากวิธีนี้ใช้ไม่ได้กับคุณลองใช้conda install ipykernelคำตอบนี้สมมติว่าคุณได้ติดตั้งไว้ในสภาพแวดล้อมของคุณแล้ว
Ken Myers

150

หากสภาพแวดล้อมของคุณไม่ปรากฏขึ้นคุณอาจไม่ได้nb_conda_kernelsติดตั้งในสภาพแวดล้อมที่ติดตั้ง Jupyter เอกสารของอนาคอนดาระบุไว้ว่า

nb_conda_kernelsควรติดตั้งในสภาพแวดล้อมที่คุณเรียกใช้ Jupyter Notebook หรือ JupyterLab นี่อาจเป็นสภาพแวดล้อมฐานของคุณ แต่ไม่จำเป็นต้องเป็น ตัวอย่างเช่นหากสภาพแวดล้อม notebook_env มีแพคเกจโน้ตบุ๊คคุณจะต้องทำงาน

conda install -n notebook_env nb_conda_kernels

สภาพแวดล้อมอื่นใดที่คุณต้องการเข้าถึงในโน้ตบุ๊กของคุณต้องมีการติดตั้งแพ็คเกจเคอร์เนลที่เหมาะสม ตัวอย่างเช่นในการเข้าถึงสภาพแวดล้อม Python จะต้องมีแพ็คเกจ ipykernel เช่น

conda install -n python_env ipykernel

ในการใช้สภาพแวดล้อม R นั้นจะต้องมีแพ็คเกจ r-irkernel เช่น

conda install -n r_env r-irkernel

สำหรับภาษาอื่นต้องติดตั้งเมล็ดที่เกี่ยวข้อง

โปรดทราบว่าในเวลาเดิมโพสต์นี้มีความเป็นไปได้จากสาเหตุnb_condaยังไม่สนับสนุนหลาม 3.6 สภาพแวดล้อม

หากโซลูชันอื่นล้มเหลวในการทำให้ Jupyter จดจำสภาพแวดล้อม conda อื่น ๆ คุณสามารถติดตั้งและเรียกใช้jupyterจากภายในสภาพแวดล้อมที่ระบุได้เสมอ คุณอาจไม่สามารถมองเห็นหรือเปลี่ยนไปใช้สภาพแวดล้อมอื่นจากภายใน Jupyter ได้

$ conda create -n py36_test -y python=3.6 jupyter
$ source activate py36_test
(py36_test) $ which jupyter
/home/schowell/anaconda3/envs/py36_test/bin/jupyter
(py36_test) $ jupyter notebook

สังเกตเห็นว่าฉันกำลังใช้งาน Python 3.6.1 ในสมุดบันทึกนี้: ป้อนคำอธิบายรูปภาพที่นี่

โปรดทราบว่าถ้าคุณทำเช่นนี้กับสภาพแวดล้อมหลาย ๆ พื้นที่พื้นที่จัดเก็บเพิ่มเติมจากการติดตั้ง Jupyter ในทุกสภาพแวดล้อมอาจไม่พึงประสงค์ (ขึ้นอยู่กับระบบของคุณ)


สวัสดีขออภัยที่จะเปิดกระทู้นี้อีกครั้ง อย่างไรก็ตามฉันพยายามทุกอย่างตามที่แนะนำที่นี่และยังไม่เห็น tensorflow env ในจูปีเตอร์ ฉันมี jupyter ติดตั้งใน tensorflow env ฉันติดตั้ง python 3.6.1 แล้ว ฉันลองติดตั้ง conda nb_conda แต่มันบอกว่าขัดแย้งกับ py3.6 ดังนั้นที่ไม่ได้รับการติดตั้งส่วนที่เหลือทุกอย่างอื่นฉันได้ลองและดูเหมือนจะไม่ คำแนะนำใด ๆ?
Baktaawar

ตกลง. ฉันตรวจสอบอีกครั้ง ปัญหาของฉันคือ jupyter ของฉันเมื่อเปิดขึ้นด้วยเคอร์เนล Python 3 ไม่สามารถนำเข้าโมดูลใด ๆ ฉันไม่แน่ใจว่าทำไมเป็นอย่างนั้น และมันจะไม่แสดง env อื่น ๆ ด้วย
Baktaawar

2
@Baktaawar ดูคำตอบที่อัปเดตของฉันสาธิตวิธีใช้ python 3.6 ในโน้ตบุ๊ก คุณสามารถเรียกใช้สภาพแวดล้อม python 3.6 คุณเพียงแค่ต้องเริ่มต้น jupyter เมื่อสภาพแวดล้อมนั้นทำงาน สภาพแวดล้อมของ Conda สามารถพิจารณาได้ว่าเป็นการติดตั้ง Python ในตัวเอง หากคุณติดตั้ง Jupyter ในระบบของคุณคุณจะเห็นเพียงหนึ่งตัวเลือกของเคอร์เนลหลาม nb_condaจุดประสงค์คือเพื่อ "[ให้] สภาพแวดล้อม Conda และส่วนขยายการเข้าถึงแพ็คเกจจากภายใน Jupyter" เท่านั้นไม่ทำให้คุณสามารถเรียกใช้ Jupyter ได้จากการติดตั้ง Python ที่คุณเลือก
สตีเวนซีโฮเวล

1
@ StevenCHowell ขอบคุณสำหรับการจัดการข้อกังวลของฉัน ฉันคิดว่าคุณยังต้องพูดถึงว่าipykernelจะต้องมีการติดตั้งในแต่ละ env ที่คุณต้องการใช้เป็นเคอร์เนล
merv

1
อืมฉันไม่แน่ใจว่าทำไมมันถึงทำงานไม่ได้ คุณถูกต้องพวกเขาระบุไว้อย่างชัดเจนว่าควรติดตั้ง ฉันได้เพิ่มเข้าไปในคำตอบของฉัน ขอบคุณ!
สตีเวนซีโฮเวล

112

สิ่งที่น่ารำคาญคือในtensorflowสภาพแวดล้อมของคุณคุณสามารถทำงานได้jupyter notebook โดยไม่ต้องติดตั้งjupyterในสภาพแวดล้อมนั้น เพียงแค่วิ่ง

(tensorflow) $ conda install jupyter

และtensorflowสภาพแวดล้อมในขณะนี้ควรจะมองเห็นได้ใน Jupyter โน้ตบุ๊คเริ่มต้นในใด ๆ ของคุณสภาพแวดล้อมที่เป็นสิ่งที่ชอบcondaPython [conda env:tensorflow]


6
ฉันมีปัญหาเช่นเดียวกับโทมัสเคและการแก้ปัญหาร่วมกันโดยออคตาเวียสก็แก้ปัญหาของฉันได้เช่นกัน อย่างไรก็ตามมีหนึ่ง catch ถ้าคุณมี Anaconda เวอร์ชัน Python 3 คุณจะสามารถเห็นเฉพาะสภาพแวดล้อมที่แอ็คทีฟปัจจุบันของคุณเท่านั้นและควรมี Jupyter เป็นของตัวเอง แต่ถ้าคุณติดตั้ง Anaconda รุ่น Python 2 มันสามารถจัดการกับสภาพแวดล้อมได้ทั้งหมด
rkmalaiya

6
คุณสามารถทำ "conda install nb_conda" ได้เช่นกันในแอนาคอนดารุ่น Python2 เพื่อจัดการ envs ของคุณจาก Jupyter
rkmalaiya

7
@rkmalaiya ถูกต้อง หากคุณใช้ Miniconda3 หรือ Anaconda3 conda install nb_condaของคุณให้ทำงานในสภาพแวดล้อมที่มีแหล่งข้อมูลแหล่งหนึ่ง (ซึ่งมีการติดตั้งโน้ตบุ๊ก jupyter) จากนั้นคุณสามารถสลับ kernels / conda envs ในเบราว์เซอร์โน๊ตบุ๊ค jupyter
Harsha Manjunath

1
สามารถรายงานวิธีนี้ใช้งานได้ใน Sep 2018 ด้วย Anaconda 5.2 Python 3.6
jdr5ca

13
นี่เป็นคำตอบที่แย่มากเพราะมันกระตุ้นให้ผู้ใช้ติดตั้ง Jupyter ในทุก ๆ env ซึ่งไม่จำเป็นเลย เหตุผลที่ว่าทำไมการทำงานนี้คือการที่ipykernel(ซึ่งเป็นสิ่งที่จำเป็นเท่านั้นจริง) jupyterเป็นพึ่งพาของ
merv

72

ฉันต้องเรียกใช้คำสั่งทั้งหมดที่กล่าวถึงในคำตอบ 3 อันดับแรกเพื่อให้การทำงานนี้:

conda install jupyter
conda install nb_conda
conda install ipykernel
python -m ipykernel install --user --name mykernel

9
นี่คือสิ่งที่ทำงานให้ฉันเช่นกัน แต่ฉันไม่ต้องการconda install nb_conda
Ken Myers

3
การกลั่นที่น่าทึ่ง!
Bao-Tin Hoang

1
ฉันต้องการคำสั่ง 3 คำสั่งแรกเพื่อแสดงเคอร์เนลของสภาพแวดล้อมเป็นตัวเลือกเมื่อฉันเรียกใช้jupyter labภายในสภาพแวดล้อมเฉพาะนั้น
Igor Fobia

3
ทำงานให้ฉันด้วย พระเจ้าของฉันนี้น่าผิดหวังที่คิดออก
Trevor Bye

4
คุณไม่ต้องการ nb_conda! ;)
Prayson W. Daniel

48

เพียงแค่เรียกใช้conda install ipykernelในสภาพแวดล้อมใหม่ของคุณเท่านั้นจากนั้นคุณจะได้รับเคอร์เนลด้วย env นี้ สิ่งนี้ใช้ได้แม้ว่าคุณจะมีเวอร์ชันที่แตกต่างกันติดตั้งในแต่ละ envs และมันไม่ได้ติดตั้งโน๊ตบุ๊ค jupyter อีกครั้ง คุณสามารถเริ่มโน้ตบุ๊กได้จาก env ใด ๆ ที่คุณจะเห็นเมล็ดที่เพิ่มใหม่


10
นี่เป็นคำตอบที่ดีที่สุดในเดือนมกราคม 2018 Jupyter ควรค้นหาเคอร์เนลของคุณโดยอัตโนมัติเมื่อเริ่มต้นหากคุณเพียงแค่conda install ipykernelอยู่ในสภาพแวดล้อมของ conda กรณีที่เลวร้ายที่สุดคุณสามารถใช้python -m ipykernel install --user --name mykernelเพื่อสร้างเคอร์เนลด้วยตนเอง แต่คุณไม่ต้องการที่จะทำเช่นนี้ถ้ามันถูกค้นพบโดยอัตโนมัติหรือมันจะปรากฏขึ้นสองครั้งในรายการเคอร์เนล
colllin

2
สิ่งนี้จะติดตั้งดาวพฤหัสบดีและการพึ่งพาทั้งหมด มันใช้งานได้ แต่อย่างใดมันไม่ดีที่สุด
Quickbeam2k1

16

สรุป (tldr)

หากคุณต้องการให้เคอร์เนล 'python3' เรียกใช้การติดตั้ง Python จากสภาพแวดล้อมที่เปิดใช้งานอยู่ให้ลบเคอร์เนลของผู้ใช้ 'python3' ซึ่งสำคัญกว่าสภาพแวดล้อมปัจจุบันด้วย:

jupyter kernelspec remove python3

โซลูชันเต็มรูปแบบ

ฉันจะโพสต์ทางเลือกและวิธีที่ง่ายกว่าสำหรับกรณีต่อไปนี้:

  • คุณได้สร้างสภาพแวดล้อม conda
  • สภาพแวดล้อมนี้ติดตั้ง jupyter (ซึ่งติดตั้ง ipykernel ด้วย)
  • เมื่อคุณเรียกใช้คำสั่งjupyter notebookและสร้างสมุดบันทึกใหม่โดยคลิก 'python3' ในเมนูแบบเลื่อนลง 'ใหม่' สมุดบันทึกนั้นจะเรียกใช้งานหลามจากสภาพแวดล้อมพื้นฐานไม่ใช่จากสภาพแวดล้อมปัจจุบัน
  • คุณต้องการให้การเปิดใช้งานสมุดบันทึกใหม่ด้วย 'python3' ภายในสภาพแวดล้อมใด ๆ ดำเนินการเวอร์ชัน Python จากสภาพแวดล้อมนั้นไม่ใช่ฐาน

ฉันจะใช้ชื่อ 'test_env' สำหรับสภาพแวดล้อมสำหรับโซลูชันที่เหลือ นอกจากนี้โปรดทราบว่า 'python3' เป็นชื่อของเคอร์เนล

คำตอบที่ได้รับคะแนนสูงสุดในปัจจุบันใช้งานได้ แต่มีทางเลือกอื่น มันบอกว่าจะทำต่อไปนี้:

python -m ipykernel install --user --name test_env --display-name "Python (test_env)"

นี้จะช่วยให้คุณเลือกในการใช้สภาพแวดล้อม test_env โดยไม่คำนึงถึงสภาพแวดล้อมของสิ่งที่คุณเปิดjupyter notebookจาก แต่การเปิดตัวโน้ตบุ๊กด้วย 'python3' จะยังคงใช้การติดตั้ง Python จากสภาพแวดล้อมพื้นฐาน

สิ่งที่น่าจะเกิดขึ้นคือมีเคอร์เนลผู้ใช้ python3 ที่มีอยู่ รันคำสั่งjupyter kernelspec listเพื่อแสดงรายการสภาวะแวดล้อมทั้งหมดของคุณ ตัวอย่างเช่นหากคุณมี mac คุณจะถูกส่งกลับดังต่อไปนี้ (ชื่อผู้ใช้ของฉันคือ Ted)

python3       /Users/Ted/Library/Jupyter/kernels/python3

สิ่งที่ Jupyter กำลังทำอยู่ที่นี่คือการค้นหาเส้นทางที่แตกต่างกันสามเส้นทางเพื่อค้นหาเมล็ด มันจะไปจากผู้ใช้เพื่อEnvเพื่อระบบ ดูเอกสารนี้สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับพา ธ ที่ค้นหาแต่ละระบบปฏิบัติการ

เคอร์เนลสองตัวด้านบนมีทั้งในพา ธ ผู้ใช้ซึ่งหมายความว่าจะสามารถใช้ได้โดยไม่คำนึงถึงสภาพแวดล้อมที่คุณเปิดตัวโน๊ตบุ๊ค jupyter นี่หมายความว่าหากมีเคอร์เนล 'python3' อีกตัวที่ระดับสภาพแวดล้อมคุณจะไม่สามารถเข้าถึงได้

สำหรับฉันแล้วการเลือกเคอร์เนล 'python3' จากสภาพแวดล้อมที่คุณเปิดใช้โน้ตบุ๊กควรดำเนินการ Python จากสภาพแวดล้อมนั้น

คุณสามารถตรวจสอบเพื่อดูว่าคุณมีสภาพแวดล้อม 'python3' อื่นหรือไม่โดยดูที่ Env search path สำหรับระบบปฏิบัติการของคุณ (ดูลิงค์ไปยังเอกสารข้างต้น) สำหรับฉัน (บน mac ของฉัน) ฉันออกคำสั่งต่อไปนี้:

 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 หากคุณสร้างสภาพแวดล้อมใหม่ให้ติดตั้ง jupyter เปิดใช้งานและแสดงรายการเมล็ดคุณจะได้รับเคอร์เนล 'python3' อีกอันที่อยู่ในพา ธ ของสภาพแวดล้อม

เคอร์เนล 'python3' ของผู้ใช้มีความสำคัญเหนือกว่าเมล็ดใด ๆ ของ python3 'Env โดยการลบมันเคอร์เนล 'python3' ของสภาพแวดล้อมที่ใช้งานจะถูกเปิดเผยและสามารถเลือกได้ทุกครั้ง สิ่งนี้ทำให้ไม่จำเป็นต้องสร้างเมล็ดด้วยตนเอง นอกจากนี้ยังทำให้เข้าใจได้ง่ายขึ้นในแง่ของการพัฒนาซอฟต์แวร์ที่ต้องการแยกตัวเองออกเป็นสภาพแวดล้อมเดียว การใช้เคอร์เนลที่แตกต่างจากสภาพแวดล้อมโฮสต์นั้นดูไม่เป็นธรรมชาติ

ดูเหมือนว่าผู้ใช้รายนี้ 'python3' จะไม่ได้รับการติดตั้งสำหรับทุกคนโดยค่าเริ่มต้นดังนั้นทุกคนจะไม่พบกับปัญหานี้


python -m ipykernel install --user --name test_env - แสดงชื่อ "Python (test_env)" ทำงานเหมือนเครื่องราง ขอบคุณ
slobodan.blazeski

12
    $ conda install nb_conda_kernels

(ในสภาพแวดล้อม conda ที่คุณเรียกใช้สมุดบันทึก jupyter) จะทำให้ conda envs ทั้งหมดพร้อมใช้งานโดยอัตโนมัติ สำหรับการเข้าถึงสภาพแวดล้อมอื่น ๆ จะต้องติดตั้งเมล็ดที่เกี่ยวข้อง นี่คือโทษ


นี่ไม่ใช่แค่การสรุปstackoverflow.com/a/48349338/570918 อีกครั้งใช่ไหม
เมิร์ฟ

ดูเหมือนว่าวิธีที่ง่ายที่สุด
Decula

9

เราต้องดิ้นรนมากกับปัญหานี้และนี่คือสิ่งที่ได้ผลสำหรับเรา หากคุณใช้ช่องทาง conda-forgeสิ่งสำคัญคือต้องแน่ใจว่าคุณกำลังใช้แพ็คเกจที่อัปเดตจากconda-forgeแม้ในMinicondaสภาพแวดล้อมรูทของคุณ

ดังนั้นให้ติดตั้งMinicondaแล้วทำ:

conda config --add channels conda-forge --force
conda update --all  -y
conda install nb_conda_kernels -y
conda env create -f custom_env.yml -q --force
jupyter notebook

และสภาพแวดล้อมที่กำหนดเองของคุณจะปรากฏใน Jupyter เป็นเคอร์เนลที่มีอยู่ตราบใดที่ipykernelมีการระบุไว้สำหรับการติดตั้งในcustom_env.ymlไฟล์ของคุณเช่นตัวอย่างนี้:

name: bqplot
channels:
- conda-forge
- defaults
dependencies:
- python>=3.6
- bqplot
- ipykernel

เพียงเพื่อพิสูจน์ว่าทำงานได้กับสภาพแวดล้อมที่กำหนดเองมากมายนี่คือหน้าจอคว้าจาก Windows:

ป้อนคำอธิบายรูปภาพที่นี่


8

nb_conda_kernelsแพคเกจเป็นวิธีที่ดีที่สุดที่จะใช้กับjupyter condaด้วยการพึ่งพาและการกำหนดค่าที่น้อยที่สุดทำให้คุณสามารถใช้สภาพแวดล้อม conda อื่น ๆ จากโน้ตบุ๊ก jupyter ที่ทำงานในสภาพแวดล้อมที่แตกต่างกัน การอ้างอิงเอกสาร :

การติดตั้ง

แพ็คเกจนี้ออกแบบมาเพื่อจัดการโดยใช้คอนโดเท่านั้น ควรติดตั้งในสภาพแวดล้อมที่คุณเรียกใช้ Jupyter Notebook หรือ JupyterLab นี่อาจเป็นbaseสภาพแวดล้อมของคุณแต่ไม่จำเป็นต้องเป็น ตัวอย่างเช่นหากสภาพแวดล้อม notebook_envมีแพ็คเกจสมุดบันทึกคุณจะต้องเรียกใช้

conda install -n notebook_env nb_conda_kernels

สภาพแวดล้อมอื่นใดที่คุณต้องการเข้าถึงในโน้ตบุ๊กของคุณต้องมีการติดตั้งแพ็คเกจเคอร์เนลที่เหมาะสม ตัวอย่างเช่นในการเข้าถึงสภาพแวดล้อม Python จะต้องมีipykernelแพ็คเกจ เช่น

conda install -n python_env ipykernel

ในการใช้สภาพแวดล้อม R นั้นจะต้องมีแพ็คเกจ r-irkernel เช่น

conda install -n r_env r-irkernel

สำหรับภาษาอื่นต้องติดตั้งเมล็ดที่เกี่ยวข้อง

สิ่งที่คุณต้องทำคือเริ่มเซิร์ฟเวอร์โน๊ตบุ๊ค jupyter:

conda activate notebook_env  # only needed if you are not using the base environment for the server
# conda install jupyter # in case you have not installed it already
jupyter

ป้อนคำอธิบายรูปภาพที่นี่


แม้จะมีคำตอบมากมายและความพยายามของ @ merv ในการปรับปรุงให้ดีขึ้น แต่ก็ยังยากที่จะหาคำตอบที่ดี ฉันสร้าง CW ตัวนี้ดังนั้นโปรดลงคะแนนไปด้านบนหรือปรับปรุงมัน!



7

ฉันพบปัญหาเดียวกันกับสภาพแวดล้อม conda ใหม่ของฉันmyenvไม่สามารถเลือกเป็นเคอร์เนลหรือโน้ตบุ๊กใหม่ได้ และวิ่งjupter notebookจากภายใน env ให้ผลเหมือนกัน

วิธีการแก้ปัญหาของฉันและสิ่งที่ฉันเรียนรู้เกี่ยวกับวิธีการที่โน้ตบุ๊ค Jupyter รู้จัก conda-envs และ kernels:

การติดตั้ง jupyter และ ipython myenvด้วย conda:

conda install -n myenv ipython jupyter

หลังจากนั้นทำงานjupter notebookนอก env ใด ๆ ที่ระบุmyenvว่าเป็นเคอร์เนลพร้อมกับสภาพแวดล้อมก่อนหน้าของฉัน

Python [conda env:old]
Python [conda env:myenv]

เรียกใช้โน้ตบุ๊กเมื่อฉันเปิดใช้งานสภาพแวดล้อม:

source activate myenv
jupyter notebook

ซ่อนเมล็ดในสภาพแวดล้อมอื่น ๆ ของฉันทั้งหมดและแสดงเฉพาะเมล็ดของฉัน:

python 2
python 3
R

6

สิ่งนี้ใช้ได้กับฉันใน windows 10 และโซลูชันล่าสุด:

1) เข้าสู่สภาพแวดล้อม conda (เปิดใช้งาน your_env_name)

2) ติดตั้ง cond -n your_env_name ipykernel

3) python -m ipykernel ติดตั้ง - ผู้ใช้ - ชื่อ build_central - แสดงชื่อ "your_env_name"

(หมายเหตุ: ใส่เครื่องหมายคำพูดรอบ "your_env_name" ในขั้นตอนที่ 3)


4

สิ่งนี้น่าหงุดหงิดมากปัญหาของฉันคือภายในสภาพแวดล้อม conda python36 ที่สร้างขึ้นใหม่ jupyter ปฏิเสธที่จะโหลด“ seaborn” - แม้ว่าทะเลติดตั้งอยู่ในสภาพแวดล้อมนั้น ดูเหมือนว่าจะสามารถนำเข้าไฟล์อื่น ๆ จำนวนมากจากสภาพแวดล้อมเดียวกัน - ตัวอย่างเช่น numpy และ pandas แต่ไม่ได้อยู่ในทะเล ฉันลองใช้การแก้ไขหลายอย่างที่แนะนำที่นี่และในเธรดอื่นไม่ประสบความสำเร็จ จนกระทั่งฉันรู้ว่า Jupyter ไม่ได้ใช้งาน python ของเคอร์เนลจากภายในสภาพแวดล้อมนั้น แต่ใช้ python ของระบบเป็นเคอร์เนล แม้ว่าเคอร์เนลและ kernel.json ที่ดูดีจะมีอยู่ในสภาพแวดล้อมแล้ว มันเป็นหลังจากอ่านเอกสารส่วนนี้ของ ipython เท่านั้น: https://ipython.readthedocs.io/en/latest/install/kernel_install.html#kernels-for-different-environment และใช้คำสั่งเหล่านี้:

source activate other-env
python -m ipykernel install --user --name other-env --display-name "Python (other-env)"

ฉันสามารถทำให้ทุกอย่างเป็นไปได้ด้วยดี (ฉันไม่ได้ใช้ตัวแปรผู้ใช้จริง)

สิ่งหนึ่งที่ฉันยังไม่ได้คิดก็คือวิธีตั้งค่าไพ ธ อนเริ่มต้นให้เป็น "Python (other-env)" อย่างใดอย่างหนึ่ง ในปัจจุบันไฟล์. ipynb ที่เปิดอยู่จากหน้าจอหลักจะใช้ระบบไพ ธ อน ฉันต้องใช้เมนูเคอร์เนล“ เปลี่ยนเคอร์เนล” เพื่อเลือกไพ ธ อนของสภาพแวดล้อม


4

ในขณะที่คำตอบของ @ coolscitist ใช้งานได้สำหรับฉัน แต่ก็มีวิธีที่ไม่ทำให้ระบบเคอร์เนลของคุณยุ่งเหยิงด้วยแพ็คเกจ jupyter ที่สมบูรณ์ + ลดลง มีการอธิบายไว้ในเอกสาร ipythonและ (ฉันสงสัย) จำเป็นเฉพาะเมื่อคุณเรียกใช้เซิร์ฟเวอร์โน้ตบุ๊คในสภาพแวดล้อมที่ไม่ใช่ฐาน

conda activate name_of_your_kernel_env
conda install ipykernel
python -m ipykernel install --prefix=/home/your_username/.conda/envs/name_of_your_jupyter_server_env --name 'name_of_your_kernel_env'

คุณสามารถตรวจสอบว่ามันใช้งานได้

conda activate name_of_your_jupyter_server_env 
jupyter kernelspec list

1
อันที่จริงการปรับปรุง jupyter และการใช้conda install nb_conda_kernelsงานได้ดีขึ้น
jan-glx

เพิ่งทราบว่าpython -m ipykernel installเป็นเส้นทางดั้งเดิมของการลงทะเบียน env และทำงานให้กับ envs อื่น ๆ (ไม่ใช่ Conda) ที่อยู่เบื้องหลังความคิดคือการที่คุณไม่จำเป็นต้องทำด้วยตนเองทำเช่นนี้ตราบใดที่คุณติดตั้งnb_conda_kernels ipykernel
merv

ใช่ ฉันเปลี่ยนความคิดเห็นนี้เป็นคำตอบเดียว
jan-glx

2

ฉันมีปัญหาที่คล้ายกันและฉันพบวิธีแก้ปัญหาที่ใช้งานได้กับ Mac, Windows และ Linux ต้องใช้ส่วนผสมที่สำคัญบางอย่างที่อยู่ในคำตอบข้างต้น:

ในการมองเห็น conda env ในสมุดบันทึก Jupyter คุณต้อง:

  • แพคเกจต่อไปนี้ในคุณฐาน env:
    conda install nb_conda

  • แพ็คเกจต่อไปนี้ในแต่ละ env ที่คุณสร้าง:
    conda install ipykernel

  • ตรวจสอบการกำหนดค่าของการjupyter_notebook_config.py
    ตรวจสอบครั้งแรกหากคุณมีjupyter_notebook_config.pyหนึ่งในสถานที่ที่กำหนดโดย jupyter --paths
    ถ้ามันไม่ได้อยู่สร้างโดยการเรียกใช้ jupyter notebook --generate-config
    เพิ่มหรือให้แน่ใจว่าคุณมีต่อไปนี้:c.NotebookApp.kernel_spec_manager_class='nb_conda_kernels.manager.CondaKernelSpecManager'

env ที่คุณเห็นในเทอร์มินัลของคุณ: ป้อนคำอธิบายรูปภาพที่นี่

บน Jupyter Lab คุณสามารถเห็น env เดียวกันกับด้านบนทั้ง Notebook และ Console: ป้อนคำอธิบายรูปภาพที่นี่

และคุณสามารถเลือก env ของคุณเมื่อเปิดโน้ตบุ๊ก: ป้อนคำอธิบายรูปภาพที่นี่

วิธีที่ปลอดภัยคือการสร้าง env เฉพาะที่คุณจะเรียกใช้ตัวอย่างของjupyter labคำสั่งenv เปิดใช้งาน env ของคุณ แล้วเพิ่มห้องปฏิบัติการ jupyter ขยายตัวอย่างส่วนขยาย jupyter ห้องปฏิบัติการ จากนั้นคุณสามารถเรียกใช้ jupyter lab


1

ทำตามคำแนะนำในเอกสาร iPythonสำหรับการเพิ่มสภาพแวดล้อม conda ที่แตกต่างกันในรายการของเมล็ดให้เลือกใน Jupyter Notebook โดยสรุปหลังการติดตั้งipykernelคุณต้องเปิดใช้งานสภาพแวดล้อม conda แต่ละรายการในเทอร์มินัลและเรียกใช้คำสั่งpython -m ipykernel install --user --name myenv --display-name "Python (myenv)"ซึ่งmyenvเป็นสภาพแวดล้อม (เคอร์เนล) ที่คุณต้องการเพิ่ม


1

ปัญหาเฉพาะช่องทางที่เป็นไปได้

ฉันมีปัญหานี้ (อีกครั้ง) และมันกลับกลายเป็นว่าฉันติดตั้งจากช่องconda-forge ; ลบออกและติดตั้งใหม่จากช่องอนาคอนดาแทนได้รับการแก้ไขสำหรับฉัน

ปรับปรุง : ฉันอีกครั้งมีปัญหาเดียวกันกับ env ใหม่คราวนี้ผมไม่ติดตั้งnb_conda_kernelsจากงูใหญ่ช่อง แต่ฉันjupyter_clientมาจากCONDA-ปลอมช่อง การถอนการติดตั้งnb_conda_kernelsและติดตั้งใหม่จะอัปเดตเป็นช่องที่มีลำดับความสำคัญสูงกว่า

ดังนั้นตรวจสอบให้แน่ใจว่าคุณได้ติดตั้งจากช่องที่ถูกต้อง :)


ฟังดูเหมือนคุณอาจมีบางสิ่งปะปนอยู่ jupyterและnb_conda_kernelsควรติดตั้งในหนึ่ง env - นี่คือที่ที่คุณเรียกใช้เสมอjupyter notebookจาก Envs ใหม่จะต้องแต่ไม่ควรจะเปิดใช้งานเมื่อทำงานipykernel jupyter notebook
merv

1
ฉันรู้ว่ามันเป็นเครื่องใหม่
xyzzyqed

1
ตกลง. ฉันแก้ไขคำตอบของคุณส่วนใหญ่เพื่อให้ฉันสามารถเปลี่ยนการลงคะแนนของฉัน แต่ยังชี้แจงสิ่งที่คุณเรียกช่องทางconda (ไม่ใช่สิ่ง - ค่าเริ่มต้นหรืออนาคอนดา ) อย่าลังเลที่จะแก้ไขเพิ่มเติมหากฉันทำผิดที่เกิดขึ้น
merv

-1

ในกรณีของฉันใช้ Windows 10 และ conda 4.6.11 โดยใช้คำสั่ง

conda install nb_conda

conda install -c conda-forge nb_conda_kernels

จากเทอร์มินัลขณะที่สภาพแวดล้อมที่ทำงานอยู่ไม่ได้ทำงานหลังจากที่ฉันเปิด Jupyter จากบรรทัดคำสั่งเดียวกันโดยใช้ conda jupyter notebookจากบรรทัดคำสั่งเดียวกันโดยใช้

เห็นได้ชัดว่าวิธีแก้ปัญหาคือการเปิด Jupyter จาก Anaconda Navigator โดยไปที่สภาพแวดล้อมของฉันในสภาพแวดล้อม: เปิด Anaconda Navigator เลือกสภาพแวดล้อมในสภาพแวดล้อมกดปุ่ม "เล่น" บนสภาพแวดล้อมที่เลือกและเลือก 'เปิดด้วย Jupyter Notebook'

สภาพแวดล้อมใน Anaconda Navigator เพื่อเรียกใช้ Jupyter จากสภาพแวดล้อมที่เลือก


1
ดูเอกสารเกี่ยวกับวิธีการใช้ Conda kernels คุณเปิด Jupyter จาก env ที่มี Jupyter คุณติดตั้งipykernelใน envs ทั้งหมดที่คุณต้องการใช้ใน Jupyter เป็นเมล็ด
merv
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.