IPython Not Defteri'nde hem Python 2.x hem de Python 3.x kullanma


255

IPython not defterlerini kullanıyorum ve IPython'da 2.x veya 3.x python not defteri oluşturmayı seçebilmek istiyorum.

Başlangıçta Anaconda vardı. Anaconda ile hangi python sürümünü istediğinizi seçmek için global bir ortam değişkeninin değiştirilmesi gerekiyordu ve daha sonra IPython başlatılabiliyordu. Bu aradığım şey değil, bu yüzden Anaconda'yı kaldırdım ve şimdi MacPorts ve PiP kullanarak kendi kurulumumu kurdum. Hala kullanmam gerekiyor gibi görünüyor

port select --set python <python version> 

python 2.x ve 3.x arasında geçiş yapmak için. ki bu anakonda çözeltisinden daha iyi değildir.

Tercihen geçerli MacPorts derlememle bir IPython dizüstü bilgisayarını başlattıktan sonra kullanmak istediğiniz python sürümünü seçmenin bir yolu var mı?


Yanıtlar:


337

Buradaki fikir, birden çok ipythonçekirdek kurmaktır. İşte anaconda için talimatlar. Anaconda kullanmıyorsanız, son zamanlarda saf sanal komutlar kullanarak talimatlar ekledim .

Anaconda> = 4.1.0

4.1.0 sürümünden bu yana, anaconda, nb_conda_kernelsdizüstü bilgisayar çekirdeklerine sahip conda ortamlarını algılayan ve bunları otomatik olarak kaydeden özel bir paket içerir . Bu, yeni bir python sürümünü yeni conda ortamları oluşturmak kadar kolay hale getirir:

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

Jupyter dizüstü bilgisayarın yeniden başlatılmasından sonra, grafik arayüz üzerinden yeni çekirdekler kullanılabilir. Yeni paketlerin yeni ortamlara açıkça yüklenmesi gerektiğini lütfen unutmayın. Yönetme ortamları Conda dokümanlarının bölümünde ayrıntılı bilgi sağlar.

Çekirdekleri manuel olarak kaydetme

nb_conda_kernelsAnaconda'nın eski sürümlerini kullanmak istemeyen veya kullanmaya devam eden kullanıcılar ipython çekirdeklerini manuel olarak kaydetmek için aşağıdaki adımları kullanabilir.

python2.7ortamı yapılandırın :

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

python3.6ortamı yapılandırın :

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

Bundan sonra , arayüzde yeni bir not defteri oluştururken python2
ve python3oluştururken seçim yapabilmeniz gerekir .

Ayrıca , çekirdeklerinizin adlarını değiştirmek istiyorsanız --nameve --display-nameseçeneklerini de iletebilirsiniz ipython kernel install. Daha ipython kernel install --helpfazla bilgi için bakınız .


Çözümünüz kullandığım çözüme çok benziyor ve prensipte çalışmasını bekliyorum. Zaten anaconda'yı kaldırdığımdan ve bu çalışmayı yaptığımdan beri doğrulayamayacağım.
deltap

9
Çekirdek özelliklerini kök gerektirmeden ayarlamak istiyorsanız, ipython kernelspec install-self --userbunları geçerli kullanıcı için yükleyebilirsiniz.
Thomas K

1
Anladım! Cevabınız yardımcı oldu! dropbox.com/s/6ayqf55ctkv2xgk/…
Clever Programmer

7
Anahtar öğe, ilk Anaconda ile birlikte gelmedi nb_conda_kernels INSTALL gerekir! Teşekkürler!
dartdog

1
@cel, gerçekten jupyter başlattığım ortam nb_conda_kernels paket varsayılan olarak yüklü değil. Tüm yorumları okumak için zaman ayırmadım: belki cevabınızı düzenleyebilir ve dartdog'un remak'ını ekleyebilirsiniz.
Antoine Gautier

276

Python 3'te Jupyter çalıştırıyorsanız, şöyle bir Python 2 çekirdeği ayarlayabilirsiniz:

python2 -m pip install ipykernel

python2 -m ipykernel install --user

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


52
Python2 zaten kurulduysa ve python3'e ihtiyacınız varsa '3' için '2'yi değiştirin. Bunun neden en iyi cevap olmadığını anlamıyorum, kesinlikle Occam'ın jiletiyle kazanıyor ve benim için çalıştı.
wordsforthewise

6
Mükemmel çalışıyor. Gerçekten ilk cevap olmalı.
JSmyth

2
python2 komutu python'un içine dahil edilmiş mi? Lütfen bu cevabı ayrıntılı bir şekilde açıklayınız. :)
verystrongjoe

3
Bu çalışır, ancak benim sistem python 2 ek paketleri ile bağlı değil. Mevcut bir python ikili / çalıştırılabilir dosyasına bağlamanın bir yolu var mı?
Rutger Hofste

1
Sadece yerine, mükemmel win10 çalışıyor python2ile your\path\to\python(2).exe.
Lucien

42

Bu talimatlar, python2 ve python3 çekirdeğinin anaconda olmayan kullanıcılar için ayrı sanal ortamlara nasıl kurulacağını açıklar. Anaconda kullanıyorsanız, doğrudan anaconda'ya özel olarak hazırlanmış bir çözüm için lütfen diğer cevabımı bulun .

Zaten jupyter notebookkurduğunuzu varsayıyorum .


Öncelikle bir python2ve bir python3tercümanınızın olduğundan emin olun pip.

Ubuntu'da bunları şu şekilde yüklersiniz:

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

Sonra çekirdek ortamlarını hazırlayın ve kaydedin

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

İşleri kolaylaştırmak için, kabuk yapılandırma dosyanıza etkinleştirme komutu için kabuk takma adları eklemek isteyebilirsiniz. Sistemine bağlı olarak ve kullanmak kabuk, bu olabilir mesela ~/.bashrc, ~/.bash_profileya da~/.zshrc

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

Kabuğunuzu yeniden başlattıktan sonra, kullanmak istediğiniz ortamı etkinleştirdikten sonra yeni paketler yükleyebilirsiniz.

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

veya

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

bunu noktaya kadar takip etti, yüklü pandalar, jupyter'ı başlattı, py3 çekirdeğine geçti: içe aktarma pandaları 'bulunamadı' hatasıyla başarısız oldu. Beni
çıldırtıyor

1
@ user1255933, muhtemelen yanlış pip sürümü olan bir yüklemeden kaynaklanıyor. Hedef ortam etkinleştirilemediğinde veya bir pip sürümü içermiyorsa bu gerçekleşebilir. Cevabımı burada ilginç bulabilirsiniz: stackoverflow.com/questions/32680081/… .
cel

Çekirdeği yüklemek için anaconda olmayan bir yol kullanma talimatı için teşekkür ederiz
mdivk 19

37

Notebook / Jupyter'ın geçerli bir sürümüyle bir Python3 çekirdeği oluşturabilirsiniz . Python 2 ile komut satırından yeni bir dizüstü bilgisayar uygulaması başlattıktan sonra, “Yeni” açılır menüsünde bir “Python 3” girişi görmelisiniz. Bu size Python 3 kullanan bir dizüstü bilgisayar verir. Böylece farklı Python sürümleriyle yan yana iki dizüstü bilgisayarınız olabilir.

Ayrıntılar

  1. Bu dizini oluştur: mkdir -p ~/.ipython/kernels/python3
  2. Bu dosyayı ~/.ipython/kernels/python3/kernel.jsonbu içerikle oluşturun:

    {
        "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. Dizüstü sunucuyu yeniden başlatın.

  4. "Yeni" açılır menüsünden "Python 3" ü seçin
  5. Python 3 Dizüstü Bilgisayarla Çalışma
  6. "Yeni" açılır menüsünden "Python 2" yi seçin
  7. Python 2 Dizüstü Bilgisayarla Çalışma

Bu harika ve ben bu çalışmayı almaya çalışıyorum, ama jupyterbu senaryoda nasıl başlayacağını belirtebilir miyim (ya çalıştırmak zorunda ipython notebookya da ipython3 notebook). Şu anda sadece birini ya da diğerini çalıştırabiliyorum (ilgili ortamları ile, ama içeride listelenen her iki çekirdeği de görüyorum jupyter. Belki nasıl başlayacağınızı ve yan yana jupyterçalışabilmem için nasıl başlayacağınızı içerecek şekilde cevabınızı genişletebilir misiniz ? Teşekkürler!python2python3
Chris

1
Tamam, sanırım ben anladım - Ben (OS X) kernel.jsoniçindeki dosyayı ayarlamak ~/Library/Jupyter/kernels/python3/ve bağlantılı dosyada belirtilen argümanları eklemek zorunda kaldı.
Chris

@Chris Evet, bağlantının arkasındaki açıklama bir IPython Not Defteri'nde verilirken, bir düzenleyicide yapılabilir. Belirli bir yolda ve gösterilen içerikte belirli bir ada sahip bir dosya oluşturun veya değiştirin. Sorununu çözmene sevindim.
Mike Müller

Yanıtınızı, bu bağlantıdaki ayrıntıları içerecek şekilde düzenlemenizi tavsiye ederim. Yanıtlar en önemli kısmı bir bağlantının "arkasında" saklamamalıdır.
Chris

1
@Chris Bağlantıdan detaylar eklendi.
Mike Müller

22

Ipython kernelspec'i yapılandırarak MacPorts kurulumumu korumamı sağlayan bir çözüm mevcut.

Gereksinimler:

  • MacPorts her zamanki / opt dizinine yüklenir
  • python 2.7 macports üzerinden kurulur
  • python 3.4 macports üzerinden kurulur
  • Python 2.7 için Ipython yüklü
  • Python 3.4 için Ipython yüklü

Python 2.x için:

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

Python 3.x için:

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

Şimdi bir Ipython not defteri açabilir ve sonra bir python 2.x veya bir python 3.x not defteri seçebilirsiniz.

Pitonunuzu seçin!


Defterleri aynı örnekte yan yana çalıştırabileceğinizi python2ve python3çekirdeklerini çalıştırabileceğinizi lütfen onaylar jupytermısınız? Bu durumda, tam olarak jupyterçakışan yollara sahip olmamaya nasıl başlıyorsunuz ? Şu anda sadece uygun ortamı önceden ayarlayarak çalıştırabilir python2veya python3kod $PATH $PYTHONPATHyazabilirim. Bundan bir şekilde kaçınabilir miyim?
Chris

Python2 veya python3 çekirdek defterlerini çalıştırabilirim.
deltap

Nasıl başlarım jupyter(onun için yüklü olduğunu verilmiş python 2.7ve için python 3.4) Eğer $ PYTHONPATH tanımlı veya bazı sanal ortam kaynaklı mı? Sadece ipython notebookmi arıyorsun? Eğer öyleyse, hangisi ipython- 2.7 veya 3.4 için yüklü olana atıfta bulunuyor?
Chris

Sadece arıyorum python notebook. which ipythonişaret ettiğini gösterir/opt/local/Library/Frameworks/Python.framework/Versions/3.4/bin/ipython
deltap

Tamam, sorunumu çözdüm ve önceden tanımlanmış bir şeyle ilgisi vardı $PYTHONPATH, bu da anahtarlama çekirdeklerini zorlaştırıyor. unset PYTHONPATHBaşlamadan önce yapmam gerekiyordu ipythonve şimdi işe yarıyor.
Chris

18

Linux kurulumumdan yaptım:

sudo ipython2 kernelspec install-self

Ve şimdi benim python 2 tekrar listeye girdi.

Referans:

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


GÜNCELLEME:

Yukarıdaki yöntem artık kullanımdan kaldırılmıştır ve gelecekte kaldırılacaktır. Yeni yöntem şöyle olmalıdır:

sudo ipython2 kernel install


2
Ubuntu kurulumuma rasgele yapıştırma komutlarından nefret ediyorum, ama bu benim için işe yaradı.
Joseph

1
Seçilen cevap olmalı.
e9t

1
Kısa ve öz, bu çözümü Mac OS X üzerinde uyguladım, sorunsuz çalışıyor.
Konrad

1
Bütün cevapları denedim. Ama bu benim için çalıştı. Ubuntu üzerinde iseniz deneyin.
sinsuren

1
Ve nereden bulabilirim ipython2?
sudo

5

Jupyter notebook'a python2 çekirdeğini ekleme adımları şunlardır:

bir terminal açın ve yeni bir python 2 ortamı oluşturun: conda create -n py27 python=2.7

çevreyi etkinleştirin: Linux source activate py27veya Windowsactivate py27

çekirdeği env içine yükleyin: conda install notebook ipykernel

env dışında çekirdeği kurun: ipython kernel install --user

env'i kapat: source deactivate

Her ne kadar geç cevap umut birisi yararlı bulur: p


Bu, @ cel'nin cevabında açıkça ifade edilenin ötesinde bir şey eklemez .
merv

3

Kullanım sudo pip3 install jupyterpython3 için jupyter yüklemek için ve sudo pip install jupyterpython2 için jupyter dizüstü yüklemek için. Ardından, ipython kernel installjupyter not defterinde her iki not defteri türünü de etkinleştirmek için command komutunu çağırabilirsiniz .


1

Bu mükemmel bilgiye baktım ve merak ettim ,

  1. yüklü python2, python3 ve IPython var,
  2. yüklü PyCharm var,
  3. PyCharm , Python Konsolu için IPython kullanıyor,

eğer pycharm kullanırsınız

  1. IPython-py2 olduğunda Menü> Dosya> Ayarlar> Proje> Proje Yorumlayıcı == py2 VE
  2. Menü> Dosya> Ayarlar> Proje> Proje Yorumlayıcı == py3 olduğunda IPython-py3

CEVAP: Evet!

PS i de Windows için Python Launcher yüklü var.


0

Windows 7 altında anaconda ve anaconda3 yüklü. Girdim \Users\me\anaconda\Scriptsve idam ettim

sudo .\ipython kernelspec install-self

sonra içeri girdim \Users\me\anaconda3\Scriptsve infaz ettim

sudo .\ipython kernel install

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

jupyter notebookBaşladıktan sonra (anaconda3'te) sağ üst köşede "Yeni" nin altında Python 2 odr Python 3 çekirdekleri arasında seçim yapmama izin veren düzgün bir açılır menü aldım.


0
  • Anaconda'yı sanal ortamda çalıştırıyorsanız.
  • Ve yeni bir not defteri oluşturduğunuzda ancak sanal ortam çekirdeğini seçmeyi göstermiyorum.
  • Sonra aşağıdaki komutu kullanarak ipykernel içine ayarlamak gerekir
$ pip install --user ipykernel
$ python -m ipykernel install --user --name=test2
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.