Menggunakan kedua Python 2.x dan Python 3.x di IPython Notebook

255

Saya menggunakan notebook IPython dan ingin dapat memilih untuk membuat notebook python 2.x atau 3.x di IPython.

Saya awalnya punya Anaconda. Dengan Anaconda, variabel lingkungan global harus diubah untuk memilih versi python yang Anda inginkan dan kemudian IPython dapat dimulai. Ini bukan yang saya cari jadi saya uninstall Anaconda dan sekarang telah mengatur instalasi saya sendiri menggunakan MacPorts dan PiP. Sepertinya saya masih harus menggunakan

port select --set python <python version> 

untuk beralih antara python 2.x dan 3.x. yang tidak lebih baik daripada solusi anaconda.

Apakah ada cara untuk memilih versi python yang ingin Anda gunakan setelah Anda memulai notebook IPython, lebih disukai dengan membangun MacPorts saya saat ini?

deltap
sumber

Jawaban:

336

Idenya di sini adalah untuk menginstal beberapa ipythonkernel. Berikut adalah instruksi untuk anaconda. Jika Anda tidak menggunakan anaconda, saya baru-baru ini menambahkan instruksi menggunakan virtualenvs murni.

Anaconda> = 4.1.0

Sejak versi 4.1.0, anaconda menyertakan paket khusus nb_conda_kernelsyang mendeteksi lingkungan conda dengan kernel notebook dan secara otomatis mendaftarkannya. Ini membuat menggunakan versi python baru semudah membuat lingkungan conda baru:

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

Setelah restart notebook jupyter, kernel baru tersedia melalui antarmuka grafis. Harap dicatat bahwa paket baru harus diinstal secara eksplisit ke lingkungan baru. Bagian Mengelola lingkungan dalam dokumen conda menyediakan informasi lebih lanjut.

Mendaftarkan kernel secara manual

Pengguna yang tidak ingin menggunakan nb_conda_kernelsatau masih menggunakan versi anaconda yang lebih lama dapat menggunakan langkah-langkah berikut untuk mendaftarkan kernel ipython secara manual.

konfigurasikan python2.7lingkungan:

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

konfigurasikan python3.6lingkungan:

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

Setelah itu Anda harus dapat memilih antara python2
dan python3kapan membuat notebook baru di antarmuka.

Selain itu Anda dapat meneruskan --namedan --display-nameopsi ke ipython kernel installjika Anda ingin mengubah nama kernel Anda. Lihat ipython kernel install --helpuntuk informasi lebih lanjut.

cel
sumber
Solusi Anda sangat mirip dengan solusi yang akhirnya saya gunakan dan pada prinsipnya saya berharap itu berfungsi. Karena saya sudah menghapus instalan anaconda dan membuatnya berfungsi, saya tidak akan dapat memverifikasi.
deltap
9
Jika Anda ingin mengatur kernel tidak membutuhkan root, Anda bisa ipython kernelspec install-self --usermenginstalnya untuk pengguna saat ini.
Thomas K
1
Saya sudah menemukan jawabannya! Jawaban Anda membantu! dropbox.com/s/6ayqf55ctkv2xgk/…
Programmer Cerdas
7
Kuncinya adalah Anda harus MENGINSTAL nb_conda_kernels itu tidak datang dengan Anaconda awal saya! Terima kasih!
dartdog
1
@cel, memang lingkungan tempat saya memulai jupyter tidak memiliki paket nb_conda_kernels terinstal secara default. Saya tidak meluangkan waktu untuk membaca semua komentar: mungkin Anda bisa mengedit jawaban Anda dan memasukkan remak dartdog.
Antoine Gautier
276

Jika Anda menjalankan Jupyter di Python 3, Anda dapat mengatur kernel Python 2 seperti ini:

python2 -m pip install ipykernel

python2 -m ipykernel install --user

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

Ish
sumber
52
Ganti '2' untuk '3' jika Anda memiliki python2 yang sudah diatur dan perlu python3. Saya tidak mengerti mengapa ini bukan jawaban teratas, itu pasti menang dengan pisau cukur Occam dan itu berhasil untuk saya.
kata
6
Bekerja dengan sempurna. Seharusnya memang jawaban pertama.
JSmyth
2
Perintah python2 termasuk dalam python itu sendiri? Tolong beri penjelasan tentang jawaban ini dengan rumit. :)
verystrongjoe
3
ini berfungsi, tetapi tidak terhubung ke sistem saya python 2 dengan paket tambahan. Apakah ada cara untuk menautkan ke biner / executable python yang ada?
Rutger Hofste
1
Bekerja dengan sempurna di win10, ganti saja python2dengan your\path\to\python(2).exe.
Lucien
42

Petunjuk ini menjelaskan cara menginstal kernel python2 dan python3 di lingkungan virtual terpisah untuk pengguna non-anaconda. Jika Anda menggunakan anaconda, temukan jawaban saya yang lain untuk solusi yang langsung disesuaikan dengan anaconda.

Saya berasumsi bahwa Anda sudah jupyter notebookmenginstal.


Pertama pastikan bahwa Anda memiliki python2dan seorang python3juru bahasa dengan piptersedia.

Di ubuntu Anda akan menginstal ini dengan:

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

Selanjutnya, siapkan dan daftarkan lingkungan kernel

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

Untuk mempermudah, Anda mungkin ingin menambahkan alias shell untuk perintah aktivasi ke file konfigurasi shell Anda. Tergantung pada sistem dan shell yang Anda gunakan, ini bisa misalnya ~/.bashrc, ~/.bash_profileatau~/.zshrc

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

Setelah memulai ulang shell Anda, sekarang Anda dapat menginstal paket baru setelah mengaktifkan lingkungan yang ingin Anda gunakan.

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

atau

kernel3
python -m pip install <pkg-name>
deactivate
cel
sumber
mengikuti ini ke titik, menginstal panda, mulai jupyter, beralih ke kernel py3: panda impor gagal dengan kesalahan 'tidak ditemukan'. Ini membuatku gila
user1255933
1
@ user1255933, ini kemungkinan karena menginstal dengan versi pip yang salah. Ini dapat terjadi jika pengaktifan lingkungan target gagal atau tidak berisi versi pip. Anda mungkin menemukan jawaban saya di sini menarik: stackoverflow.com/questions/32680081/… .
cel
Terima kasih atas instruksi menggunakan cara non-anaconda untuk menginstal kernel
mdivk
37

Dengan versi Notebook / Jupyter saat ini, Anda dapat membuat kernel Python3 . Setelah memulai aplikasi notebook baru dari baris perintah dengan Python 2 Anda akan melihat entri "Python 3" di menu dropdown "Baru". Ini memberi Anda notebook yang menggunakan Python 3. Jadi, Anda dapat memiliki dua notebook berdampingan dengan versi Python yang berbeda.

Rinciannya

  1. Buat direktori ini: mkdir -p ~/.ipython/kernels/python3
  2. Buat file ~/.ipython/kernels/python3/kernel.jsonini dengan konten ini:

    {
        "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. Mulai ulang server notebook.

  4. Pilih "Python 3" dari menu dropdown "Baru"
  5. Bekerja dengan Notebook Python 3
  6. Pilih "Python 2" dari menu dropdown "Baru"
  7. Bekerja dengan Notebook Python 2
Mike Müller
sumber
Ini bagus dan saya mencoba untuk membuatnya bekerja, tetapi dapatkah Anda menentukan bagaimana Anda memulai jupyterdalam skenario ini (saya harus menjalankan ipython notebookatau ipython3 notebook). Saat ini saya hanya dapat menjalankan satu atau yang lain (dengan lingkungan masing-masing, tetapi saya melihat kedua kernel terdaftar di dalamnya jupyter. Bisakah Anda memperluas jawaban Anda dengan memasukkan cara memulainya jupytersehingga saya bisa berlari python2dan python3berdampingan? Terima kasih!
Chris
1
Ok, saya pikir saya sudah menemukannya - saya harus menyesuaikan kernel.jsonfile di dalamnya ~/Library/Jupyter/kernels/python3/(di OS X) dan menambahkan argumen yang disebutkan dalam file yang ditautkan.
Chris
@ Chris Ya, sementara deskripsi di balik tautan diberikan dalam IPython Notebook, itu bisa dilakukan di editor. Cukup buat atau modifikasi file dengan nama tertentu di jalur yang diberikan dan pada konten yang ditampilkan. Senang bahwa Anda memecahkan masalah Anda.
Mike Müller
Saya akan merekomendasikan untuk mengedit jawaban Anda untuk memasukkan rincian dari tautan itu. Jawaban tidak boleh menyembunyikan bagian terpenting dari tautan.
Chris
1
@ Chris Menambahkan rincian dari tautan.
Mike Müller
22

Sebuah solusi tersedia yang memungkinkan saya untuk menjaga instalasi MacPorts saya dengan mengkonfigurasi Ipython kernelspec.

Persyaratan:

  • MacPorts diinstal di direktori / opt biasa
  • python 2.7 diinstal melalui macports
  • python 3.4 diinstal melalui macports
  • Ipython diinstal untuk python 2.7
  • Ipython diinstal untuk python 3.4

Untuk python 2.x:

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

Untuk python 3.x:

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

Sekarang Anda dapat membuka notebook Ipython dan kemudian memilih notebook python 2.x atau python 3.x.

Pilih python Anda!

deltap
sumber
Bisakah Anda mengonfirmasi bahwa Anda dapat menjalankan python2dan python3kernel notebook berdampingan dalam jupytercontoh yang sama ? Dalam hal ini, seberapa tepatnya Anda mulai jupytertidak memiliki jalur yang saling bertentangan? Saat ini saya hanya dapat menjalankan python2atau python3kode dengan mengatur $PATH $PYTHONPATHlingkungan yang sesuai sebelumnya. Bisakah saya menghindari ini entah bagaimana?
Chris
Saya dapat menjalankan notebook kernel python2 atau python3.
deltap
Bagaimana Anda memulai jupyter(mengingat bahwa itu diinstal untuk python 2.7dan untuk python 3.4) Sudahkah Anda menetapkan $ PYTHONPATH atau mencari beberapa lingkungan virtual? Apakah kamu hanya menelepon ipython notebook? Jika demikian, yang mana ipythonyang mengacu pada - yang dipasang untuk 2.7 atau 3.4?
Chris
Saya hanya menelepon python notebook. which ipythonmenunjukkan bahwa itu menunjuk ke/opt/local/Library/Frameworks/Python.framework/Versions/3.4/bin/ipython
deltap
Baiklah, saya menemukan masalah saya dan itu ada hubungannya dengan yang sudah ditentukan $PYTHONPATH, yang membuat beralih kernel menjadi sulit. Saya harus unset PYTHONPATHsebelum memulai ipythondan sekarang berfungsi.
Chris
18

Dari instalasi Linux saya saya lakukan:

sudo ipython2 kernelspec install-self

Dan sekarang python 2 saya kembali dalam daftar.

Referensi:

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


MEMPERBARUI:

Metode di atas sekarang sudah usang dan akan dibuang di masa mendatang. Metode baru harus:

sudo ipython2 kernel install

mimoralea
sumber
2
Saya benci menempelkan perintah secara acak ke dalam instalasi Ubuntu saya, tetapi ini berhasil bagi saya.
Joseph
1
Seharusnya jawaban yang dipilih.
tepatnya
1
Singkat dan to the point, saya telah menerapkan solusi ini pada Mac OS X, bekerja tanpa masalah.
Konrad
1
Saya mencoba semua jawaban. Tetapi ini berhasil bagi saya. Cobalah jika Anda berada di ubuntu.
sinsuren
1
Dan di mana saya dapatkan ipython2?
sudo
5

Berikut ini adalah langkah-langkah untuk menambahkan kernel python2 ke jupyter notebook ::

buka terminal dan buat lingkungan python 2 baru: conda create -n py27 python=2.7

aktifkan lingkungan: Linux source activate py27atau windowsactivate py27

instal kernel di env: conda install notebook ipykernel

instal kernel untuk di luar env: ipython kernel install --user

tutup env: source deactivate

Meskipun jawaban yang terlambat berharap seseorang menemukan itu berguna: hal

Akash Chandra
sumber
Ini tidak menambahkan apa pun di luar apa yang sudah dinyatakan dengan jelas dalam jawaban @ cel .
merv
3

Gunakan sudo pip3 install jupyteruntuk menginstal jupyter untuk python3 dan sudo pip install jupyteruntuk menginstal notebook jupyter untuk python2. Kemudian, Anda dapat memanggil ipython kernel installperintah untuk mengaktifkan kedua jenis notebook untuk dipilih di notebook jupyter.

sv_jan5
sumber
1

Saya melihat info yang luar biasa ini dan kemudian bertanya-tanya , sejak

  1. saya sudah menginstal python2, python3 dan IPython,
  2. saya telah menginstal PyCharm,
  3. PyCharm menggunakan IPython untuk Python Console-nya,

jika PyCharm akan digunakan

  1. IPython-py2 ketika Menu> File> Pengaturan> Proyek> Project Interpreter == py2 AND
  2. IPython-py3 ketika Menu> File> Pengaturan> Proyek> Project Interpreter == py3

JAWABAN: Ya!

PS saya punya Python Launcher untuk Windows diinstal juga.

Cinta dan kedamaian - Joe Codeswell
sumber
0

Di bawah Windows 7 saya menginstal anaconda dan anaconda3. Saya pergi ke \Users\me\anaconda\Scriptsdan dieksekusi

sudo .\ipython kernelspec install-self

kemudian saya masuk \Users\me\anaconda3\Scriptsdan dieksekusi

sudo .\ipython kernel install

(Saya mengerti jupyter kernelspec install-self is DEPRECATED as of 4.0. You probably want 'ipython kernel install' to install the IPython kernelspec.)

Setelah memulai jupyter notebook(di anaconda3) saya mendapat menu dropdown yang rapi di sudut kanan atas di bawah "Baru" membiarkan saya memilih antara Python 2 odr dan kernel Python 3.

Krischu
sumber
0
  • Jika Anda menjalankan anaconda di lingkungan virtual.
  • Dan ketika Anda membuat notebook baru tetapi saya tidak muncul untuk memilih kernel lingkungan virtual.
  • Maka Anda harus mengaturnya ke dalam ipykernel menggunakan perintah berikut
$ pip install --user ipykernel
$ python -m ipykernel install --user --name=test2
Rahul Verma
sumber