Saya menginstal Anaconda (dengan Python 2.7), dan menginstal Tensorflow di lingkungan yang disebut tensorflow
. Saya dapat mengimpor Tensorflow dengan sukses di lingkungan itu.
Masalahnya adalah Notebook Jupyter tidak mengenali lingkungan baru yang baru saja saya buat. Tidak masalah saya memulai Jupyter Notebook dari GUI Navigator atau dari baris perintah di dalam tensorflow
env, hanya ada satu kernel di menu bernama Python [Root]
, dan Tensorflow tidak dapat diimpor. Tentu saja, saya mengklik opsi itu beberapa kali, menyimpan file, dibuka kembali, tetapi ini tidak membantu.
Anehnya, saya bisa melihat dua lingkungan ketika saya membuka Conda
tab di halaman depan Jupyter. Tetapi ketika saya membuka Files
tab, dan mencoba ke new
notebook, saya masih berakhir dengan hanya satu kernel.
Saya melihat pertanyaan ini:
Tautan lingkungan Conda dengan Notebook Jupyter
Tetapi tidak ada direktori seperti ~/Library/Jupyter/kernels
di komputer saya! Direktori Jupyter ini hanya memiliki satu sub-direktori yang disebut runtime
.
Saya benar-benar bingung. Apakah lingkungan Conda seharusnya menjadi kernel secara otomatis? (Saya mengikuti https://ipython.readthedocs.io/en/stable/install/kernel_install.html untuk secara manual mengatur kernel, tetapi diberitahu bahwa ipykernel
itu tidak ditemukan.)
sumber
conda install ipykernel
di lingkungan itu.conda install ipykernel
tampaknya menginstaljupyter
di lingkungan ... Apakah saya kehilangan sesuatu?nb_conda
digunakan atau jika kernel diatur secara manual seperti yang disarankan dalam pertanyaan. Kalau tidak, itu sebenarnya akan mengacaukan banyak hal. Executablejupyter
akan menunjuk ke executable di dalam lingkungan, tetapi sistemjupyter-notebook
akan dimulai (jika diinstal) dan karenanya tidak menggunakan lingkungan dengan kernel default.Jawaban:
Saya tidak berpikir jawaban lain bekerja lagi, karena conda berhenti secara otomatis mengatur lingkungan sebagai kernel jupyter. Anda perlu menambahkan kernel secara manual untuk setiap lingkungan dengan cara berikut:
Seperti yang didokumentasikan di sini: http://ipython.readthedocs.io/en/stable/install/kernel_install.html#kernels-for-different-environmentments Juga lihat masalah ini .
Tambahan: Anda harus dapat menginstal
nb_conda_kernels
paket denganconda install nb_conda_kernels
menambahkan semua lingkungan secara otomatis, lihat https://github.com/Anaconda-Platform/nb_conda_kernelssumber
nb_conda_kernels
bekerja untuk saya sebagai April 2018 (Python 3.6.4
,conda 4.3.27
,jupyter 4.4.0
).conda install ipykernel
jawaban ini mengasumsikan bahwa Anda sudah menginstalnya di lingkungan Anda.Jika lingkungan Anda tidak muncul, Anda mungkin belum
nb_conda_kernels
menginstal di lingkungan tempat Jupyter diinstal. Dokumentasi Anaconda menyatakan hal ituPerhatikan bahwa pada saat awalnya memposting ini, ada kemungkinan penyebabnya
nb_conda
belum mendukung lingkungan Python 3.6 .Jika solusi lain gagal membuat Jupyter mengenali lingkungan conda lain, Anda selalu dapat menginstal dan menjalankan
jupyter
dari dalam lingkungan tertentu. Anda mungkin tidak dapat melihat atau beralih ke lingkungan lain dari dalam Jupyter.Perhatikan bahwa saya menjalankan Python 3.6.1 di notebook ini:
Perhatikan bahwa jika Anda melakukan ini dengan banyak lingkungan, ruang penyimpanan tambahan dari pemasangan Jupyter ke setiap lingkungan mungkin tidak diinginkan (tergantung pada sistem Anda).
sumber
nb_conda
Tujuannya hanya untuk "[menyediakan] lingkungan Conda dan ekstensi akses paket dari dalam Jupyter" tidak membuatnya sehingga Anda dapat menjalankan Jupyter dari instalasi python yang Anda pilih.ipykernel
perlu diinstal di setiap env yang ingin Anda gunakan sebagai kernel.Yang mengganggu adalah bahwa di
tensorflow
lingkungan Anda, Anda dapat menjalankanjupyter notebook
tanpa menginstaljupyter
di lingkungan itu . Lari sajadan
tensorflow
lingkungan sekarang akan terlihat di Jupyter Notebook yang dimulai diconda
lingkungan Anda sebagai sesuatu sepertiPython [conda env:tensorflow]
.sumber
conda install nb_conda
di salah satu lingkungan conda bersumber Anda (yang memiliki notebook jupyter diinstal). Anda kemudian dapat mengganti kernel / conda envs di browser notebook jupyter.ipykernel
(yang merupakan satu-satunya hal yang benar-benar dibutuhkan), adalah ketergantunganjupyter
.Saya harus menjalankan semua perintah yang disebutkan dalam 3 jawaban teratas untuk membuatnya berfungsi:
sumber
conda install nb_conda
jupyter lab
di dalam lingkungan tertentuJalankan saja
conda install ipykernel
di lingkungan baru Anda, hanya kemudian Anda akan mendapatkan kernel dengan env ini. Ini berfungsi bahkan jika Anda memiliki versi berbeda yang diinstal di setiap envs dan itu tidak menginstal notebook jupyter lagi. Anda dapat memulai notebook Anda dari env mana pun Anda akan dapat melihat kernel yang baru ditambahkan.sumber
conda install ipykernel
berada di dalam lingkungan conda. Kasus terburuk, Anda dapat menggunakanpython -m ipykernel install --user --name mykernel
untuk menghasilkan kernel secara manual, tetapi Anda tidak ingin melakukan ini jika sudah ditemukan secara otomatis, atau akan muncul dua kali dalam daftar kernel.Ringkasan (tldr)
Jika Anda ingin kernel 'python3' selalu menjalankan instalasi Python dari lingkungan di mana ia diluncurkan, hapus kernel Pengguna 'python3', yang lebih diutamakan daripada apa pun lingkungan saat ini:
Solusi Lengkap
Saya akan memposting solusi alternatif dan lebih sederhana untuk kasus berikut:
jupyter notebook
dan membuat buku catatan baru dengan mengklik 'python3' di menu tarik-turun 'Baru', buku catatan itu mengeksekusi python dari lingkungan basis dan bukan dari lingkungan saat ini.Saya akan menggunakan nama 'test_env' untuk lingkungan selama sisa solusi. Juga, perhatikan bahwa 'python3' adalah nama dari kernel.
Jawaban terpilih saat ini tidak bekerja, tetapi ada alternatif. Dikatakan untuk melakukan hal berikut:
Ini akan memberi Anda opsi untuk menggunakan lingkungan test_env terlepas dari lingkungan apa Anda memulai
jupyter notebook
. Tetapi, meluncurkan notebook dengan 'python3' masih akan menggunakan instalasi Python dari lingkungan basis.Apa yang kemungkinan terjadi adalah bahwa ada kernel python3 pengguna yang ada. Jalankan perintah
jupyter kernelspec list
untuk mendaftar semua lingkungan Anda. Misalnya, jika Anda memiliki mac, Anda akan dikembalikan sebagai berikut (nama pengguna saya Ted).Apa yang dilakukan Jupyter di sini adalah mencari melalui tiga jalur berbeda mencari kernel. Mulai dari Pengguna , ke Env , ke Sistem . Lihat dokumen ini untuk detail lebih lanjut tentang jalur yang dicari untuk setiap sistem operasi.
Kedua kernel di atas sama-sama berada di jalur Pengguna, artinya keduanya akan tersedia terlepas dari lingkungan tempat Anda meluncurkan notebook jupyter. Ini juga berarti bahwa jika ada kernel 'python3' lain di tingkat lingkungan, maka Anda tidak akan pernah bisa mengaksesnya.
Bagi saya, lebih masuk akal bahwa memilih kernel 'python3' dari lingkungan tempat Anda meluncurkan notebook harus mengeksekusi Python dari lingkungan itu.
Anda dapat memeriksa untuk melihat apakah Anda memiliki lingkungan 'python3' lain dengan melihat di jalur pencarian Env untuk OS Anda (lihat tautan ke dokumen di atas). Bagi saya (di mac saya), saya mengeluarkan perintah berikut:
Dan saya memang memiliki kernel 'python3' yang terdaftar di sana.
Berkat komentar masalah GitHub ini (lihat respons pertama), Anda dapat menghapus lingkungan Pengguna 'python3' dengan perintah berikut:
Sekarang ketika Anda menjalankan
jupyter kernelspec list
, dengan asumsi test_env masih aktif, Anda akan mendapatkan yang berikut:Perhatikan bahwa jalur ini terletak di dalam direktori test_env. Jika Anda membuat lingkungan baru, menginstal jupyter, mengaktifkannya, dan mendaftar kernel, Anda akan mendapatkan kernel 'python3' lain yang terletak di jalur lingkungannya.
Kernel 'python3' Pengguna lebih diutamakan daripada kernel Env 'python3'. Dengan menghapusnya, lingkungan 'python3' kernel aktif terbuka dan dapat dipilih setiap saat. Ini menghilangkan kebutuhan untuk membuat kernel secara manual. Ini juga lebih masuk akal dalam hal pengembangan perangkat lunak di mana orang ingin mengisolasi diri ke dalam satu lingkungan. Menjalankan kernel yang berbeda dari lingkungan host sepertinya tidak alami.
Tampaknya juga Pengguna 'python3' ini tidak diinstal untuk semua orang, jadi tidak semua orang dihadapkan pada masalah ini.
sumber
(di lingkungan conda di mana Anda menjalankan notebook jupyter) akan membuat semua conda envs tersedia secara otomatis. Untuk akses ke lingkungan lain, kernel masing-masing harus diinstal. Inilah referensi .
sumber
Kami telah banyak berjuang dengan masalah ini, dan inilah yang bekerja untuk kami. Jika Anda menggunakan saluran conda-forge , penting untuk memastikan Anda menggunakan paket yang diperbarui dari
conda-forge
, bahkan diMiniconda
lingkungan root Anda .Jadi instal Miniconda , lalu lakukan:
dan lingkungan kustom Anda akan muncul di Jupyter sebagai kernel yang tersedia, selama
ipykernel
terdaftar untuk instalasi dicustom_env.yml
file Anda , seperti contoh ini:Hanya untuk membuktikannya bekerja dengan banyak lingkungan kustom, berikut ini adalah ambil layar dari Windows:
sumber
The
nb_conda_kernels
paket adalah cara terbaik untuk menggunakanjupyter
denganconda
. Dengan dependensi dan konfigurasi minimal, ini memungkinkan Anda untuk menggunakan lingkungan conda lain dari notebook jupyter yang berjalan di lingkungan yang berbeda. Mengutip dokumentasinya :Maka yang perlu Anda lakukan adalah memulai server notebook jupyter:
Terlepas dari banyaknya jawaban dan upaya @ merv untuk memperbaikinya, masih sulit untuk menemukan yang baik. Saya membuat CW yang satu ini, jadi tolong beri suara ke atas atau tingkatkan!
sumber
Saya mengalami masalah yang sama di mana lingkungan conda baru saya
myenv
,, tidak dapat dipilih sebagai kernel atau notebook baru. Dan berlarijupter notebook
dari dalam env memberikan hasil yang sama.Solusi saya, dan apa yang saya pelajari tentang bagaimana notebook Jupyter mengenali conda-envs dan kernel:
Menginstal jupyter dan ipython ke
myenv
dengan conda:Setelah itu, jalankan di
jupter notebook
luar env apa pun yang terdaftarmyenv
sebagai kernel bersama dengan lingkungan saya sebelumnya.Menjalankan notebook setelah saya mengaktifkan lingkungan:
menyembunyikan semua kernel lingkungan saya yang lain dan hanya menunjukkan kernel bahasa saya:
sumber
Ini bekerja untuk saya di windows 10 dan solusi terbaru:
1) Masuk ke dalam lingkungan conda itu (aktifkan nama_Anda_Anda)
2) dapat menginstal -n your_env_name ipykernel
3) python -m ipykernel install --user --name build_central --display-name "your_env_name"
(CATATAN: Sertakan tanda kutip di sekitar "your_env_name", di langkah 3)
sumber
Ini sangat menyebalkan, Masalah saya adalah bahwa di dalam lingkungan conda python36 yang baru dibangun, jupyter menolak untuk memuat "seaborn" - meskipun seaborn dipasang di dalam lingkungan itu. Tampaknya dapat mengimpor banyak file lain dari lingkungan yang sama - misalnya numpy dan panda tetapi tidak hanya seaborn. Saya mencoba banyak perbaikan yang disarankan di sini dan di utas lainnya tanpa hasil. Sampai saya menyadari bahwa Jupyter tidak menjalankan kernel python dari dalam lingkungan itu tetapi menjalankan sistem python sebagai kernel. Meskipun kernel dan kernel.json tampak layak sudah ada di lingkungan. Itu hanya setelah membaca bagian dari dokumentasi ipython ini: https://ipython.readthedocs.io/en/latest/install/kernel_install.html#kernels-for-different-enmentsments dan menggunakan perintah ini:
Saya bisa mendapatkan semuanya berjalan dengan baik. (Saya sebenarnya tidak menggunakan variabel —user).
Satu hal yang belum saya pahami adalah bagaimana mengatur python default menjadi "Python (other-env)". Saat ini file .ipynb yang ada dibuka dari layar Beranda akan menggunakan sistem python. Saya harus menggunakan menu Kernel “Change kernel” untuk memilih lingkungan python.
sumber
Sementara jawaban @ coolscitist bekerja untuk saya, ada juga cara yang tidak mengacaukan lingkungan kernel Anda dengan paket + deps jupyter lengkap. Ini dijelaskan dalam ipython docs dan (saya curiga) hanya diperlukan jika Anda menjalankan server notebook di lingkungan non-basis.
Anda dapat memeriksa apakah itu berfungsi menggunakan
sumber
conda install nb_conda_kernels
berfungsi lebih baik.python -m ipykernel install
adalah rute tradisional untuk mendaftarkan env, dan berfungsi untuk env lainnya (non-Conda). Gagasan di belakangnb_conda_kernels
adalah bahwa Anda tidak perlu melakukan ini secara manual, selama Anda menginstalipykernel
.Saya memiliki masalah serupa dan saya menemukan solusi yang berfungsi untuk Mac, Windows dan Linux. Dibutuhkan beberapa bahan utama yang ada di jawaban di atas:
Untuk dapat melihat conda env di notebook Jupyter, Anda perlu:
paket berikut di dasar Anda env:
conda install nb_conda
paket berikut di setiap env yang Anda buat:
conda install ipykernel
periksa konfigurasin
jupyter_notebook_config.py
cek pertama jika Anda memiliki
jupyter_notebook_config.py
di salah satu lokasi yang diberikan olehjupyter --paths
jika tidak ada, buat dengan menjalankan
jupyter notebook --generate-config
add atau pastikan Anda memiliki yang berikut:
c.NotebookApp.kernel_spec_manager_class='nb_conda_kernels.manager.CondaKernelSpecManager'
Env yang bisa Anda lihat di terminal Anda:
Di Jupyter Lab Anda dapat melihat env yang sama seperti di atas, baik Notebook maupun Konsol:
Dan Anda dapat memilih env saat membuka buku catatan:
Cara yang aman adalah membuat env spesifik dari mana Anda akan menjalankan contoh
jupyter lab
perintah env Anda . Aktifkan env Anda. Kemudian tambahkan ekstensi lab jupyter contoh ekstensi lab jupyter . Maka Anda bisa larijupyter lab
sumber
Ikuti instruksi dalam dokumentasi iPython untuk menambahkan lingkungan conda yang berbeda ke daftar kernel yang dapat dipilih di Jupyter Notebook. Singkatnya, setelah menginstal
ipykernel
, Anda harus mengaktifkan masing-masing lingkungan conda satu per satu di terminal dan menjalankan perintahpython -m ipykernel install --user --name myenv --display-name "Python (myenv)"
, di manamyenv
lingkungan (kernel) yang ingin Anda tambahkan.sumber
Kemungkinan Masalah Saluran Khusus
Saya memiliki masalah ini (lagi) dan ternyata saya menginstal dari saluran conda-forge ; menghapusnya dan menginstal ulang dari saluran anaconda bukan memperbaikinya untuk saya.
Pembaruan : Saya sekali lagi memiliki masalah yang sama dengan env baru, kali ini saya menginstal
nb_conda_kernels
dari saluran anaconda , tetapi sayajupyter_client
berasal dari saluran conda-forge . Menghapusnb_conda_kernels
instalasi dan menginstal ulang pembaruan itu ke saluran dengan prioritas lebih tinggi.Jadi pastikan Anda sudah menginstal dari saluran yang benar :)
sumber
jupyter
dannb_conda_kernels
harus diinstal dalam satu env - ini adalah tempat Anda selalu larijupyter notebook
. ENV baru hanya perluipykernel
, tetapi tidak harus diaktifkan saat berjalanjupyter notebook
.Dalam kasus saya, menggunakan Windows 10 dan conda 4.6.11, dengan menjalankan perintah
dari terminal sementara lingkungan aktif tidak berfungsi setelah saya membuka Jupyter dari baris perintah yang sama
conda jupyter notebook
.Solusinya adalah dengan membuka Jupyter dari Anaconda Navigator dengan mengunjungi lingkungan saya di Lingkungan: Buka Anaconda Navigator, pilih lingkungan di Lingkungan, tekan tombol "play" pada lingkungan yang dipilih, dan pilih 'open with Jupyter Notebook'.
Lingkungan di Anaconda Navigator untuk menjalankan Jupyter dari lingkungan yang dipilih
sumber
ipykernel
di semua envs yang ingin Anda gunakan di Jupyter sebagai kernel.