Обнаружены неудовлетворительные требования для пакета Compat во время Pkg.add("DataFrameMacros")

Я добавляю пакет «DataFrameMacros». Это приводит к ошибке:

ERROR: Unsatisfiable requirements detected for package Compat [34da2185]:
 Compat [34da2185] log:
 ├─possible versions are: 1.0.0-4.4.0 or uninstalled
 ├─restricted by compatibility requirements with DataFrames [a93c6f00] to versions: 3.17.0-4.4.0
 │ └─DataFrames [a93c6f00] log:
 │   ├─possible versions are: 0.11.7-1.4.3 or uninstalled
 │   ├─restricted to versions * by an explicit requirement, leaving only versions 0.11.7-1.4.3
 │   └─restricted by compatibility requirements with DataFrameMacros [75880514] to versions: 1.0.0-1.4.3
 │     └─DataFrameMacros [75880514] log:
 │       ├─possible versions are: 0.1.0-0.4.0 or uninstalled
 │       └─restricted to versions * by an explicit requirement, leaving only versions 0.1.0-0.4.0
 └─restricted by compatibility requirements with Format [1fa38f19] to versions: 1.0.0-2.2.1 — no versions left
   └─Format [1fa38f19] log:
     ├─possible versions are: 0.7.0-1.3.2 or uninstalled
     └─restricted by compatibility requirements with BioStructures [de9282ab] to versions: 0.7.0-0.8.0
       └─BioStructures [de9282ab] log:
         ├─possible versions are: 0.3.0-1.2.1 or uninstalled
         └─restricted by compatibility requirements with Bio [3637df68] to versions: 0.3.0-0.4.0
           └─Bio [3637df68] log:
             ├─possible versions are: 1.0.0-1.0.1 or uninstalled
             └─restricted to versions * by an explicit requirement, leaving only versions 1.0.0-1.0.1
Stacktrace:
  [1] propagate_constraints!(graph::Pkg.Resolve.Graph, sources::Set{Int64}; log_events::Bool)
    @ Pkg.Resolve ~/julia-1.7.0/share/julia/stdlib/v1.7/Pkg/src/Resolve/graphtype.jl:1063
  [2] propagate_constraints! (repeats 2 times)
    @ ~/julia-1.7.0/share/julia/stdlib/v1.7/Pkg/src/Resolve/graphtype.jl:1000 [inlined]
  [3] simplify_graph!(graph::Pkg.Resolve.Graph, sources::Set{Int64}; clean_graph::Bool)
    @ Pkg.Resolve ~/julia-1.7.0/share/julia/stdlib/v1.7/Pkg/src/Resolve/graphtype.jl:1519
  [4] simplify_graph! (repeats 2 times)
    @ ~/julia-1.7.0/share/julia/stdlib/v1.7/Pkg/src/Resolve/graphtype.jl:1519 [inlined]
  [5] resolve_versions!(env::Pkg.Types.EnvCache, registries::Vector{Pkg.Registry.RegistryInstance}, pkgs::Vector{Pkg.Types.PackageSpec}, julia_version::VersionNumber)
    @ Pkg.Operations ~/julia-1.7.0/share/julia/stdlib/v1.7/Pkg/src/Operations.jl:335
  [6] targeted_resolve(env::Pkg.Types.EnvCache, registries::Vector{Pkg.Registry.RegistryInstance}, pkgs::Vector{Pkg.Types.PackageSpec}, preserve::Pkg.Types.PreserveLevel, julia_version::VersionNumber)
    @ Pkg.Operations ~/julia-1.7.0/share/julia/stdlib/v1.7/Pkg/src/Operations.jl:1154
  [7] tiered_resolve(env::Pkg.Types.EnvCache, registries::Vector{Pkg.Registry.RegistryInstance}, pkgs::Vector{Pkg.Types.PackageSpec}, julia_version::VersionNumber)
    @ Pkg.Operations ~/julia-1.7.0/share/julia/stdlib/v1.7/Pkg/src/Operations.jl:1139
  [8] _resolve(io::Base.TTY, env::Pkg.Types.EnvCache, registries::Vector{Pkg.Registry.RegistryInstance}, pkgs::Vector{Pkg.Types.PackageSpec}, preserve::Pkg.Types.PreserveLevel, julia_version::VersionNumber)
    @ Pkg.Operations ~/julia-1.7.0/share/julia/stdlib/v1.7/Pkg/src/Operations.jl:1160
  [9] add(ctx::Pkg.Types.Context, pkgs::Vector{Pkg.Types.PackageSpec}, new_git::Set{Base.UUID}; preserve::Pkg.Types.PreserveLevel, platform::Base.BinaryPlatforms.Platform)
    @ Pkg.Operations ~/julia-1.7.0/share/julia/stdlib/v1.7/Pkg/src/Operations.jl:1176
 [10] add(ctx::Pkg.Types.Context, pkgs::Vector{Pkg.Types.PackageSpec}; preserve::Pkg.Types.PreserveLevel, platform::Base.BinaryPlatforms.Platform, kwargs::Base.Pairs{Symbol, Base.TTY, Tuple{Symbol}, NamedTuple{(:io,), Tuple{Base.TTY}}})
    @ Pkg.API ~/julia-1.7.0/share/julia/stdlib/v1.7/Pkg/src/API.jl:268
 [11] add(pkgs::Vector{Pkg.Types.PackageSpec}; io::Base.TTY, kwargs::Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}})
    @ Pkg.API ~/julia-1.7.0/share/julia/stdlib/v1.7/Pkg/src/API.jl:149
 [12] add(pkgs::Vector{Pkg.Types.PackageSpec})
    @ Pkg.API ~/julia-1.7.0/share/julia/stdlib/v1.7/Pkg/src/API.jl:144
 [13] #add#27
    @ ~/julia-1.7.0/share/julia/stdlib/v1.7/Pkg/src/API.jl:142 [inlined]
 [14] add
    @ ~/julia-1.7.0/share/julia/stdlib/v1.7/Pkg/src/API.jl:142 [inlined]
 [15] #add#26
    @ ~/julia-1.7.0/share/julia/stdlib/v1.7/Pkg/src/API.jl:141 [inlined]
 [16] add(pkg::String)
    @ Pkg.API ~/julia-1.7.0/share/julia/stdlib/v1.7/Pkg/src/API.jl:141
 [17] top-level scope
    @ REPL[1]:1

Статус моих пакетов:

(@v1.7) pkg> status
      Status `~/.julia/environments/v1.7/Project.toml`
  [3637df68] Bio v1.0.1
  [336ed68f] CSV v0.8.5
  [159f3aea] Cairo v1.0.5
  [8be319e6] Chain v0.5.0
  [a93c6f00] DataFrames v0.21.8
  [31c24e10] Distributions v0.25.45
  [186bb1d3] Fontconfig v0.4.0
  [c91e804a] Gadfly v1.3.4
  [7073ff75] IJulia v1.23.2
  [429524aa] Optim v0.15.3
  [438e738f] PyCall v1.93.0
  [d330b81b] PyPlot v2.10.0
  [2913bbd2] StatsBase v0.33.14
  [88034a9c] StringDistances v0.11.2
  [10745b16] Statistics

Я прочитал здесь Юлия «Обнаружены неудовлетворительные требования для пакета» при установке нескольких пакетов о том, как прочитать ошибку конфликта статуса. Кажется, что для Compat требуется более новая версия DataFrame, чем DataFrameMacros, которую я пытаюсь установить.

Таким образом, Campat и DataFrameMacros кажутся несовместимыми.

Однако я не знаю, где Compat вступил в игру, поскольку я пытаюсь установить только DataFrameMacros.

Пакеты, которые мне действительно нужны для кода, который я запускаю:

using PyPlot
using CSV
using DataFrames
using StatsBase
using PyCall
using Cairo
using Fontconfig
using Distributions
using DataFrameMacros, Chain
using Optim

У кого-нибудь есть предложение, как я могу решить ошибку и установить DataFrameMacros?

Пакеты Java
Пакеты Java
Пакет java - это группа классов, интерфейсов и подпакетов схожего типа. Думайте об этом как о папке в каталоге файлов. Мы используем пакеты, чтобы...
1
0
54
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Проблема в конечном итоге связана с Bio.jl — обратите внимание, что Bio.jl устарел, а страница Github заархивирована. Есть запись в блоге, в которой недвусмысленно говорится:

Больше не рекомендуется использовать Bio.jl.

и дает список пакетов, которые имеют функциональность, которую раньше имел Bio.jl. Вы можете выбрать, какой из них установить, исходя из того, какие функции вам нужны. Или, если ваш список «пакетов, которые мне действительно нужны», полон, похоже, вам вообще не нужен Bio.jl. В этом случае вы можете просто rm Bio и add DataFrameMacros вместо этого.

Такая проблема может возникнуть снова, если вы установите все в среде Julia по умолчанию @v1.7. Я бы порекомендовал вам вместо этого сделать ] activate /your/project/folder (в Julia REPL), чтобы создать там новую среду и add только пакеты, которые вам нужны для этого проекта. Это не позволит вашим проектам наступать друг другу на пятки и сделает подобные конфликты менее вероятными.

Другие вопросы по теме