Pkg安装上的错误 Unsatisfiable requirements

最近在安装很多包的时候,都报了这类错误 unsatisfiable requirements detected for package ——
举个例子
(@v1.5) pkg> add MLJ
Updating registry at C:\Users\DELL\.julia\registries\General
Updating registry at C:\Users\DELL\.julia\registries\JuliaComputingRegistry
Resolving package versions…
ERROR: Unsatisfiable requirements detected for package SpecialFunctions [276daf66]:
SpecialFunctions [276daf66] log:
├─SpecialFunctions [276daf66] has no known versions!
└─found to have no compatible versions left with GLM [38e38edf]
└─GLM [38e38edf] log:
├─possible versions are: [1.0.0-1.0.2, 1.1.0-1.1.1, 1.2.0, 1.3.0-1.3.11, 1.4.0] or uninstalled
└─restricted to versions * by an explicit requirement, leaving only versions [1.0.0-1.0.2, 1.1.0-1.1.1, 1.2.0, 1.3.0-1.3.11, 1.4.0]
同样地
(@v1.5) pkg> add LIBSVM
Resolving package versions…
ERROR: Unsatisfiable requirements detected for package VersionParsing [81def892]:
VersionParsing [81def892] log:
├─VersionParsing [81def892] has no known versions!
└─found to have no compatible versions left with PyPlot [d330b81b]
└─PyPlot [d330b81b] log:
├─possible versions are: [2.6.1-2.6.3, 2.7.0, 2.8.0-2.8.2, 2.9.0] or uninstalled
└─restricted to versions * by an explicit requirement, leaving only versions [2.6.1-2.6.3, 2.7.0, 2.8.0-2.8.2, 2.9.0]
问问大伙是怎样解决的

包依赖冲突

建议每个项目建一个虚拟环境,不要全装到默认环境

当然是建新环境喽

我最近遇到包依赖冲突的问题,关于新建虚拟环境,在新建环境下安装包,在默认环境下能使用吗?另外如何控制安装包时的参数,以及早发现依赖冲突问题?

  1. 新的project下面安装的包不能在默认环境下使用。
  2. 在较新的版本中,一个包安装版本冲突是有明确提示信息的,会显示是哪个(哪些)包的版本之间产生了冲突导致无法正常安装。

你提到的第2点,在add 时会直接显示冲突?
我在add 时,julia会自动调整各种依赖的版本,升级或降级,然后安装成功;julia的这个过程是否可控?如果不可控,julia将其中一个依赖降级,之后我安装另外一个包的时候,因为依赖包版本低或高导致失败,这种问题有解决办法吗?

没在电脑上,暂时想不起来具体的命令,大概是在pkg模式下有个outdated之类的命令。在安装包的时候,你可以手动选择版本号,具体参考下pkg的文档。

多谢回复,我试一下。
另外,新的project应该可以使用默认环境的包吧?

可以,但如果新的project里面与默认环境有同样的包,以当前project(pkg> activate myproject)的为准。

1 个赞