想要运行一个github上的代码:https://github.com/slimgroup/Software.SEG2021/tree/main/WavefieldRecoveryUQ.jl
运行WavefieldRecoveryUQ的test_hint_interpolation.ji 产生错误ERROR: LoadError: UndefVarError: put_params! not defined
发现put_params!这个函数在github上存在:https://github.com/slimgroup/ConditionalNFs4Imaging.jl/blob/main/src/network/put_param.jl
但是包ConditionalNFs4Imaging未在网上注册,请问如何使用?
1 个赞
然后使用
找到了ConditionalNFs4Imaging的uuid
然后在项目WavefieldRecoveryUQ中添加包ConditionalNFs4Imaging
还是报同样的错
直接
]add https://github.com/slimgroup/ConditionalNFs4Imaging.jl
不行吗
脚本执行错误,直接问仓库作者更方便
补充:
很欢迎参与论坛交流,社区对新人相对包容,也请务必学习交流的礼仪规范。
你可以尝试学长下边贴的方法,不行就等作者回复。我也怀疑这个提问有X-Y问题的倾向,容易做无用功,也容易让别人做无用功。所以建议直接提 issue,毕竟代码作者对细节更清楚。
近期经常看你在 Q 群询问这个脚本问题,我便代你写了个 issue,但这绝非义务。既然在用 GitHub 了,就应该适应这种交流方式,不要担心犯错,但请注意吸取经验。此外推荐谷歌翻译和 Grammarly 这两个实用插件。
下面这一系列的前提都在于 确实是缺少 ConditionalNFs4Imaging.jl 这个包的假设出发的。尽管我对此保持怀疑:put_params!
看起来像是一个非常普遍的函数名。
git clone https://github.com/slimgroup/Software.SEG2021.git
git clone https://github.com/slimgroup/ConditionalNFs4Imaging.jl.git
然后给 ConditionalNFs4Imaging.jl/Project.toml
文件补上 uuid 让它成为一个合法的 package, 比如说:
name = "ConditionalNFs4Imaging"
+ uuid = "5160f321-d055-4d1d-a174-f9960ec09453"
authors = ["Ali Siahkoohi"]
接着在 WavefieldRecovertyUQ 中 dev 这个包:
cd Software.SEG2021/WavefieldRecoveryUQ.jl/
julia --project=. 'using Pkg; Pkg.develop(path="../../ConditionalNFs4Imaging.jl")'
再接下来怎么搞以及这个代码能否成功运行我就不知道了. 因为这些代码的依赖太多了,这中间可能还存在其他的问题。
如果实在不行,也可以再尝试问一下原作者,更新一下信息或者版本或者之类的。它自己的文档上好像说有一个私有注册表,不太清楚是不是和这个有关:https://github.com/slimgroup/Software.SEG2021/tree/main/WavefieldRecoveryUQ.jl#installation
我可能能找到了解决的办法 有这个需要的同学可以和我讨论
先通过git将其下载到本地
然后再E:\Julia1\Software.SEG2021\WavefieldRecoveryUQ.jl\src\WavefieldRecoveryUQ.jl中include
put_param的路径
这样可以,恭喜解决。应该也可以通过改变 DEPOT_PATH 的方式应用 ConditionalNFs4Imaging.jl 在本地,然后直接 export
我谈一下我的土法:
1 创建个目录比如 d:/a1,
2 etc/julia/startup.jl 里面,添加 push!(LOAD_PATH, “d:/a1” )
3 把 ConditionalNFs4Imaging 解包到 d:/a1 为 d:/a1/ConditionalNFs4Imaging
4 using ConditionalNFs4Imaging
5 看看 put_params! 可以用不。
2 个赞
其实很简单,假定有一个文件A.jl
内容为
module Test
function A()
println("Hello, world!")
end
end
在B.jl
中调用这个模块,可以直接
include("A.jl")
LIB = Main.Test
LIB.A()
效果为
PS C:\Users\mrs504aa\Desktop> julia .\B.jl
Hello, world!