Bruke både Python 2.x og Python 3.x i IPython Notebook

Jeg bruker IPython-notatbøker og vil gjerne kunne velge å opprette en 2.x eller 3.x python-notatbok i IPython.

Jeg hadde opprinnelig Anaconda. Med Anaconda måtte en global miljøvariabel endres for å velge hvilken versjon av python du vil ha, og deretter kunne IPython startes. Dette var ikke det jeg lette etter, så jeg avinstallerte Anaconda og har nå satt opp min egen installasjon ved hjelp av MacPorts og PiP. Det ser ut til at jeg fortsatt må bruke

port select --set python <python version> 

for å veksle mellom python 2.x og 3.x. som ikke er bedre enn anaconda-løsningen.

Er det en måte å velge hvilken versjon av python du vil bruke etter at du har startet en IPython-notatbok, helst med min nåværende MacPorts-versjon?

Ideen her er å installere flere ipython kjerner. Her er instruksjoner for anaconda. Hvis du ikke bruker anaconda, la jeg nylig til instruksjoner ved hjelp av rene virtualenvs.

Anaconda >= 4.1.0

Siden versjon 4.1.0 inkluderer anaconda en spesiell pakke nb_conda_kernels som oppdager conda-miljøer med bærbare kjerner og registrerer dem automatisk. Dette gjør det like enkelt å bruke en ny python-versjon som å opprette nye conda-miljøer:

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

Etter en omstart av jupyter notebook er de nye kjernene tilgjengelige over det grafiske grensesnittet. Vær oppmerksom på at nye pakker må installeres eksplisitt i de nye miljøene. Avsnittet Administrere miljøer i conda's dokumenter gir ytterligere informasjon.

Manuell registrering av kjerner

Brukere som ikke ønsker å bruke nb_conda_kernels eller fortsatt bruker eldre versjoner av anaconda, kan bruke følgende trinn for å registrere ipython-kjerner manuelt.

konfigurer python2.7-miljøet:

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

konfigurer python3.6-miljøet:

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

Etter det skal du kunne velge mellom python2 og python3 når du oppretter en ny notisbok. og python3 når du oppretter en ny notatbok i grensesnittet.

I tillegg kan du sende --name og --display-name alternativene til ipython kernel install hvis du vil endre navnene på kjernene dine. Se ipython kernel install --help for mer informasjon.

Kommentarer (37)

Med en aktuell versjon av Notebook/Jupyter kan du opprette en Python3-kjerne. Etter å ha startet en ny notatbokapplikasjon fra kommandolinjen med Python 2, bør du se en oppføring "Python 3" i rullegardinmenyen "Ny". Dette gir deg en notatbok som bruker Python 3. Så du kan ha to notatbøker side om side med forskjellige Python-versjoner.

Detaljer

  1. Opprett denne katalogen: mkdir -p ~/.ipython / kjerner / python3

  2. Opprett denne filen ~/.ipython/kernels/python3/kernel.json med dette innholdet:

     {
         "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. Start den bærbare serveren på nytt.

  4. Velg "Python 3" fra rullegardinmenyen "Ny".

  5. Arbeid med en Python 3 Notebook

  6. Velg "Python 2" fra rullegardinmenyen "Ny".

  7. Arbeid med en Python 2 Notebook

Kommentarer (8)
Løsning

En løsning er tilgjengelig som lar meg beholde MacPorts-installasjonen min ved å konfigurere Ipython kernelspec.

Forutsetninger:

  • MacPorts er installert i den vanlige /opt-katalogen
  • python 2.7 er installert gjennom macports
  • python 3.4 er installert gjennom macports
  • Ipython er installert for python 2.7
  • Ipython er installert for python 3.4

For python 2.x:

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

For python 3.x:

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

Nå kan du åpne en Ipython-notatbok og deretter velge en python 2.x eller en python 3.x-notatbok.

]1

Kommentarer (5)