失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > julia 使用修改后的pkg

julia 使用修改后的pkg

时间:2019-05-17 16:09:35

相关推荐

julia 使用修改后的pkg

根据官方教程,在Pkg管理模式下,可以使用add命令添加包

(@v1.6) pkg > add [package name/package URL/package local directory]

但教程中同样指出,如果要使用未注册的包,必须用URL方式或本地方式加载。此外,add方法加载的包,相当于对包存储库进行跟踪,采用本地加载时,也必须将本地修改的包代码上传到存储库的某一分支才能使用(没有做过具体测试)。

所以官方提供了dev命令,可以直接加载本地修改的包,在开发场景中使用

(@v1.6) pkg > dev [package name/package URL/package local directory]

如果要使用未注册的包,同样可以用URL方式或本地方式加载。采用dev方法加载的包,对路径进行跟踪,即使是注册的包,其使用的包代码也是本地~/.julia/dev/目录下的代码(可通过设置环境变量JULIA_PKG_DEVDIR来更改此路径)。如果修改的代码在云端,必须手动clone或者pull

本文采用Example包作为示例。

注意:以下操作都是在test环境中进行,检查修改是否成功时注意要切换到test环境下

在指定文件夹中创建一个新的环境

> mkdir test#创建新文件夹> cd test> julia#进入julia环境并切换到包管理模式(按']')...(@v1.6) pkg > activate .(test) pkg > #可以看到进入了当前文件夹的环境

将Example包的代码拉取到本地,并用dev命令加载

> git clone /JuliaLang/Example.jl.git...(test) pkg > dev ./Example.jl

也可以直接dev Example,这里我的网络不行,直接dev无法把代码下载下来。而且直接dev就将代码存入JULIA_PKG_DEVDIR目录里了。

可以修改./Example.jl/src/Example.jl中的代码进行测试。

module Exampleexport hello, domath, test#别忘记在export中加入测试的函数...test(str::String) = str * " update exists."end

保存修改后,进入Julia,如果只修改了函数的一部分,会提示进行了编译

julia > using Example[ Info: Precompiling Example [7876af07-990d-54b4-ab0e-23690620f79a]

如果没有提示进行编译,可能修改没有被引入。进入包管理模式中进行编译

(test) pkg > precompilePrecompiling project...✓ Example1 dependency successfully precompiled in 2 seconds1 dependency precompiled but a different version is currently loaded. Restart julia to access the new version

重新进入Julia

julia > using Examplejulia > test("hello")"hello update exists."

同样的步骤可以将包源码修改编译后在程序中使用。

如果觉得《julia 使用修改后的pkg》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。