Win10系统Julia安装Plots包报Base.!变量赋值错误解决方法
问题场景
Windows 10 系统、Julia v1.7 环境下安装Plots包后,执行using Plots语句时触发预编译报错,完整报错信息:
[ Info: Precompiling Plots [91a5bcdd-55d7-5caf-9e0b-520d859cae80] ERROR: LoadError: cannot assign a value to variable Base.! from module StaticArrays ERROR: LoadError: Failed to precompile GeometryBasics [5c1252a2-5f33-56bf-86c9-59e7332b4326] to C:\Users\Vladimir\.julia\compiled\v1.7\GeometryBasics\jl_DDF.tmp. ERROR: Failed to precompile Plots [91a5bcdd-55d7-5caf-9e0b-520d859cae80] to C:\Users\Vladimir\.julia\compiled\v1.7\Plots\jl_D09.tmp.
报错链路:StaticArrays模块违规赋值Base内置变量!报错 → GeometryBasics预编译失败 → Plots预编译失败。
故障根因
本地安装的StaticArrays包版本过旧,存在不兼容Julia 1.7版本的写法:Julia 1.7开始禁止外部模块给Base模块的内置运算符/变量重新赋值,旧版StaticArrays的违规写法直接触发加载错误,连锁导致所有依赖它的上层包预编译失败。
修复步骤
- 打开Julia REPL,按
]键进入Pkg包管理模式,提示符会变为(@v1.7) pkg> - 执行
update StaticArrays命令,将StaticArrays升级到适配Julia 1.7的最新兼容版本 - 如果更新后仍存在缓存报错,按退格键退出包管理模式回到
julia>普通提示符,执行以下命令清理损坏的包和预编译缓存:
using Pkg Pkg.rm("Plots") Pkg.rm("GeometryBasics") Pkg.gc()
- 再次按
]进入包管理模式,执行add Plots重新安装Plots包 - 安装完成后回到普通REPL模式,执行
using Plots验证,等待首次预编译完成即可正常使用。
补充说明:如果长期使用Julia做开发,建议升级到Julia 1.8+的稳定LTS版本,可大幅减少旧版本的包兼容类问题。
内容的提问来源于stack exchange,提问作者Vladimir Mikheev
相关产品推荐
相关产品推荐

