ใช้ทั้ง Python 2.x และ Python 3.x ใน IPython Notebook


255

ฉันใช้สมุดบันทึก IPython และต้องการให้สามารถสร้างสมุดบันทึก python แบบ 2.x หรือ 3.x ใน IPython ได้

ตอนแรกฉันมีอนาคอนด้า ด้วย Anaconda ตัวแปรสภาพแวดล้อมทั่วโลกจะต้องมีการเปลี่ยนแปลงเพื่อเลือกเวอร์ชันของงูหลามที่คุณต้องการจากนั้น IPython สามารถเริ่มต้นได้ นี่ไม่ใช่สิ่งที่ฉันกำลังมองหาดังนั้นฉันถอนการติดตั้ง Anaconda และตอนนี้ได้ตั้งค่าการติดตั้งของตัวเองโดยใช้ MacPorts และ PiP ดูเหมือนว่าฉันยังต้องใช้

port select --set python <python version> 

เพื่อสลับระหว่าง python 2.x และ 3.x ซึ่งไม่ดีไปกว่าวิธีแก้ปัญหาของอนาคอนดา

มีวิธีการเลือกไพ ธ อนรุ่นใดที่คุณต้องการใช้หลังจากที่คุณเริ่มต้นโน๊ตบุ๊ค IPython โดยเฉพาะอย่างยิ่งกับ MacPort รุ่นปัจจุบันของฉัน


2
เกี่ยวข้อง: stackoverflow.com/questions/28831854/…
cel

คำตอบ:


336

ความคิดที่นี่คือการติดตั้งหลายipythonเมล็ด นี่คือคำแนะนำสำหรับอนาคอนด้า หากคุณไม่ได้ใช้อนาคอนดาฉันเพิ่งเพิ่มคำแนะนำโดยใช้ virtualenv บริสุทธิ์

อนาคอนดา> = 4.1.0

ตั้งแต่เวอร์ชั่น 4.1.0 แอนนาคอนดามีแพ็คเกจพิเศษnb_conda_kernelsที่ตรวจจับสภาพแวดล้อม conda ด้วยเมล็ดในโน้ตบุ๊กและทำการลงทะเบียนโดยอัตโนมัติ สิ่งนี้ทำให้การใช้เวอร์ชันหลามใหม่ง่ายเหมือนกับการสร้างสภาพแวดล้อม conda ใหม่:

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

หลังจากรีสตาร์ทโน๊ตบุ๊ค jupyter แล้วเคอร์เนลใหม่จะมีอยู่ในส่วนต่อประสานกราฟิก โปรดทราบว่าแพคเกจใหม่จะต้องมีการติดตั้งอย่างชัดเจนในสภาพแวดล้อมใหม่ ส่วนการจัดการสภาพแวดล้อมในเอกสารของ conda ให้ข้อมูลเพิ่มเติม

การลงทะเบียนเมล็ดด้วยตนเอง

ผู้ใช้ที่ไม่ต้องการใช้nb_conda_kernelsหรือยังใช้แอนนาคอนดารุ่นเก่าสามารถใช้ขั้นตอนต่อไปนี้เพื่อลงทะเบียนเคอร์เนล ipython ได้ด้วยตนเอง

กำหนดค่า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 installหากคุณต้องการเปลี่ยนชื่อของเมล็ดของคุณ ดูipython kernel install --helpข้อมูลเพิ่มเติม


โซลูชันของคุณมีลักษณะเหมือนโซลูชันที่ฉันใช้และโดยหลักการฉันคาดหวังว่ามันจะใช้งานได้ เนื่องจากฉันถอนการติดตั้งอนาคอนดาแล้วและใช้งานได้ฉันจะไม่สามารถยืนยันได้
deltap

9
หากคุณต้องการตั้งค่า kernelspecs โดยไม่ต้องใช้ root คุณสามารถทำการipython kernelspec install-self --userติดตั้งสำหรับผู้ใช้ปัจจุบันได้
โทมัส K

1
ฉันคิดออกแล้ว! คำตอบของคุณช่วยออก! dropbox.com/s/6ayqf55ctkv2xgk/ …
โปรแกรมเมอร์ที่ชาญฉลาด

7
รายการสำคัญคือคุณต้องติดตั้ง nb_conda_kernels มันไม่ได้มาพร้อมกับ Anaconda เริ่มต้นของฉัน! ขอบคุณ!
dartdog

1
@ แน่นอนสภาพแวดล้อมที่ฉันเริ่มต้น jupyter ไม่ได้มีการติดตั้งแพคเกจ nb_conda_kernels โดยค่าเริ่มต้น ฉันไม่ได้ใช้เวลาในการอ่านความคิดเห็นทั้งหมด: บางทีคุณสามารถแก้ไขคำตอบของคุณและรวมถึง remak ของดาร์ทด็อก
Antoine Gautier

276

หากคุณใช้Jupyterบน Python 3 คุณสามารถตั้งค่าเคอร์เนล Python 2 ดังนี้:

python2 -m pip install ipykernel

python2 -m ipykernel install --user

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


52
เปลี่ยน '2' เป็น '3' หากคุณมี python2 ตั้งค่าไว้แล้วและต้องการ python3 ฉันไม่เข้าใจว่าทำไมคำตอบนี้ไม่ใช่คำตอบที่ยอดเยี่ยมแน่นอนมันชนะโดย Occam's razor และมันก็ใช้ได้ผลสำหรับฉัน
wordoforthewise

6
ทำงานได้อย่างสมบูรณ์แบบ ควรเป็นคำตอบแรกแน่นอน
JSmyth

2
คำสั่ง python2 รวมอยู่ในหลามเองไหม? โปรดอธิบายคำตอบบางส่วนอย่างละเอียด :)
verystrongjoe

3
ใช้งานได้ แต่ไม่ได้เชื่อมโยงกับระบบของฉัน python 2 พร้อมแพ็กเกจเพิ่มเติม มีวิธีเชื่อมโยงไปยังไพ ธ อนที่มีอยู่ / ปฏิบัติการได้หรือไม่?
Rutger Hofste

1
ทำงานอย่างสมบูรณ์แบบใน win10 เพียงแทนที่ด้วยpython2 your\path\to\python(2).exe
Lucien

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

ตามนี้ไปที่จุดติดตั้ง pandas เริ่ม jupyter เปลี่ยนเป็นเคอร์เนล py3: pandas นำเข้าล้มเหลวด้วยข้อผิดพลาด 'ไม่พบ' มันทำให้ฉันรู้สึก
แย่

1
@ user1255933 นี้อาจเกิดจากการติดตั้งรุ่น pip ผิด สิ่งนี้สามารถเกิดขึ้นได้หากการเปิดใช้งานสภาพแวดล้อมเป้าหมายล้มเหลวหรือไม่มีเวอร์ชัน pip คุณอาจพบคำตอบของฉันที่นี่น่าสนใจ: stackoverflow.com/questions/32680081/...
cel

ขอบคุณสำหรับคำแนะนำในการใช้วิธีการที่ไม่ใช่แอนนาคอนดาในการติดตั้งเคอร์เนล
mdivk

37

กับรุ่นปัจจุบันของโน๊ตบุ๊ค / Jupyter คุณสามารถสร้างเคอร์เนล Python3 หลังจากเริ่มต้นแอปพลิเคชันโน้ตบุ๊กใหม่จากบรรทัดคำสั่งด้วย Python 2 คุณจะเห็นรายการ„ Python 3“ ในเมนูแบบเลื่อนลง„ ใหม่“ สิ่งนี้ทำให้คุณมีสมุดบันทึกที่ใช้ Python 3 ดังนั้นคุณจึงสามารถมีสมุดบันทึกสองเล่มพร้อมกันกับรุ่น Python ที่แตกต่างกัน

รายละเอียด

  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. เลือก„ Python 3“ จากเมนูแบบเลื่อนลง„ ใหม่“
  5. ทำงานกับโน้ตบุ๊ค Python 3
  6. เลือก„ Python 2“ จากเมนูแบบเลื่อนลง„ ใหม่“
  7. ทำงานกับโน้ตบุ๊ค Python 2

นี่เป็นสิ่งที่ยอดเยี่ยมและฉันพยายามทำให้มันใช้งานได้ แต่คุณสามารถระบุว่าคุณจะเริ่มต้นอย่างไรjupyterในสถานการณ์นี้ (ฉันต้องวิ่งipython notebookหรือipython3 notebook) ตอนนี้ฉันสามารถเรียกใช้เพียงหนึ่งหรืออื่น ๆ (กับสภาพแวดล้อมของพวกเขา แต่ฉันเห็นเมล็ดทั้งสองอยู่ในรายการjupyterคุณอาจขยายคำตอบของคุณเพื่อรวมถึงวิธีการเริ่มต้นjupyterเพื่อให้ฉันสามารถเรียกใช้python2และpython3เคียงข้างกันขอบคุณ!
Chris

1
ตกลงฉันคิดว่าฉันคิดออก - ฉันต้องปรับkernel.jsonไฟล์ภายใน~/Library/Jupyter/kernels/python3/(ใน OS X) และเพิ่มข้อโต้แย้งที่กล่าวถึงในไฟล์ที่เชื่อมโยง
Chris

@Chris ใช่ในขณะที่คำอธิบายที่อยู่เบื้องหลังการเชื่อมโยงได้รับในโน๊ตบุ๊ค IPython มันสามารถทำได้ในการแก้ไข เพียงแค่สร้างหรือแก้ไขไฟล์ที่มีชื่อบางอย่างที่พา ธ ที่กำหนดและที่เนื้อหาที่แสดง ดีใจที่คุณแก้ปัญหาของคุณ
Mike Müller

ฉันอยากจะแนะนำให้แก้ไขคำตอบของคุณเพื่อรวมรายละเอียดจากลิงก์นั้น รู้รอบไม่ควรเก็บส่วนที่สำคัญที่สุดไว้เบื้องหลัง "ลิงก์"
คริส

1
@Chris เพิ่มรายละเอียดจากลิงค์
Mike Müller

22

มีวิธีแก้ไขปัญหาที่ช่วยให้ฉันสามารถติดตั้ง MacPorts ของฉันได้โดยการกำหนดค่า Ipython kernelspec

ที่ต้องการ:

  • ติดตั้ง MacPorts ในไดเรกทอรีปกติ / opt
  • python 2.7 ถูกติดตั้งผ่าน macports
  • python 3.4 ถูกติดตั้งผ่าน macports
  • มีการติดตั้ง Ipython สำหรับ python 2.7
  • มีการติดตั้ง Ipython สำหรับ python 3.4

สำหรับ python 2.x:

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

สำหรับ python 3.x:

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

ตอนนี้คุณสามารถเปิดสมุดบันทึก Ipython แล้วเลือก python 2.x หรือสมุดบันทึก python 3.x

เลือกหลามของคุณ!


คุณช่วยยืนยันได้ไหมว่าคุณสามารถรันpython2และpython3เคอร์เนลโน้ตบุ๊กแบบเคียงข้างกันในjupyterอินสแตนซ์เดียวกันได้หรือไม่? ในกรณีนี้คุณเริ่มต้นอย่างไรว่าไม่มีjupyterเส้นทางที่ขัดแย้งกัน ขณะนี้ฉันสามารถเรียกใช้python2หรือpython3รหัสได้โดยการตั้งค่า$PATH $PYTHONPATHสภาพแวดล้อมที่เหมาะสมไว้ล่วงหน้า ฉันสามารถหลีกเลี่ยงสิ่งนี้ได้ไหม?
Chris

ฉันสามารถเรียกใช้สมุดบันทึกเคอร์เนล python2 หรือ python3 ได้
deltap

คุณจะเริ่มต้นอย่างไรjupyter(ระบุว่าติดตั้งไว้python 2.7แล้วpython 3.4) คุณได้กำหนด $ PYTHONPATH หรือจัดหาสภาพแวดล้อมเสมือนจริงบางอย่างหรือไม่ คุณเพียงแค่โทรipython notebook? ถ้าเป็นเช่นipythonนั้นนั่นคือสิ่งที่อ้างถึง - หนึ่งที่ติดตั้งสำหรับ 2.7 หรือ 3.4?
Chris

python notebookฉันเพียงแค่โทร which ipythonแสดงให้เห็นว่ามันกำลังชี้ไปที่/opt/local/Library/Frameworks/Python.framework/Versions/3.4/bin/ipython
deltap

เอาล่ะฉันคิดว่าปัญหาของฉันและมันเกี่ยวข้องกับการกำหนดไว้ล่วงหน้า$PYTHONPATHซึ่งทำให้เมล็ดสลับยาก ฉันต้องunset PYTHONPATHเริ่มก่อนipythonและตอนนี้ก็ใช้งานได้
คริส

18

จากการติดตั้ง Linux ของฉันฉัน:

sudo ipython2 kernelspec install-self

และตอนนี้หลาม 2 ของฉันกลับมาอยู่ในรายการ

อ้างอิง:

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


UPDATE:

วิธีการข้างต้นเลิกใช้แล้วและจะถูกยกเลิกในอนาคต วิธีการใหม่ควรเป็น:

sudo ipython2 kernel install


2
ฉันเกลียดการวางคำสั่งแบบสุ่มลงในการติดตั้ง Ubuntu ของฉัน แต่วิธีนี้ใช้ได้ผลสำหรับฉัน
โจเซฟ

1
ควรเป็นคำตอบที่เลือก
e9t

1
สั้นและตรงประเด็นฉันได้ใช้วิธีนี้ใน Mac OS X ทำงานได้โดยไม่มีปัญหา
Konrad

1
ฉันลองตอบทุกคำถาม แต่สิ่งนี้ใช้ได้สำหรับฉัน ลองดูสิถ้าคุณใช้ Ubuntu
sinsuren

1
แล้วฉันจะไปได้ipython2ที่ไหน
sudo

5

ต่อไปนี้เป็นขั้นตอนในการเพิ่มเคอร์เนล python2 ในสมุดบันทึก jupyter ::

เปิดเทอร์มินัลและสร้างสภาพแวดล้อมของ python 2 ใหม่: conda create -n py27 python=2.7

เปิดใช้งานสภาพแวดล้อม: Linux source activate py27หรือ windowsactivate py27

ติดตั้งเคอร์เนลใน env: conda install notebook ipykernel

ติดตั้งเคอร์เนลสำหรับนอก env: ipython kernel install --user

ปิด env: source deactivate

แม้ว่าคำตอบล่าช้าหวังว่าบางคนจะพบว่ามีประโยชน์: p


นี้ไม่ได้เพิ่มอะไรเกินกว่าสิ่งที่ถูกแล้วที่ระบุไว้อย่างชัดเจนในคำตอบของ @ Cel
merv

3

ใช้sudo pip3 install jupyterสำหรับการติดตั้ง jupyter สำหรับ python3 และsudo pip install jupyterสำหรับการติดตั้ง jupyter notebook สำหรับ python2 จากนั้นคุณสามารถเรียกipython kernel installคำสั่งเพื่อเปิดใช้งานสมุดบันทึกทั้งสองประเภทให้เลือกในสมุดบันทึก jupyter


1

ฉันดูข้อมูลที่ยอดเยี่ยมนี้แล้วก็สงสัยตั้งแต่

  1. ฉันติดตั้ง python2, python3 และ IPython ทั้งหมดแล้ว
  2. ฉันติดตั้ง PyCharm แล้ว
  3. PyCharmใช้ IPython สำหรับ Python Console

ถ้า PyCharmจะใช้

  1. IPython-py2 เมื่อเมนู> ไฟล์> การตั้งค่า> โครงการ> Project Interpreter == py2 AND
  2. IPython-py3 เมื่อเมนู> ไฟล์> การตั้งค่า> โครงการ> Project Interpreter == py3

คำตอบ: ใช่!

PS i มี Python Launcher สำหรับ Windows ติดตั้งเช่นกัน


0

ใน Windows 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) ฉันมีเมนูแบบเลื่อนลงที่มุมบนขวาภายใต้ "ใหม่" ให้ฉันเลือกระหว่าง Python 2 หรือ Python 3 เมล็ด


0
  • หากคุณใช้งานแอนาคอนดาในสภาพแวดล้อมเสมือนจริง
  • และเมื่อคุณสร้างสมุดบันทึกใหม่ แต่ฉันไม่แสดงเพื่อเลือกเคอร์เนลสภาพแวดล้อมเสมือน
  • จากนั้นคุณต้องตั้งค่าเป็น ipykernel โดยใช้คำสั่งต่อไปนี้
$ pip install --user ipykernel
$ python -m ipykernel install --user --name=test2
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.