Julia:DiffEqSensitivity 包的预编译(precompiling)失败

简介: 我更新了某个包,然后在预编译的时候,出现了 `Failed to precompile` 的报错。在 `using DiffEqSensitivity` 的时候,出现了 `ERROR: UndefVarError: SciMLBase not defined.` 的报错,然后无法完成 precompile。

我更新了某个包,然后在预编译的时候,出现了 Failed to precompile 的报错

using DiffEqSensitivity 的时候,出现了 ERROR: UndefVarError: SciMLBase not defined. 的报错,然后无法完成 precompile。

查看报错:

ERROR: LoadError: LoadError: UndefVarError: SciMLBase not defined
Stacktrace:
 [1] top-level scope at /home/xu/.julia/packages/DiffEqNoiseProcess/9NzQP/src/solve.jl:1
 [2] include(::Function, ::Module, ::String) at ./Base.jl:380
 [3] include at ./Base.jl:368 [inlined]
 [4] include(::String) at /home/xu/.julia/packages/DiffEqNoiseProcess/9NzQP/src/DiffEqNoiseProcess.jl:1
 [5] top-level scope at /home/xu/.julia/packages/DiffEqNoiseProcess/9NzQP/src/DiffEqNoiseProcess.jl:23
 [6] include(::Function, ::Module, ::String) at ./Base.jl:380
 [7] include(::Module, ::String) at ./Base.jl:368
 [8] top-level scope at none:2
 [9] eval at ./boot.jl:331 [inlined]
 [10] eval(::Expr) at ./client.jl:467
 [11] top-level scope at ./none:3
in expression starting at /home/strongnine/.julia/packages/DiffEqNoiseProcess/9NzQP/src/solve.jl:1
in expression starting at /home/strongnine/.julia/packages/DiffEqNoiseProcess/9NzQP/src/DiffEqNoiseProcess.jl:23

最后的两句可以看到,是在 .julia/packages/DiffEqNoiseProcess/9NzQP/src/solve.jl 这个文件的第一行出现了问题,而这个报错 UndefVarError: SciMLBase not defined 是因为在没导入包的情况下就使用了这个变量,所以一个可以解决的办法,就是进去这个文件,加上 using SciMLBase.

因为这个文件是系统的文件,所以我们进入 .julia/packages/DiffEqNoiseProcess/9NzQP/src/,然后右键在此打开终端,输入 sudo vim solve.jl,在文件的前面加上 using SciMLBase,然后按 esc 退出编辑模式,然后按 :wq! 强制保存退出。

再次 using DiffEqSensitivity 就能够预编译成功了。

出现这个问题的原因是因为在预编译的时候 DiffEqNoiseProcess 这个包出现报错,导致的。

一般碰到这种类似的情况,有几种尝试的方法:

  1. 首先可以尝试 ]build,或者 ]build SciMLBase,看看能不能完成
  2. 还可以把预编译失败的包先删除(remove)了:例如 ]remove DiffEqSensitivity,然后再重新安装(add):]add DiffEqSensitivity
  3. 如果还是不行,可以使用最终的办法,把之前预编译完成的文件都删除,然后再全部重新预编译。在 Ubuntu 上文件保存的路径为:~/.julia/compiled/ 里面会有对应 Julia 版本的一个文件夹,里面的预编译文件先备份,然后删除,再 using Package 看看,时间会比较长,但是应该能够解决。
目录
相关文章
|
22天前
Node安装版本低于工程版本时打包绕过校验
在开发中,若本地Node版本低于项目配置要求,导致打包报错(如图所示),可在不变更本地环境的情况下,通过在执行`npm run build`前输入命令`set NODE_OPTIONS=--openssl-legacy-provider`来绕行此问题,确保构建顺利进行。
42 10
|
5月前
|
缓存 Go
Go引用包版本更新但是被引用的包的子包并没有出现在vendor中的问题和解决方案
文章讨论了在Go模块项目中升级依赖包版本时遇到的子包未出现在vendor目录的问题,并提供了直接删除旧版本引用并重新执行`go mod vendor`的解决方案。
61 0
|
5月前
|
编译器 Go 开发者
Go 程序中的包:定义、作用与应用指南
【8月更文挑战第31天】
109 0
|
Serverless Go
阿里函数计算 go mod tidy 的时候提示文件只读
阿里函数计算 go mod tidy 的时候提示文件只读
129 1
编译好的编译ffmpeg又出错:更改输出目录产生各种古怪错误
编译好的编译ffmpeg又出错:更改输出目录产生各种古怪错误
106 0
|
C++
编译OpenJDK12:methodMatcher.cpp error C2220 警告被视为错误 - 没有生成“object”文件
编译OpenJDK12:methodMatcher.cpp error C2220 警告被视为错误 - 没有生成“object”文件
519 0
|
数据可视化 API
Julia:Plots 包的属性汇总
这篇文章是 Julia 的 Plots 包的各种属性的汇总
185 0
|
C++
so运行出错:只包含了头文件,未同时编译cpp
so运行出错:只包含了头文件,未同时编译cpp
134 0
|
前端开发 关系型数据库 MySQL
为tinycolinux创建应用包-toolchain和编译方法
本文关键字:tinycorelinux编译gcc套件,live,vhd二合一colinux,tinycorelinux lnmp
343 0
为tinycolinux创建应用包-toolchain和编译方法
|
关系型数据库 C语言 PostgreSQL
PostgreSQL 开启with-llvm(JIT)后,新增插件异常(clang: Command not found)处理
标签 PostgreSQL , llvm , clang , jit 背景 PostgreSQL 11版本开始引入了对JIT的支持,在OLAP类型的SQL有比较大的性能提升。 如果你使用的是YUM安装的PG,clang可能没有加入,在后期编译其他插件时可能遇到类似的报错: 比如pg_hint_plan插件 git clone https://github.
2989 0