# How open tutorials in jupyter from github.com/SciML/SciMLTutorials.jl?

**URL:** <https://discourse.julialang.org/t/how-open-tutorials-in-jupyter-from-github-com-sciml-scimltutorials-jl/64877>\
**Category:** General Usage\
**Tags:** jupyter\
**Created:** [July 18, 2021, 8:29pm UTC](https://discourse.julialang.org/t/how-open-tutorials-in-jupyter-from-github-com-sciml-scimltutorials-jl/64877 "2021-07-18T20:29:05Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![murrayE](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/murraye/32/24428_2.png) [@murrayE](https://discourse.julialang.org/u/murrayE)\
**Post date:** [July 18, 2021, 8:29pm UTC](https://discourse.julialang.org/t/how-open-tutorials-in-jupyter-from-github-com-sciml-scimltutorials-jl/64877/1 "2021-07-18T20:29:05Z")

</div>

In the REPL, I added [https://github.com/SciML/SciMLTutorials.jl](https://github.com/SciML/SciMLTutorials.jl). Next, I started conda and in the conda base started the jupyter server.

According to the docs for SciMLTutorials.jl, one is supposed to open the provided notebooks in jupyter by using the commands:

```julia
using IJulia, SciMLTutorials
SciMLTutorials.open_notebooks()

```

But this causes error:

```julia
ERROR: jupyter not found is not installed, cannot run notebook
Stacktrace:
 [1] error(s::String)
   @ Base ./error.jl:33
 [2] find_jupyter_subcommand(subcommand::String)
   @ IJulia ~/.julia/packages/IJulia/e8kqU/src/jupyter.jl:25
 [3] notebook(; dir::String, detached::Bool)
   @ IJulia ~/.julia/packages/IJulia/e8kqU/src/jupyter.jl:96
 [4] open_notebooks()
   @ SciMLTutorials ~/.julia/packages/SciMLTutorials/lVdkw/src/SciMLTutorials.jl:128
 [5] top-level scope
   @ REPL[22]:1

```

(Yes, I do have IJulia installed.)

What is wrong?

The trouble does not seem to be with jupyter per se, because once the jupyter server is started and I open, say, a Sage notebook in the browser, I can connect that to the sage kerneo.

---

<div class="post-metadata">

**Author:** ![ChrisRackauckas](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/chrisrackauckas/32/77_2.png) [@ChrisRackauckas](https://discourse.julialang.org/u/ChrisRackauckas)\
**Post date:** [July 18, 2021, 10:14pm UTC](https://discourse.julialang.org/t/how-open-tutorials-in-jupyter-from-github-com-sciml-scimltutorials-jl/64877/2 "2021-07-18T22:14:45Z")

</div>

Open an issue. Though, we’ve basically been moving away from Jupyter notebooks towards things that promote reproducibility.

---

<div class="post-metadata">

**Author:** ![murrayE](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/murraye/32/24428_2.png) [@murrayE](https://discourse.julialang.org/u/murrayE)\
**Post date:** [July 19, 2021, 4:58pm UTC](https://discourse.julialang.org/t/how-open-tutorials-in-jupyter-from-github-com-sciml-scimltutorials-jl/64877/3 "2021-07-19T16:58:31Z")

</div>

Moving away from Jupyter notebooks?? Most unfortunate and, unless there’s some equally good or better front-end substitute, a potential death-threat to Julia!

A proliferation of front-ends, unless one that’s clearly superior to Jupyter, would be disconcerting. Already one can use Jupyter notebooks with the Wolfram Language, Python, and Sage.

The beauty of Jupyter notebooks — and similar front-ends such as that for Mathematica — is the way one can mix text cells, input cells, output cells, and graphics all within a single document.

Such front-ends are extremely useful, e.g., for applications in teaching, at least at the college level.

---

<div class="post-metadata">

**Author:** ![ChrisRackauckas](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/chrisrackauckas/32/77_2.png) [@ChrisRackauckas](https://discourse.julialang.org/u/ChrisRackauckas)\
**Post date:** [July 19, 2021, 10:19pm UTC](https://discourse.julialang.org/t/how-open-tutorials-in-jupyter-from-github-com-sciml-scimltutorials-jl/64877/4 "2021-07-19T22:19:43Z")

</div>

Jupyter for tutorials is just impossible to maintain since the file format is not made to be maintained, and the result of Jupyter notebooks isn’t made to be correct. Weave is a much saner format for generating websites. You can always automatically translate Weave to Jupyter though, which is all that it was doing before.

---

<div class="post-metadata">

**Author:** ![gbaraldi](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/gbaraldi/32/22101_2.png) [@gbaraldi](https://discourse.julialang.org/u/gbaraldi)\
**Post date:** [July 20, 2021, 12:19am UTC](https://discourse.julialang.org/t/how-open-tutorials-in-jupyter-from-github-com-sciml-scimltutorials-jl/64877/5 "2021-07-20T00:19:29Z")

</div>

I’m not sure about SciML but [https://github.com/fonsp/Pluto.jl](https://github.com/fonsp/Pluto.jl) goes a long way into fixing Jupyter’s issues.

---

<div class="post-metadata">

**Author:** ![ChrisRackauckas](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/chrisrackauckas/32/77_2.png) [@ChrisRackauckas](https://discourse.julialang.org/u/ChrisRackauckas)\
**Post date:** [July 20, 2021, 3:11am UTC](https://discourse.julialang.org/t/how-open-tutorials-in-jupyter-from-github-com-sciml-scimltutorials-jl/64877/6 "2021-07-20T03:11:34Z")

</div>

Pluto definitely could’ve been used, though it didn’t exist when we setup the repo. Weave.jl is a fairly good standard though for generating websites (though I do like Pluto’s HTML output). As Jupyter is a WYSIWYG on a JSON file, building bots to automatically update websites built on Jupyter notebooks is very similar to building bots to automatically Microsoft Word - based websites. We did it for years, but it’s prone to so many bugs. What we should instead do is just give people a function so that Weave converts some .jmds to notebooks when they ask (if you use Weave.jl, you can already do this by doing `cd(@ __DIR__ )` into the package and then call [https://github.com/SciML/SciMLBenchmarks.jl/blob/master/src/SciMLBenchmarks.jl#L51](https://github.com/SciML/SciMLBenchmarks.jl/blob/master/src/SciMLBenchmarks.jl#L51)). We can probably change [https://github.com/SciML/SciMLBenchmarks.jl/blob/master/src/SciMLBenchmarks.jl#L123-L127](https://github.com/SciML/SciMLBenchmarks.jl/blob/master/src/SciMLBenchmarks.jl#L123-L127) so that way it calls the conversion before trying to open the notebooks, now that the outputs have moved to a separate repo ([https://github.com/SciML/SciMLBenchmarksOutput](https://github.com/SciML/SciMLBenchmarksOutput))

---

<div class="post-metadata">

**Author:** ![murrayE](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/murraye/32/24428_2.png) [@murrayE](https://discourse.julialang.org/u/murrayE)\
**Post date:** [July 20, 2021, 2:42pm UTC](https://discourse.julialang.org/t/how-open-tutorials-in-jupyter-from-github-com-sciml-scimltutorials-jl/64877/7 "2021-07-20T14:42:41Z")

</div>

Note that I was not looking for a website generator but simply a good notebook interface to Julia, where on the local machine one can create and open documents that mix text exposition, code input, and output including graphical output. In other words, something like the Mathematica front-end (which, in my experience, is absolutely state-of-the-art).

---

<div class="post-metadata">

**Author:** ![ChrisRackauckas](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/chrisrackauckas/32/77_2.png) [@ChrisRackauckas](https://discourse.julialang.org/u/ChrisRackauckas)\
**Post date:** [July 20, 2021, 2:52pm UTC](https://discourse.julialang.org/t/how-open-tutorials-in-jupyter-from-github-com-sciml-scimltutorials-jl/64877/8 "2021-07-20T14:52:19Z")

</div>

Yes, but the SciMLTutorials are a website generator.

---

<div class="post-metadata">

**Author:** ![lungben](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/lungben/32/12314_2.png) [@lungben](https://discourse.julialang.org/u/lungben)\
**Post date:** [July 22, 2021, 7:07am UTC](https://discourse.julialang.org/t/how-open-tutorials-in-jupyter-from-github-com-sciml-scimltutorials-jl/64877/9 "2021-07-22T07:07:52Z")

</div>

I think with [https://github.com/fonsp/Pluto.jl/pull/1032](https://github.com/fonsp/Pluto.jl/pull/1032) (cell dependency determination supporting macros) Pluto should be able to support most of the SciML functionality.  
Packages using GPU or Multiprocessing may require starting Pluto in single processing mode (`Pluto.run(workspace_use_distributed=false)`).
