ArgumentError: Package Interact does not have Reexport in its dependencies

Hello everyone,

I have been struggling with this error for the past few weeks, and finally decided to ask it here.

Background:
I am trying to work on the Jupyter notebooks that supplement a course. These notebooks use Interact for interactive widgets. Other packages that are required for the notebooks are IJulia, PyPlot, Convex and SCS.

Problem:
The “Getting Started” notebook has the following code:

using Interact
print("n^2 ="); # print the text "n^2 = "
@manipulate for n in 0:10; # lets us manipulate the value of the parameter `n` in the range 0 to 10   
    n^2;                   # calculate and display the value of n squared
end

When I compiled this section of the notebook, I got the following error:

┌ Info: Precompiling Interact [c601a237-2ae4-5e1e-952c-7a85b0c7eef1]
└ @ Base loading.jl:1317
ERROR: LoadError: ArgumentError: Package Interact does not have Reexport in its dependencies:
-If you have Interact checked out for development and have
  added Reexport as a dependency but haven't updated your primary
  environment's manifest file, try `Pkg.resolve()`.
-Otherwise you may need to report an issue with Interact
Stacktrace:
 [1] require(into::Module, mod::Symbol)
   @ Base ./loading.jl:884
 [2] include
   @ ./Base.jl:386 [inlined]
 [3] include_package_for_output(pkg::Base.PkgId, input::String, depot_path::Vector{String}, dl_load_path::Vector{String}, load_path::Vector{String}, concrete_deps::Vector{Pair{Base.PkgId, UInt64}}, source::Nothing)
   @ Base ./loading.jl:1213
 [4] top-level scope
   @ none:1
 [5] eval
   @ ./boot.jl:360 [inlined]
 [6] eval(x::Expr)
   @ Base.MainInclude ./client.jl:446
 [7] top-level scope
   @ none:1
in expression starting at /home/[my username]/.julia/packages/Interact/iMA1c/src/Interact.jl:3

Failed to precompile Interact [c601a237-2ae4-5e1e-952c-7a85b0c7eef1] to /home/[my username]/.julia/compiled/v1.6/Interact/jl_HR0VNV.

Stacktrace:
 [1] error(s::String)
   @ Base ./error.jl:33
 [2] compilecache(pkg::Base.PkgId, path::String, internal_stderr::IJulia.IJuliaStdio{Base.PipeEndpoint}, internal_stdout::IJulia.IJuliaStdio{Base.PipeEndpoint})
   @ Base ./loading.jl:1360
 [3] compilecache(pkg::Base.PkgId, path::String)
   @ Base ./loading.jl:1306
 [4] _require(pkg::Base.PkgId)
   @ Base ./loading.jl:1021
 [5] require(uuidkey::Base.PkgId)
   @ Base ./loading.jl:914
 [6] require(into::Module, mod::Symbol)
   @ Base ./loading.jl:901
 [7] eval
   @ ./boot.jl:360 [inlined]
 [8] include_string(mapexpr::typeof(REPL.softscope), mod::Module, code::String, filename::String)
   @ Base ./loading.jl:1094

System Specifications:

  • Linux Mint 20.1 Xfce 64-bit
  • Julia 1.6.0 (first got this problem in Julia 1.5.x, the error persists)

Relevant Files:

  • /home/[my username]/.julia/packages/Interact/iMA1c/REQUIRE:
julia 0.6
JSON 0.7
Compat 0.17
InteractBase 0.6.0
InteractBulma 0.3.3
WebIO
CSSUtil
Knockout
DataStructures 0.2.10
Widgets 0.2.3
  • The Interact section of the file /home/[my username]/.julia/environments/v1.6/Manifest.toml:
[[Interact]]
deps = ["CSSUtil", "Compat", "DataStructures", "InteractBase", "InteractBulma", "JSON", "Knockout", "WebIO", "Widgets"]
git-tree-sha1 = "1721f79bc50df4164aef158cfca89269410bdb19"
uuid = "c601a237-2ae4-5e1e-952c-7a85b0c7eef1"
version = "0.8.0"

So it does seem like “package Interact does not have Reexport in its dependencies”.

  • Not sure if it’ll help but /home/[my username]/.julia/environments/v1.6/Project.toml:
[deps]
Convex = "f65535da-76fb-5f13-bab9-19810c17039a"
IJulia = "7073ff75-c697-5162-941a-fcdaad2a7d2a"
Interact = "c601a237-2ae4-5e1e-952c-7a85b0c7eef1"
PyPlot = "d330b81b-6aea-500a-939a-2ce795aea3ee"
SCS = "c946c3f1-0d1f-5ce8-9dea-7daa1f7e2d13"
WebIO = "0f1e0344-ec1d-5b48-a673-e5cf874b6c29"
  • First 3 lines of /home/[my username]/.julia/packages/Interact/iMA1c/src/Interact.jl (where the error occurs):
__precompile__()

module Interact

Observations:

  • These notebooks were originally written for Julia v0.6.2. (In fact, my goal is to update them.)
  • The problem seems to be independent from Jupyter – the julia> prompt prints the same error when I type using Interact.
  • The statement If you have Interact checked out for development and have added Reexport as a dependency but haven’t updated your primary environment’s manifest file does not apply to me. I get the error even after reinstalling everything.

Solution Attempts:

  • Tried with different versions of Julia, including ones that are close to Julia v0.6.2.
  • Rebuilt Interact. Prints
(@v1.6) pkg> build Interact
    Building WebIO ────────→ `~/.julia/scratchspaces/44cfe95a-1eb2-52ea-b672-e2afdf69b78f/adc25e225bc334c7df6eec3b39496edfc451cc38/build.log`
    Building Knockout ─────→ `~/.julia/scratchspaces/44cfe95a-1eb2-52ea-b672-e2afdf69b78f/8b5552a7a9efc2b0565e2256c919651e6f4e7931/build.log`
    Building InteractBase ─→ `~/.julia/scratchspaces/44cfe95a-1eb2-52ea-b672-e2afdf69b78f/e63b4726c282829617de0f57ce1e4e050702439a/build.log`
    Building Sass ─────────→ `~/.julia/scratchspaces/44cfe95a-1eb2-52ea-b672-e2afdf69b78f/de11179555c6363c5a61c4c94376db3498983734/build.log`
    Building InteractBulma → `~/.julia/scratchspaces/44cfe95a-1eb2-52ea-b672-e2afdf69b78f/8248c6ebe72be0edae02491f10caf464c0858e60/build.log`
Precompiling project...
  Progress [========================================>]  3/3
  ✗ Interact
2 dependencies successfully precompiled in 8 seconds (59 already precompiled)
1 dependency errored
  • Executed the commands under IJulia + Jupyter notebooks in JuliaGizmos / Interact.jl
  • Added Reexport to the aforementioned Manifest.toml and REQUIRE files (which might not be a great idea).

All these attempts turned out to be fruitless.

My Request
Please help :slight_smile:

Can you activate a new environment and add the dependencies yourself?

i.e. import Pkg; Pkg.activate(".") and then ] add the relevant packages yourself? It looks like you are using your global environment for everything and there is some conflict with an old package (maybe).

1 Like

Hello @pdeffebach, thank you for your reply.

To avoid any misunderstandings, I had added the dependencies myself, like this:

(@v1.6) pkg> add IJulia
julia> ENV["PYTHON"]=""
(@v1.6) pkg> add PyPlot
(@v1.6) pkg> add Interact
(@v1.6) pkg> add Convex
(@v1.6) pkg> add SCS

After reading your comment I ran the commands under Creating Your Own Projects in the official documentation.

Today I concluded that the error I received was due to the fact that add Interact downloads an outdated version of the Interact package. It downloaded v0.8.0 both in the global environment and in the new environment I created.

The latest release of Interact is v0.10.3, as we can see in the repository that I mentioned in my post. Running add Interact@0.10.3 or add https://github.com/JuliaGizmos/Interact.jl.git solves the problem.

Glad this worked out.

Just to be clear, always always start a new environment when starting a project of even the most trivial size.

Thanks for the tip.

By the way, a few minutes ago I tried running add Interact after deleting every package I have ever downloaded. Pkg downloaded the latest version, so it seems like there really was a conflict with other packages (even when I was in the new environment). Therefore I am marking your reply as the solution.