JuliaPOMDP / BasicPOMCP.jl

The PO-UCT algorithm (aka POMCP) implemented in Julia
Other
35 stars 17 forks source link

Precompilation Error #9

Closed thecoldviews closed 6 years ago

thecoldviews commented 6 years ago

After running a recent Pkg.update(), I am unable to use BasicPOMCP. -

using BasicPOMCP

INFO: Precompiling module BasicPOMCP. WARNING: could not import POMDPToolbox.action_info into BasicPOMCP ERROR: LoadError: LoadError: UndefVarError: action_info not defined Stacktrace: [1] include_from_node1(::String) at ./loading.jl:576 [2] include(::String) at ./sysimg.jl:14 [3] include_from_node1(::String) at ./loading.jl:576 [4] include(::String) at ./sysimg.jl:14 [5] anonymous at ./<missing>:2 while loading /root/.julia/v0.6/MCTS/src/dpw.jl, in expression starting on line 521 while loading /root/.julia/v0.6/MCTS/src/MCTS.jl, in expression starting on line 53 ERROR: LoadError: Failed to precompile MCTS to /root/.julia/lib/v0.6/MCTS.ji. Stacktrace: [1] compilecache(::String) at ./loading.jl:710 [2] _require(::Symbol) at ./loading.jl:463 [3] require(::Symbol) at ./loading.jl:405 [4] include_from_node1(::String) at ./loading.jl:576 [5] include(::String) at ./sysimg.jl:14 [6] anonymous at ./<missing>:2 while loading /root/.julia/v0.6/BasicPOMCP/src/BasicPOMCP.jl, in expression starting on line 23

zsunberg commented 6 years ago

Hi @thecoldviews , thanks for reporting the problem! Unfortunately I haven't been able to reproduce it.

It looks like you might somehow have an older version of POMDPToolbox. What is the output of

julia> Pkg.installed("POMDPToolbox")

?

If that doesn't reveal anything, what is the output of

julia> run(`git -C $(Pkg.dir("MCTS")) status`); run(`git -C $(Pkg.dir("BasicPOMCP")) status`)

?

Thanks!

thecoldviews commented 6 years ago

Hi @zsunberg! Thanks for the prompt response. For the first command, the output is

v"0.2.4"

and for the second it is


Your branch is up-to-date with 'origin/master'.

nothing to commit, working directory clean
On branch master
Your branch is up-to-date with 'origin/master'.

nothing to commit, working directory clean```
zsunberg commented 6 years ago

To run POMCP, you need POMDPToolbox v0.2.6

Not sure why you don't have it if you did Pkg.update()

On Fri, Mar 9, 2018, 11:43 Sarthak Ahuja notifications@github.com wrote:

Hi @zsunberg https://github.com/zsunberg! Thanks for the prompt response. For the first command, the output is

v"0.2.4"

and for the second it is

Your branch is up-to-date with 'origin/master'.

nothing to commit, working directory clean On branch master Your branch is up-to-date with 'origin/master'.

nothing to commit, working directory clean```

— You are receiving this because you were mentioned.

Reply to this email directly, view it on GitHub https://github.com/JuliaPOMDP/BasicPOMCP.jl/issues/9#issuecomment-371925036, or mute the thread https://github.com/notifications/unsubscribe-auth/AEC0a37azafKmnGfX8bYtROusmU7um2sks5tcttpgaJpZM4SkMCZ .

thecoldviews commented 6 years ago

Hey! I pinned the version to v0.2.6 and now it's working. Thanks! Still not able to figure out why I ran into the issue after a Pkg.update(), reading the logs it seems like it had to do with some dependency imposed by another Package I was using. Closing it though.

julia> Pkg.installed("POMDPToolbox")
v"0.2.4"

julia> Pkg.update()
INFO: Updating METADATA...
INFO: Updating BasicPOMCP master... 28fae142 → cd449766
INFO: Updating MCTS master... f688b6fd → 299d2487
INFO: Computing changes...
INFO: No packages to install, update or remove

julia> Pkg.add("POMDPToolbox")
INFO: Package POMDPToolbox is already installed

julia> Pkg.pin("POMDPToolbox", v"0.2.6")
INFO: Creating POMDPToolbox branch pinned.68d105d4.tmp
ERROR: Unsatisfiable requirements detected for package DataFrames:
├─version range [0.11.0,∞) required by package POMDPToolbox, whose only allowed version is 0.2.6:
│ ├─version 0.2.6 set by fixed requirement (package is checked out, dirty or pinned)
│ ├─version range [0.0.0-,∞) set by an explicit requirement
│ ├─version range [0.2.6,∞) required by package BasicPOMCP, whose only allowed version is 0.0.0-:
│ │ └─version 0.0.0- set by fixed requirement (package is checked out, dirty or pinned)
│ └─version range [0.2.6,∞) required by package MCTS, whose only allowed version is 0.0.0-:
  │ └─version 0.0.0- set by fixed requirement (package is checked out, dirty or pinned)
└─version range [0.4.2,0.11.0) required by package Gadfly, whose allowed version range is [0.0.0-,∞):
  └─version range [0.0.0-,∞) set by an explicit requirement
The intersection of the requirements is empty.
Stacktrace:
 [1] filter_versions(::Dict{String,Base.Pkg.Types.VersionSet}, ::Dict{String,Dict{VersionNumber,Base.Pkg.Types.Available}}, ::Dict{AbstractString,Base.Pkg.Types.ResolveBacktraceItem}) at ./pkg/query.jl:299
 [2] prune_versions(::Dict{String,Base.Pkg.Types.VersionSet}, ::Dict{String,Dict{VersionNumber,Base.Pkg.Types.Available}}, ::Dict{AbstractString,Base.Pkg.Types.ResolveBacktraceItem}) at ./pkg/query.jl:328
 [3] prune_dependencies(::Dict{String,Base.Pkg.Types.VersionSet}, ::Dict{String,Dict{VersionNumber,Base.Pkg.Types.Available}}, ::Dict{AbstractString,Base.Pkg.Types.ResolveBacktraceItem}) at ./pkg/query.jl:546
 [4] resolve(::Dict{String,Base.Pkg.Types.VersionSet}, ::Dict{String,Dict{VersionNumber,Base.Pkg.Types.Available}}, ::Dict{String,Tuple{VersionNumber,Bool}}, ::Dict{String,Base.Pkg.Types.Fixed}, ::Dict{String,VersionNumber}, ::Set{String}) at ./pkg/entry.jl:498
 [5] resolve(::Dict{String,Base.Pkg.Types.VersionSet}, ::Dict{String,Dict{VersionNumber,Base.Pkg.Types.Available}}, ::Dict{String,Tuple{VersionNumber,Bool}}, ::Dict{String,Base.Pkg.Types.Fixed}) at ./pkg/entry.jl:479
 [6] pin(::String, ::String) at ./pkg/entry.jl:338
 [7] pin(::String, ::VersionNumber) at ./pkg/entry.jl:349
 [8] (::Base.Pkg.Dir.##4#7{Array{Any,1},Base.Pkg.Entry.#pin,Tuple{String,VersionNumber}})() at ./pkg/dir.jl:36
 [9] cd(::Base.Pkg.Dir.##4#7{Array{Any,1},Base.Pkg.Entry.#pin,Tuple{String,VersionNumber}}, ::String) at ./file.jl:70
 [10] #cd#1(::Array{Any,1}, ::Function, ::Function, ::String, ::Vararg{Any,N} where N) at ./pkg/dir.jl:36
 [11] pin(::String, ::VersionNumber) at ./pkg/pkg.jl:216

julia> Pkg.installed("POMDPToolbox")
v"0.2.6"
zsunberg commented 6 years ago

Ah, yeah, there were breaking changes introduced in DataFrames version 0.11. POMDPToolbox requires DataFrames >= 0.11 and Gadfly requires DataFrames < 0.11.