Anyone knows the status of IJulia for Julia v.0.7/1.0 under Windows 10? I know this is an Issue for the IJulia package, and there is still activity on this in the Julia Observer section.
I just updated Julia v.0.7 on my home computer (I’ve done this regularly), including IJulia with v.1.9.3 installed. IJulia starts up fine. When I open a notebook set with kernel Julia 0.7 and execute code 2*2, the notebook just hangs. If I interrupt and switches the kernel to Python 3.0, the response is instantaneous.
If I use Juno, that works fine.
For various reasons, I’ve used IJulia instead over Juno in the past, so I miss the possibility of test my past notebooks.
OK… IJulia: status on v.0.6.4 vs. v.0.7/1.0 on Windows 10:
Latest IJulia v. 1.10.0 works sometimes on my Windows 10 computers with Julia 0.7/1.0. Versions of IJulia prior to v. 1.10.0 didn’t work at all with Julia v.0.7/1.0.
In IJulia, both Julia 0.6.4 and Julia 0.7/1.0 (when it works) as kernels give sluggish response compared to the response with Python 3 as kernel.
Example: 1+1 is evaluated “immediately” when I use Python 3 as kernel. With Julia as kernel, the evaluation may take a couple (or more) of seconds the first time I evaluate a cell… faster with evaluation in follow-up cells.
So: I didn’t look into the performance of previous versions of IJulia (prior to v. 1.10.0) with kernels Python 3 vs. Julia 0.6.4. If the Julia kernel is slow for earliers versions of IJulia, does that indicate a slumbering problem/instability in the Julia-IJulia connection?
Then it works for anything between 10 seconds to a minute or so; notebooks are basically unusable on Windows right now. It’s rather unfortunate, I ended up having to install a Linux distro just to get some working notebooks!
I’m not sure what you mean with sluggish response, the first cell always takes a little longer (some compilation going on, I’d guess). It is noticably worse than what you experience when running a notebook on JuliaBox?
Yes, I checked the discussion within the IJulia.jl GitHub page. Since I have virtually zero experience with GitHub (and no account), I couldn’t comment there.
I noticed that someone had had some success by changing the IJulia ENV, but I also saw that some well known developers within the Julia society indicated that all the tricks presented were not truly useful.
Anyway, on my two computers (Julia v.0.7.0 at home, Julia v.1.0 at work desktop), I don’t do anything wrt. changing the ENV… I simply issue command notebook() or notebook(detached=true) from the REPL. Prior to IJulia v. 1.10.0, nothing worked on these two. With IJulia v 1.10.0, I get response sometimes, but not always. At the same time: if I switch kernel to Python 3, I’ve never had problems, but as soon as I switch back to Julia kernel, the sluggishness and lack of response is back.
When IJulia works, the kernel status looks like this:
where the lower right bullet is a circle (howevering the cursor over the bullet shows “kernel idle”).
When IJulia doesn’t work, the bullet is filled, and howevering the cursor over it shows “kernel busy” – with no response.
Some people claim to have seen similar response with Python kernel; I have only seen it with a Julia kernel (v > 0.6.4).
My experience with Julia v.0.6.4 as kernel (on my private laptop) is that that has always worked with IJulia. But I still have a feeling that the response with Python kernel is much more snappy. I may be wrong, though.
Yes, IJulia seems to work now!! Thanks a lot!! One comment and one question:
Using Python 3 as kernel still gives much snappier response then when using Julia as kernel. Any reason why? (Since the overhead for calling Python is so low in Julia…)
Will Jupyter Lab work with IJulia now? If so, how to I download and start Julia Lab?
When you first start an IJulia session, many things are getting compiled the first time you call them, which is why Python can seem snappier for interactive use.
(IJulia does not call Python. Jupyter communicates with language kernels using ZMQ.)
JupyterLab has worked for some time now, so it should still work.
Open your command prompt outside of the Julia REPL and type jupyter lab. Similarly, if you had wanted to start the notebook outside of the Julia REPL then type jupyter notebook. Though you do need Jupyter lab installed first.
Install Jupyter Lab via Anaconda. (Assumingly for Python 3, and not Python 2??; > conda install jupyterlab, or conda install -c conda-forge jupyterlab or something?)
Type jupyter lab in a command window of Windows 10 (e.g., the one for Python 3).
Questions:
Will then the Julia kernel automatically become available in the opened jupyter lab browser window?
If so (Julia automatically available), do I need IJulia at all, then?
If you do that then it sounds like you might be installing a second Conda distribution just to run jupyterlab, whereas there should already be one installed inside your .julia folder—that’s the one that gets called if you do IJulia.notebook()). Unfortunately there’s nothing built into IJulia to let you run jupyterlab through that Conda distribution yet. I’ve suggested it, something like IJulia.lab(), but haven’t gotten around to putting together a PR for it yet.
Jupyterlab uses the same notebook kernels, so if you have got notebooks working then the lab interface should work too
Ah. OK – I already have another Python installment (Python 2.7 + Python 3.x) on my computer, but I understand the logics of using the one provided with Julia.
OK: the two first statements are carried out in the Julia REPL, I assume. (using Conda, Conda.add(...)).
The two second commands (“to run it”) – are those also carried out in the Julia REPL? Do I have to issue these four commands every time I want to run JupyterLab?
Yes. Or you can use the first jupyter = ... command to find the path of Jupyter and then run it from an OS terminal if you want.
Do I have to issue these four commands every time I want to run JupyterLab?
You don’t need the Conda.add. But you need to run the jupyter lab command every time you want to launch JupyterLab. (Or just leave it running all the time in the background, and connect to it from your browser when desired.)
julia> jupyterlab = joinpath(Conda.BINDIR,"jupyter")*"-lab"
"C:\\Users\\user_name\\.julia\\packages\\Conda\\m7vem\\deps\\usr\\Library\\bin\\jupyter-lab"
julia> run(`$jupyterlab`)
ERROR: IOError: could not spawn `'C:\Users\user_name\.julia\packages\Conda\m7vem\deps\usr\Library\bin\jupyter-lab'`: no such file or directory (ENOENT)
Stacktrace:
[1] _jl_spawn(::String, ::Array{String,1}, ::Cmd, ::Tuple{RawFD,RawFD,RawFD}) at .\process.jl:370
[2] (::getfield(Base, Symbol("##499#500")){Cmd})(::Tuple{RawFD,RawFD,RawFD}) at .\process.jl:512
[3] setup_stdio(::getfield(Base, Symbol("##499#500")){Cmd}, ::Tuple{RawFD,RawFD,RawFD}) at .\process.jl:493
[4] #_spawn#498(::Nothing, ::Function, ::Cmd, ::Tuple{RawFD,RawFD,RawFD}) at .\process.jl:511
[5] _spawn at .\process.jl:507 [inlined]
[6] #run#509(::Bool, ::Function, ::Cmd) at .\process.jl:669
[7] run(::Cmd) at .\process.jl:668
[8] top-level scope at none:0