Back in 2013, I was looking for an open-source alternative to Matlab (my weapon of choice for the 20+ years prior). The obvious candidates were:
- Python
- R
- Octave
I quickly ruled out Octave and didn’t see myself using R so was about to go with Python, when I found this new kid on the block, Julia lang, and there was no looking back
Since then, I’ve actively tried to avoid Python (my brain can only handle so much), but occassionally I need something Python related. I know it is mostly because I’m clueless about Python, but every time I wade in those waters, it feels like hell on Earth
Every few months, I feel I learn / struggle enough to get what I need done, but promptly forget and have to repeat the same misery every few months.
These notes are mainly for myself, but might help anyone else in a similar situation
Package Manager
I guess Python has a few different package managers, but the ones you (I) probably need to be aware of are pip
and conda
. These are typically run from the command line, but after installing IJulia, those commands are not available from the Windows command line.
Do not be fooled into installing a new Python just so you can access these package managers (like I did!).
Instead, when you install IJulia, it also installs a dependency: Conda.jl.
If you want to install any Jupyter extensions, you can use Conda for this from Julia. No need to wade into Python waters
Registries
Realizing I could use Conda from Julia was a huge relief (I could uninstall the Python I erroneously installed earlier trying to get pip
to work), but that was only part of the picture. Aparently, Python has something called “channels”, which seem to me very similar to registries in Julia.
Conda has some registries, err… channels, preconfigured, but it didn’t have the one I needed, which was conda-forge.
The solution, in traditional Julia form, was easy peasy:
julia> Conda.add_channel("conda-forge")
From there, I could install the notebook extensions
julia> Conda.add("jupyter_contrib_nbextensions")
So far so good!
Enabling the Extensions
If anyone has a better way to do this from Julia, please let me know, but you may need to access the jupyter
command. I don’t know how to access this from Julia, so I had to leave the comfort of Julia and go back to the command line.
However, as noted in the IJulia README:
Note that if you installed
jupyter
via automated Miniconda installer inPkg.add
, above, thenjupyter
may not be in yourPATH
; typeimport Conda; Conda.SCRIPTDIR
in Julia to find out where Conda installedjupyter
.
I admit, I almost installed Python AGAIN to access this command until I found that note in the README
After finding the correct path and adding it to my PATH
environment variable, I was able to access jupyter
from the command line.
However, to enable to extensions, it turns out I didn’t even need the jupyter
command. Back in the comfort of Julia, you can run:
julia> Conda.add("jupyter_nbextensions_configurator")
Voila!
Now, if you shut down Jupyter completely and restart IJulia, you should have an “nbextensions config” option under the Edit menu. Alternatively, you can just navigate directly to
http://localhost:8888/nbextensions
I hope this helps someone, but it will surely help a future me