Usando ambos Python 2.x e Python 3.x no IPython Notebook

Eu uso notebooks IPython e gostaria de poder escolher entre criar um notebook 2.x ou 3.x python em IPython.

Inicialmente eu tinha Anaconda. Com o Anaconda uma variável de ambiente global teve de ser alterada para seleccionar que versão de python quer e depois o IPython podia ser iniciado. Isto não é o que eu estava procurando, então eu desinstalei o Anaconda e agora eu configurei minha própria instalação usando MacPorts e PiP. Parece que eu ainda tenho que usar o

port select --set python <python version> 

para alternar entre python 2.x e 3.x., que não é melhor que a solução anaconda.

Existe alguma forma de seleccionar que versão de python quer usar depois de iniciar um IPython notebook, de preferência com a minha versão actual do MacPorts?

A idéia aqui é instalar múltiplos kernels de "ipython". Aqui estão as instruções para o anaconda. Se você não está usando o anaconda, eu recentemente adicionei instruções usando virtualenvs puros.

Anaconda >= 4.1.0

Desde a versão 4.1.0, o anaconda inclui um pacote especial `nb_conda_kernels' que detecta ambientes conda com kernels de notebooks e os registra automaticamente. Isso torna a utilização de uma nova versão python tão fácil quanto a criação de novos ambientes conda:

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

Após um reinício do notebook jupyter, os novos kernels estão disponíveis através da interface gráfica. Note que os novos pacotes têm de ser explicitamente instalados nos novos ambientes. A seção Gerenciando ambientes em conda's docs fornece mais informações.

Registo manual de caroços

Os usuários que não querem utilizar o `nb_conda_kernels' ou ainda utilizar versões mais antigas do anaconda podem utilizar os seguintes passos para registrar manualmente os kernels do ipython.

configurar o ambiente python2.7:

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

configurar o ambiente python3.6:

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

Depois disso você deve ser capaz de escolher entre python2. e python3 ao criar um novo notebook na interface.

Adicionalmente você pode passar as opções --nome' e--display-nome' para ipython kernel install' se você quiser mudar os nomes dos seus kernels. Vejaipython kernel install --help` para mais informações.

Comentários (37)

Com uma versão atual do Notebook/Jupyter, você pode criar um kernel Python3. Após iniciar um novo aplicativo de notebook a partir da linha de comando com o Python 2 você deve ver uma entrada "Python 3" no menu suspenso "New". Isto dá-lhe um bloco de notas que usa o Python 3. Assim pode ter dois blocos de notas lado a lado com diferentes versões do Python.

Os Detalhes

  1. Crie este diretório: mkdir -p ~/.ipython/kernels/python3

  2. Crie este arquivo ~/.ipython/kernels/python3/kernel.json com este conteúdo:

     {
         "display_name": "IPython (Python 3)",
         "linguagem": "python",
         "argv": [
             "python3",
             "-c", "do IPython.kernel.zmq.kernelapp import main; main()",
             "-f", "{connection_file}"
         ],
         "codemirror_mode": {
             "versão": 2,
             "nome": "ipython"
         }
     }
  3. Reinicie o servidor do notebook.

  4. Selecione "Python 3" no menu suspenso "Novo".

  5. Trabalhar com um Caderno Python 3

  6. Selecione "Python 2" no menu suspenso "Novo".

  7. Trabalhar com um Caderno Python 2

Comentários (8)
Solução

Está disponível uma solução que me permite manter a instalação do meu MacPorts configurando o kernelspec do Ipython.

Requisitos:

  • MacPorts está instalado no diretório habitual /opt
  • python 2.7 é instalado através de macports
  • python 3.4 é instalado através de macports
  • Ipython é instalado para python 2.7
  • Ipython é instalado para python 3.4

Para o python 2.x:

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

Para o python 3.x:

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

Agora você pode abrir um caderno Ipython e depois escolher um python 2.x ou um python 3.x notebook.

Escolhe a tua pitão2

Comentários (5)