# Installing Pluto Fails

**URL:** <https://discourse.julialang.org/t/installing-pluto-fails/130681>\
**Category:** General Usage\
**Tags:** pluto\
**Created:** [July 13, 2025, 9:36am UTC](https://discourse.julialang.org/t/installing-pluto-fails/130681 "2025-07-13T09:36:13Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![two\_four\_six](https://avatars.discourse-cdn.com/v4/letter/t/58f4c7/32.png) [@two\_four\_six](https://discourse.julialang.org/u/two_four_six)\
**Post date:** [July 13, 2025, 9:36am UTC](https://discourse.julialang.org/t/installing-pluto-fails/130681/1 "2025-07-13T09:36:13Z")

</div>

Following the Github ‘Installing Pluto’ recommendation I get this error:

```julia
julia> import Pluto
 │ Attempted to find missing packages in package registries but no registries are installed.
 └ Use package mode to install a registry. `pkg> registry add` will install the default registries.

ERROR: ArgumentError: Package Pluto not found in current path.
- Run `import Pkg; Pkg.add("Pluto")` to install the Pluto package.

```

I did as the error suggested:

```julia
Julia> import Pkg; Pkg.add("Pluto")

```

I got this response:

```julia
Installing known registries into `~/.julia`
....etc....
Info Packages marked with ⌅ have new versions available but compatibility constraints restrict them from upgrading. To see why use `status --outdated -m`
(everything is a plus)
Precompiling project...
  40 dependencies successfully precompiled in 243 seconds. 30 already precompiled.

```

Finally, I run:

```julia
julia> Pluto.run()
ERROR: UndefVarError: `Pluto` not defined in `Main`
Suggestion: check for spelling errors or missing imports.
Stacktrace:
 [1] top-level scope
   @ REPL[7]:1

```

Watching several videos of those installing Pluto, they all install fine.  
I don’t know why my version isn’t installing.

---

<div class="post-metadata">

**Author:** ![GunnarFarneback](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/gunnarfarneback/32/1827_2.png) [@GunnarFarneback](https://discourse.julialang.org/u/GunnarFarneback)\
**Post date:** [July 13, 2025, 9:52am UTC](https://discourse.julialang.org/t/installing-pluto-fails/130681/2 "2025-07-13T09:52:16Z")

</div>

Between `Pkg.add("Pluto")` and `Pluto.run()`, there should be a step of doing either `import Pluto` or `using Pluto`.

---

<div class="post-metadata">

**Author:** ![Benny](https://avatars.discourse-cdn.com/v4/letter/b/49beb7/32.png) [@Benny](https://discourse.julialang.org/u/Benny)\
**Post date:** [July 13, 2025, 10:18am UTC](https://discourse.julialang.org/t/installing-pluto-fails/130681/3 "2025-07-13T10:18:37Z")

</div>

That little blurb on the Github page is actually misleadingly cut short. The link to fuller instructions are a bit clearer on what’s going on, but it also assumes you learned `Pkg` first. Here’s the minimal knowledge you need:

- `Pkg.add` is how you add a package to an environment that resolves compatibility with other packages in it, and it will also install and precompile versions that haven’t been installed in your local depot yet.
- Only one environment is active at a time during a Julia session. By default you’re put in the Julia version’s main environment, but you can also use `Pkg` to make and activate different environments; rule of thumb is an environment with fewer packages has a lower risk of incompatibility, so only combine what you need to.
- `import` or `using` (you’ll learn to prefer the latter most of the time) is how you make a package’s names available in the surrounding module/global scope, and it will also load that package for the first time in a Julia session if it wasn’t already.
- Packages cannot be unloaded from a session or replaced by other versions, so you will have to manually start another session if you need to do that. That could be needed to properly switch to another environment, but Julia won’t do this for you because switching environments often don’t need it either. And the longer you stay in a session making more modest changes, the smoother things go; Pluto helps you do that by aggressively re-evaluating dependent cells.

---

<div class="post-metadata">

**Author:** ![two\_four\_six](https://avatars.discourse-cdn.com/v4/letter/t/58f4c7/32.png) [@two\_four\_six](https://discourse.julialang.org/u/two_four_six)\
**Post date:** [July 13, 2025, 10:31am UTC](https://discourse.julialang.org/t/installing-pluto-fails/130681/4 "2025-07-13T10:31:45Z")

</div>

I found the answer on a different website:  
Apparently I have to include ‘import Pluto;’ before ‘Pluto.run()’.

```julia
julia> import Pluto; Pluto.run()

```

The website which explained the proper installation method:  
plutojl org/#install  
Holy moly, it’s really heavy on resources.

---

<div class="post-metadata">

**Author:** ![Benny](https://avatars.discourse-cdn.com/v4/letter/b/49beb7/32.png) [@Benny](https://discourse.julialang.org/u/Benny)\
**Post date:** [July 13, 2025, 10:44am UTC](https://discourse.julialang.org/t/installing-pluto-fails/130681/5 "2025-07-13T10:44:20Z")

</div>

Without numbers it’s not clear if that’s a problem, but it’s true that a full Julia process itself and Pluto are not _light_ on resources. Interactivity and features need overhead. It’s very easy to run into situations where that overhead is much less than your program, so it’s usually fine.

---

<div class="post-metadata">

**Author:** ![two\_four\_six](https://avatars.discourse-cdn.com/v4/letter/t/58f4c7/32.png) [@two\_four\_six](https://discourse.julialang.org/u/two_four_six)\
**Post date:** [July 13, 2025, 10:59am UTC](https://discourse.julialang.org/t/installing-pluto-fails/130681/6 "2025-07-13T10:59:03Z")

</div>

When I only have 4GB of ram, and opening a second browser with Pluto fills up all of my available RAM, about 1GiB.  
I’ll have to stick with mousepad for writing examples.

---

<div class="post-metadata">

**Author:** ![Benny](https://avatars.discourse-cdn.com/v4/letter/b/49beb7/32.png) [@Benny](https://discourse.julialang.org/u/Benny)\
**Post date:** [July 13, 2025, 11:11am UTC](https://discourse.julialang.org/t/installing-pluto-fails/130681/7 "2025-07-13T11:11:27Z")

</div>

1 GiB of available RAM is indeed not much to work with, and Julia+Pluto+browser plausibly gets up there. How much if you just run `julia` and enter a REPL session? I get a little under 200MiB, gets \>300MiB when I use `Pkg` commands, which still doesn’t leave much but can still handle modest programs and data.
