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 https://github.com/JuliaLang/Example.jl.git
...
(test) pkg > dev ./Example.jl

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

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

module Example
export 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 > precompile
Precompiling project...
✓ Example
1 dependency successfully precompiled in 2 seconds
1 dependency precompiled but a different version is currently loaded. Restart julia to access the new version 

重新进入Julia

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

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

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值