(PS2016/1/13) After reading Jupyter is coming so fast, prepare for you (IPython Notebook + R), I'm addicted to Jupyter.
I'm using pyenv
to make Anaconda 2 and Anaconda 3 coexist, but when switching between Anaconda versions with Jupyter, after quitting Jupyter, switch with pyenv and start again! It became troublesome to do. I wish I could easily switch between Python 2 and Python 3 from the New menu! I thought, so I tried to set that area. (Because I'm new to Jupyter, please let me know in the comments if there is an easier way ...)
The following Python is installed in pyenv.
Whether you use pyenv or not, Jupyter reflects the Python environment applied by pyenv.
However, it gets in the way when using Jupyter. I want to be able to easily switch between Anaconda 2 and Anaconda 3. Therefore, I will put a symbolic link as follows so that each Anaconda can be started directly.
cd /usr/local/bin/ #Where the PATH is
ln -s ~/.pyenv/versions/anaconda-2.4.0/bin/python ./jupyter-python2
ln -s ~/.pyenv/versions/anaconda3-2.4.0/bin/python ./jupyter-python3
I'm doing this for a file called kernel.json
that I'm about to write, is there a better way ...?
Now let's make Python 2 and Python 3 appear together in the New menu.
First, hit the following command.
mkdir -p ~/.ipython/kernels/python3
mkdir ~/.ipython/kernels/python2
touch ~/.ipython/kernels/python3/kernel.json
touch ~/.ipython/kernels/python2/kernel.json
In this way, you can add kernels by creating a .ipython / kernels
directory in your home directory and a directory with a kernel.json
file under it.
Now, edit ~ / .ipython / kernels / python2 / kernel.json
with your favorite editor as follows.
python2/kernel.json
{
"display_name": "Python 2"
"language": "python"
"argv": [
"jupyter-python2",
"-m", "ipykernel",
"-f", "{connection_file}"
]
}
In this way, you can specify the command and its arguments in the " argv "
field. So, if you specify jupyter-python2
earlier, Jupyter will start Anaconda 2 by selecting" Python 2 "no matter which Python is applied in pyenv.
Here, I got into the "ipykernel" part. Actually, when I look at various sites, this part is described as "IPython.kernel". When I did the same in my environment, I got the following Warning, which didn't seem to be good.
ShimWarning: The `IPython.kernel` package has been deprecated.
From the Warning statement that was output at that time, I felt the atmosphere of "No, import the ipykernel", so when I specified ʻipykernel` as it is now, Warning disappeared , It has settled down to its current shape.
So, based on that, I also write python3
as follows.
python3/kernel.json
{
"display_name": "Python 3"
"language": "python"
"argv": [
"jupyter-python3",
"-m", "ipykernel",
"-f", "{connection_file}"
]
}
This should probably allow you to switch within your notebook without having to go back to pyenv.
y__sama gave me some information in the comments, so I don't have to do the above crazy things, so I'll add it here.
By the way, there is a command called conda
in the Anaconda area. I knew it existed, but I didn't know what it was. (Eh.) Simply put, this also seems to create a virtual environment.
For example, by using conda
of anaconda3, I could create a virtual environment jupyter-py2
like ~ / .pyenv / versions / anaconda3-2.4.0 / envs / jupyter-py2 /
.
With the Python virtual environment active, you can type the following command to automatically add the kernel to ~ / Library / Jupyter / kernels /
.
jupyter kernelspec install-self --user
Looking at my usage and the contents of the generated kernel.json
, I felt that there was no need to create a virtual environment with conda
. So now (for now) it looks like this:
--Prepare anaconda2 and anaconda3 in pyenv
--Activate anaconda2, jupyter kernelspec install-self --user
--Activate anaconda3, jupyter kernelspec install-self --user
Anyway, all you need to know is jupyter kernelspec install-self --user
. Thank you for studying.
At this point, you'll want to add the Julia kernel as well. I think Jupyter is also useful for studying Julia, which is a hot topic these days, so I will add it at this opportunity.
I dropped the dmg file from Julialang.org/downloads and installed it. It seems that you can do it with Homebrew, but I have the impression that the build failed or it was troublesome, so this is recommended (laugh)
After that, put the alias julia
in /Applications/Julia-0.4.2.app/Contents/Resources/julia/bin/julia
.
Then install ʻIJulia`. Start Julia and type:
Pkg.add("IJulia")
Then, in my case, the following error was output near the end.
===============================[ ERROR: IJulia ]================================
LoadError: __precompile__(true) but require failed to create a precompiled cache file
while loading /Users/"username"/.julia/v0.4/IJulia/deps/build.jl, in expression starting on line 2
================================================================================
=====================================[ BUILD ERRORS ]=====================================
WARNING: IJulia had build errors.
- packages with build errors remain installed in /Users/"username"/.julia/v0.4
- build the package(s) and all dependencies with `Pkg.build("IJulia")`
- build a single package by running its `deps/build.jl` script
==========================================================================================
I thought this was ... but it worked if I did the following. why? Lol
Pkg.rm("IJulia")
Pkg.add("IJulia")
At this point, start Julia and do the following to start notebook as usual.
using IJulia
notebook()
It was added to the New menu like this.
After that, even if I opened Jupyter notebook in Python, there was an item of Julia in the New menu, so it seems that there is no need to write kernel.json
for julia as before. (If necessary, add a style at that time lol)
So it's sunny and I can write notebooks in Julia! Thank you for your hard work.
Julia kernels added this way are saved in ~ / Library / Jupyter /
.
People like me who are annoyed by the details such as wanting to change "Julia 0.4.2" to "Julia" in the NEW menu of the notebook should take a look at kernel.json
here.
These are the articles and sites that were taken care of this time. I hope this is also helpful!
-Jupyter environment setting supplement #pythontokai
Recommended Posts