Make IJulia completly independent from Python

Why do we need to have python installed on our computers in order to use Julia?
If we want to use Julia through a GUI such as VS Code, Juno, Jupyter… we need to install IJulia and therefore python.
Is there any alternative?
It would be great to be able to use it without python.

3 Likes

No, just Jupyter.

Python is a Jupyter dependency though, see Project Jupyter | Installing Jupyter. So you need it in some form or another. @Juan, are you also opposed to having Python installed via https://github.com/JuliaPy/Conda.jl (the default on Windows and Mac)? If Conda.jl is also unacceptable for some reason, you’re out of luck if you want to use Jupyter.

1 Like

I think he meant you only need Python for Jupyter - you don’t need Python for VS Code or Juno

1 Like

Oh I see, haha.

There is nteract https://github.com/nteract/nteract, if you want to have a “Python-free” Jupyter Notebook frontend (or more precisely a frontend that hides that it uses Python internally). It has native binary releases so you don’t even need conda https://github.com/nteract/nteract/releases

5 Likes

In fact I just want to use VS code but I think I also need to have IJulia installed and then jupyter.

It’s on my to-do list to allow IJulia to be installed without Jupyter (Allow Installation Without Jupyter · Issue #692 · JuliaLang/IJulia.jl · GitHub), but I haven’t gotten around to it yet.

10 Likes

Many Linux distros have Python preinstalled, you don’t need to install Python in many cases if you use Linux. I am also not a big fan of Python.

I don’t have anything against Python, I just think it would be nice that Julia was independent from other tools/languages/kernels and it will make easier to install it with a GUI. And many potential Julia users use Windows and OSX.

2 Likes

I think you misunderstand the situation, which can be summarized as follows:

  1. Julia, the language, does not depend on Python in any way.
  2. Libraries which don’t use Python of course don’t need Python.
  3. Libraries which do use Python do (doh).
  4. You are using a GUI which depends on Python. If this bothers you so much, use another GUI which doesn’t.
7 Likes

@Juan does have a point to be fair. IF you are planning the roll out of a new ‘base image’ for your corporate use, or for pehaps a University wide installation, or perhaps for a cloud deployment you of course have to decide which packages to install.
What I am trying to say is that for systems programmers it is safe to assume that in the Linux world there will be a bash shell installed in the base image - therefore many systems utilities are currently written in bash.

I have seen many scientific software packages which ship with their own version of Python just so they can depend on a known version with known features. Also I am thinking of IBM Spectrum Scale - which ships with its own ksh - as many of the scripts are written in ksh.

As @Tamas_Papp points out, base Julia does not depend on Python.
SO I guess what I Am assaying is if you write system-level utilities which should run on any system with Julia installed, be careful of what modules you require.

1 Like

I agree but most GUI rely on IJulia and therefore the needs Python.
Maybe the title of the thread should be “Make IJulia independent from Python”.

Basically no GUI except for Jupyter relies on Python – neither Juno nor VSCode (the Language Server, rather) don’t have any dependency on Python.

4 Likes

I thought VS Code also had that problem because I wasn’t able to make it work with Julia 1.0

VS code just hasn’t been updated to 1.0 yet

1 Like

You can edit and run Julia with Eclipse as your GUI with the plugin JuliaDT from Eclipse Marketplace.

Update: This is done in the latest IJulia release.

6 Likes

What does it mean to have an IJulia kernel without Jupyter? Is this for Hydrogen or something?

The IJulia kernel just sits there listening on ZMQ — it doesn’t use Python or Jupyter directly, it just talks in the Jupyter protocol. Something other than a local Python-based Jupyter front-end might communicate with the IJulia kernel: a remote Jupyter client, Hydrogen, nteract, …

Previously, IJulia required Jupyter to be installed in order to install the kernel specification via jupyter kernelspec install. However, since the installation location is documented and standardized, and “installation” consists of just writing a JSON file to the right place, it was straightforward to do this manually and remove the jupyter dependency.

There is still an IJulia.notebook() function that launches the notebook, which requires jupyter notebook, but this now prompts you for whether to install Jupyter (via Conda.jl) at runtime when notebook() is executed, rather than in Pkg.build("IJulia"). People who don’t want IJulia to install Jupyter can just run jupyter notebook themselves in whatever way they like.

14 Likes