Issue with ExcelReaders-DataFrames interaction

I currently have DataFrames v0.10.1 and trying to update to current version. When I run the update I get the following error message:

INFO: Updating METADATA...
INFO: Computing changes...
ERROR: Unsatisfiable requirements detected for package DataFrames:
├─version range [0.11.0,∞) required by package CSV, whose only allowed version is 0.2.1:
│ ├─version 0.2.1 set by fixed requirement (package is checked out, dirty or pinned)
│ └─version range [0.0.0-,∞) set by an explicit requirement
└─version range [0.0.0,0.11.0) required by package ExcelReaders, 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] update(::String, ::Set{String}) at .\pkg\entry.jl:461
 [6] (::Base.Pkg.Dir.##4#7{Array{Any,1},Base.Pkg.Entry.#update,Tuple{String,Set{String}}})() at .\pkg\dir.jl:36
 [7] cd(::Base.Pkg.Dir.##4#7{Array{Any,1},Base.Pkg.Entry.#update,Tuple{String,Set{String}}}, ::String) at .\file.jl:59
 [8] #cd#1(::Array{Any,1}, ::Function, ::Function, ::String, ::Vararg{Any,N} where N) at .\pkg\dir.jl:36
 [9] update(::String, ::Vararg{String,N} where N) at .\pkg\pkg.jl:228

I see that ExcelReaders is holding back the update, so I go to remove it, but am getting the following error:

ERROR: Unsatisfiable requirements detected for package DataFrames:
+-version range [0.11.0,8) required by package CSV, whose only allowed version is 0.2.1:
¦ +-version 0.2.1 set by fixed requirement (package is checked out, dirty or pinned)
¦ +-version range [0.0.0-,8) set by an explicit requirement
+-version range [0.4.2,0.11.0) required by package Gadfly, whose allowed version range is [0.0.0-,8):
  +-version range [0.0.0-,8) required by package Immerse, whose allowed version range is [0.0.0-,8):
    +-version range [0.0.0-,8) 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] edit(::Function, ::String) at .\pkg\entry.jl:30
 [7] rm(::String) at .\pkg\entry.jl:81
 [8] (::Base.Pkg.Dir.##4#7{Array{Any,1},Base.Pkg.Entry.#rm,Tuple{String}})() at .\pkg\dir.jl:36
 [9] cd(::Base.Pkg.Dir.##4#7{Array{Any,1},Base.Pkg.Entry.#rm,Tuple{String}}, ::String) at .\file.jl:59
 [10] #cd#1(::Array{Any,1}, ::Function, ::Function, ::String, ::Vararg{Any,N} where N) at .\pkg\dir.jl:36
 [11] rm(::String) at .\pkg\pkg.jl:108

I’m not sure what is going on here, starting with why I would get an error referring to DataFrames when removing ExcelReaders

You have CSV.jl pinned, and that requires DataFrames v0.11.x, but ExcelReaders is not yet compatible with that. If you free CSV.jl you should end up with a working package combination.

The ExcelReaders.jl issue is high on my list, but other things keep intervening…

I get,

julia> Pkg.free("CSV")
INFO: Freeing CSV
INFO: Downgrading CSV: v0.2.1 => v0.1.5
INFO: Installing Gadfly v0.6.4
INFO: Building SpecialFunctions
INFO: Building Rmath


julia> Pkg.update("DataFrames")
INFO: Updating METADATA...
INFO: Computing changes...
INFO: Package DataFrames was set to version 0.10.1, but a higher version 0.11.5 exists.
      To install the latest version, you could try updating these packages as well: CSV and Gadfly.
INFO: No packages to install, update or remove

I checked and DataFrames is not pinned so do not know why it is not updating to 0.11.5

It is not clear to me why Gadfly is being triggered:

julia> Pkg.rm("Gadfly")
INFO: Removing Gadfly (unregistered)

julia> Pkg.update("DataFrames")
INFO: Updating METADATA...
INFO: Computing changes...
INFO: Package DataFrames was set to version 0.10.1, but a higher version 0.11.5 exists.
      To install the latest version, you could try updating these packages as well: CSV.
INFO: Installing Gadfly v0.6.4
INFO: Building SpecialFunctions
INFO: Building Rmath

ExcelReaders.jl will hold DataFrames.jl back to v0.10 right now, you can’t have ExcelReaders and DataFrames v0.11 installed at the same time.

I believe I’ve removed ExcelReaders:

julia> Pkg.rm("ExcelReaders")
INFO: Package ExcelReaders is not installed

julia> Pkg.update("DataFrames")
INFO: Updating METADATA...
INFO: Computing changes...
INFO: Package DataFrames was set to version 0.10.1, but a higher version 0.11.5 exists.
      To install the latest version, you could try updating these packages as well: CSV and Gadfly.
INFO: No packages to install, update or remove

Once ExcelReaders.jl is out of the picture I’m not sure anymore why this is not working :slight_smile:

I feel like this may be a duplicate of this, that unfortunately seems to still be outstanding

Can you post the list of the packages you have installed?

- CSV                           0.1.5
 - Cascadia                      0.2.0
 - Combinatorics                 0.5.0
 - Dierckx                       0.3.0
 - Distances                     0.5.0
 - Distributions                 0.15.0
 - GeometryTypes                 0.4.4
 - Gumbo                         0.4.0
 - HypothesisTests               0.6.0
 - IJulia                        1.6.2
 - ImageMagick                   0.5.0
 - Images                        0.12.0
 - Immerse                       0.0.13
 - Interact                      0.6.3
 - NLopt                         0.3.6
 - PackageCompiler               0.2.0
 - PlotlyJS                      0.9.0
 - Plots                         0.15.0
 - PyPlot                        2.3.2
 - Reactive                      0.6.0
 - Requests                      0.5.1
 - Rsvg                          0.2.0
134 additional packages:
 - AbstractFFTs                  0.2.1
 - AbstractNumbers               0.1.1
 - AbstractTrees                 0.1.0
 - AxisAlgorithms                0.2.0
 - AxisArrays                    0.2.0
 - BinDeps                       0.8.6
 - Blink                         0.6.0
 - BufferedStreams               0.3.3
 - Cairo                         0.4.0
 - Calculus                      0.2.2
 - CatIndices                    0.1.0
 - CategoricalArrays             0.1.6
 - Codecs                        0.4.0
 - ColorBrewer                   0.3.1
 - ColorTypes                    0.6.6
 - ColorVectorSpace              0.5.2
 - Colors                        0.8.2
 - CommonSubexpressions          0.0.1
 - Compat                        0.49.0
 - Compose                       0.5.4
 - ComputationalResources        0.2.0
 - Conda                         0.7.1
 - Contour                       0.4.0
 - CoordinateTransformations     0.4.1
 - CoupledFields                 0.0.1
 - CustomUnitRanges              0.1.0
 - DataArrays                    0.6.2
 - DataFrames                    0.10.1
 - DataStreams                   0.1.3
 - DataStructures                0.7.4
 - DiffResults                   0.0.3
 - DiffRules                     0.0.3
 - DocStringExtensions           0.4.3
 - DualNumbers                   0.3.0
 - FFTViews                      0.1.0
 - FFTW                          0.0.4
 - FileIO                        0.6.1
 - FixedPointNumbers             0.4.3
 - Fontconfig                    0.1.1
 - ForwardDiff                   0.7.2
 - FreeType                      1.3.0
 - FreeTypeAbstraction           0.1.0
 - GLAbstraction                 0.6.1              master
 - GLFW                          1.5.0
 - GLVisualize                   0.6.1+             master
 - GLWindow                      0.7.1
 - GZip                          0.3.0
 - Gadfly                        0.6.4
 - Graphics                      0.2.0
 - Gtk                           0.13.1
 - GtkUtilities                  0.2.3
 - Hexagons                      0.1.0
 - Hiccup                        0.1.1
 - HttpCommon                    0.3.0
 - HttpParser                    0.3.0
 - HttpServer                    0.2.0
 - IdentityRanges                0.1.0
 - ImageAxes                     0.4.0
 - ImageCore                     0.5.0
 - ImageFiltering                0.2.3
 - ImageMetadata                 0.4.0
 - ImageMorphology               0.0.2
 - ImageTransformations          0.4.1
 - IndirectArrays                0.3.0
 - Interpolations                0.7.3
 - IntervalSets                  0.1.1
 - IterTools                     0.2.1
 - JSON                          0.16.4
 - Juno                          0.3.2
 - KernelDensity                 0.4.0
 - LaTeXStrings                  0.3.0
 - Lazy                          0.12.0
 - LibExpat                      0.4.1
 - Libz                          0.2.4
 - LineSearches                  3.2.4
 - Loess                         0.3.0
 - MacroTools                    0.4.0
 - Makie                         0.0.0-             master (unregistered)
 - MappedArrays                  0.0.7
 - MathProgBase                  0.7.0
 - MbedTLS                       0.5.5
 - Measures                      0.1.0
 - Media                         0.3.0
 - MeshIO                        0.1.1
 - Missings                      0.2.5
 - ModernGL                      0.2.1
 - Mustache                      0.3.0
 - Mux                           0.2.3
 - NLSolversBase                 4.2.0
 - NaNMath                       0.3.0
 - NullableArrays                0.1.2
 - Nullables                     0.0.3
 - OffsetArrays                  0.4.2
 - Optim                         0.12.0
 - PDMats                        0.8.0
 - Packing                       0.1.0
 - PaddedViews                   0.2.0
 - Parameters                    0.8.1
 - PlotThemes                    0.2.0
 - PlotUtils                     0.4.4
 - Polynomials                   0.2.0
 - PositiveFactorizations        0.1.0
 - PyCall                        1.15.0
 - QuadGK                        0.2.0
 - Quaternions                   0.3.0
 - RangeArrays                   0.2.0
 - Ratios                        0.2.0
 - RecipesBase                   0.2.3
 - Reexport                      0.1.0
 - Requires                      0.4.3
 - Rmath                         0.3.2
 - Roots                         0.5.0
 - Rotations                     0.6.1
 - SHA                           0.5.6
 - SIUnits                       0.1.0
 - ShowItLikeYouBuildIt          0.2.0
 - Showoff                       0.1.1
 - SignedDistanceFields          0.2.0
 - SimpleTraits                  0.5.1
 - SnoopCompile                  0.2.0
 - SortingAlgorithms             0.2.0
 - SpecialFunctions              0.3.8
 - StaticArrays                  0.6.6
 - StatsBase                     0.19.5
 - StatsFuns                     0.5.0
 - TexExtensions                 0.1.0
 - TiledIteration                0.1.0
 - URIParser                     0.3.0
 - UnicodeFun                    0.1.0
 - WeakRefStrings                0.2.0
 - WebSockets                    0.4.0
 - WinRPM                        0.3.1
 - WoodburyMatrices              0.2.2
 - ZMQ                           0.5.1

Hmm, lots of packages so it’s hard to tell, but you have Gadfly installed (as a dependency of some package), and it’s not ported to DataFrames 0.11 yet. I guess you should find out which package requires Gadfly.

Gadfly definitely will prevent the DataFrames upgrade. I tried installing it and then removed it because of this.

Removing Immerse.jl did the trick. +1 for @baggepinnen’s thread here.