在某个项目中需要用到PowerSystems,PowerSimulationsDynamics,Makie,以及Interact,Mux,WebIO等包,但是这里碰到了包版本严重降级问题,导致使用不便,请问如何解决。具体现象如下:
由于Interact、InteractBulma、Mux、WebIO等包及其某些依赖包久未更新,因此其依赖包的版本极其低,导致在项目中add Interact InteractBulma Mux WebIO之后,PowerSystems,PowerSimulationsDynamics,Makie等包的版本均发生了降级,尤其是PowerSimulationsDynamics的版本从0.6.2降为0.3.0,PowerSimulationsDynamics 0.3.0功能比0.6.2少而且文档查询很不方便,而且0.6.2的很多重要函数都已更改,严重影响项目开发。
请问有何办法,能够在add Interact InteractBulma Mux WebIO之后,PowerSystems,PowerSimulationsDynamics,Makie等包的版本仍能保持最新。
目前我能想到的暂时只有将Interact InteractBulma Mux WebIO以及其所有的依赖包均下载到本地,手动编辑其代码并从本地安装,但这样工作量巨大,因为依赖树巨大,需要编辑的包太多了,请问还有没有其他好的办法
你可以尝试 pkg> add PowerSimulationsDynamics@0.6
以及 pkg> pin PowerSImulationsDynamics
.
如果之前没有使用过项目目录下单独的 Project.toml
管理依赖的话,也可以通过 pkg> activate
来做。
(psysverify) pkg> pin AlgebraOfGraphics DataFrames DifferentialEquations Gadfly Makie Plots PalmerPenguins PowerSimulations PowerSimulationsDynamics PowerSystems RDatasets WGLMakie
Resolving package versions...
Updating `E:\seprojs\NREL-SIIP\psysverify\Project.toml`
[cbdf2221] ~ AlgebraOfGraphics v0.5.2 ⇒ v0.5.2 ⚲
[a93c6f00] ~ DataFrames v1.2.2 ⇒ v1.2.2 ⚲
[0c46a032] ~ DifferentialEquations v6.18.0 ⇒ v6.18.0 ⚲
[c91e804a] ~ Gadfly v1.3.3 ⇒ v1.3.3 ⚲
[ee78f7c6] ~ Makie v0.15.1 ⇒ v0.15.1 ⚲
[8b842266] ~ PalmerPenguins v0.1.2 ⇒ v0.1.2 ⚲
[91a5bcdd] ~ Plots v1.21.1 ⇒ v1.21.1 ⚲
[e690365d] ~ PowerSimulations v0.14.7 ⇒ v0.14.7 ⚲
[398b2ede] ~ PowerSimulationsDynamics v0.6.2 ⇒ v0.6.2 ⚲
[bcd98974] ~ PowerSystems v1.10.0 ⇒ v1.10.0 ⚲
[ce6b1742] ~ RDatasets v0.7.5 ⇒ v0.7.5 ⚲
[276b4fcb] ~ WGLMakie v0.4.5 ⇒ v0.4.5 ⚲
Updating `E:\seprojs\NREL-SIIP\psysverify\Manifest.toml`
[cbdf2221] ~ AlgebraOfGraphics v0.5.2 ⇒ v0.5.2 ⚲
[a93c6f00] ~ DataFrames v1.2.2 ⇒ v1.2.2 ⚲
[0c46a032] ~ DifferentialEquations v6.18.0 ⇒ v6.18.0 ⚲
[c91e804a] ~ Gadfly v1.3.3 ⇒ v1.3.3 ⚲
[ee78f7c6] ~ Makie v0.15.1 ⇒ v0.15.1 ⚲
[8b842266] ~ PalmerPenguins v0.1.2 ⇒ v0.1.2 ⚲
[91a5bcdd] ~ Plots v1.21.1 ⇒ v1.21.1 ⚲
[e690365d] ~ PowerSimulations v0.14.7 ⇒ v0.14.7 ⚲
[398b2ede] ~ PowerSimulationsDynamics v0.6.2 ⇒ v0.6.2 ⚲
[bcd98974] ~ PowerSystems v1.10.0 ⇒ v1.10.0 ⚲
[ce6b1742] ~ RDatasets v0.7.5 ⇒ v0.7.5 ⚲
[276b4fcb] ~ WGLMakie v0.4.5 ⇒ v0.4.5 ⚲
(psysverify) pkg> add Interact InteractBulma Mux WebIO Blink
Resolving package versions...
ERROR: Unsatisfiable requirements detected for package Observables [510215fc]:
Observables [510215fc] log:
├─possible versions are: 0.2.0-0.4.0 or uninstalled
├─restricted by compatibility requirements with WebIO [0f1e0344] to versions: 0.2.0-0.3.3
│ └─WebIO [0f1e0344] log:
│ ├─possible versions are: 0.2.5-0.8.15 or uninstalled
│ ├─restricted to versions * by an explicit requirement, leaving only versions 0.2.5-0.8.15
│ └─restricted by compatibility requirements with Blink [ad839575] to versions: 0.3.0-0.8.15
│ └─Blink [ad839575] log:
│ ├─possible versions are: 0.8.0-0.12.5 or uninstalled
│ └─restricted to versions * by an explicit requirement, leaving only versions 0.8.0-0.12.5
└─restricted by compatibility requirements with Makie [ee78f7c6] to versions: 0.4.0 — no versions left
└─Makie [ee78f7c6] log:
├─possible versions are: 0.9.0-0.15.2 or uninstalled
└─restricted to versions 0.15.1 by an explicit requirement, leaving only versions 0.15.1
这里的实际问题是上游更新不及时,所以只能通过给上游提交 issue 或者PR去修复它。
使用 pin
的话相当于是把那些最重要的版本给固定,允许一些不重要的版本降级,Makie
, Plots
这种有超多依赖的包固定版本了基本上就没戏了。