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:
jupyter kernelspec remove python3
Solusi Lengkap
Saya akan memposting solusi alternatif dan lebih sederhana untuk kasus berikut:
- Anda telah membuat lingkungan conda
- Lingkungan ini telah menginstal jupyter (yang juga menginstal ipykernel)
- Saat Anda menjalankan perintah
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.
- Anda ingin agar meluncurkan buku catatan baru dengan 'python3' dalam lingkungan apa pun mengeksekusi versi Python dari lingkungan itu dan BUKAN dasarnya
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:
python -m ipykernel install --user --name test_env --display-name "Python (test_env)"
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).
python3 /Users/Ted/Library/Jupyter/kernels/python3
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:
ls /Users/Ted/anaconda3/envs/test_env/share/jupyter/kernels
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:
jupyter kernelspec remove python3
Sekarang ketika Anda menjalankan jupyter kernelspec list
, dengan asumsi test_env masih aktif, Anda akan mendapatkan yang berikut:
python3 /Users/Ted/anaconda3/envs/test_env/share/jupyter/kernels/python3
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.
conda install ipykernel
di lingkungan itu.