如何正确的使用Julia的包
当我们需要引入一些不在Julia注册表里的包/自己新建文件夹而不是使用
generate
或者通过PkgTemplates.jl
创建的包时,我们该如何将其添加到Julia的环境呢?
不在Julia注册表里的包
- 第一种情况,GitHub上有的项目
- 第二种情况,GitHub上无法引入的项目
GitHub上有的项目
pkg> add https://github.com/fredrikekre/ImportMacros.jl
- 进入REPL(就是用终端打开的Julia界面)
- 按下
]
- 输入
add
,按下空格键
- 打开浏览器,在GitHub的项目页面里点击绿色的
Code
- 复制
https
链接 - 回到REPL,按下
Ctrl Shift v
- 回车
GitHub上无法引入的项目
一般情况下,主要是因为这个包基于早期的Julia构建的
早期的Julia没有Project.toml
这样的文件,具体详情在这里
解决方案1:
- 在你的工作目录(或者你喜欢的文件夹下)打开Julia
- 进入
pkg>
模式 - 输入
generate 项目名称
- 将除了
Project.toml
文件以外的所有文件与文件夹删除,并替换成你clone下来的文件 - 回到终端,输入
activate .
,注意,activate后面有空格 - 输入
up; precompile
(如果是1.6版本,可以只输入instantiate
,这样相对简单一些)
如果你不打算提交更改以让这个包适应新版本Julia而只是自用的话,这个方法相对方便一些
其中,你可以仅仅移动Project.toml
文件并进行其它操作达到同样的效果,但是考虑到看这篇文章的读者水平可能有很大不同,这里写了适合爱抄代码的小白能够接受的教程
解决方案2:
- 使用
PkgTemplates.jl
构建一个同名项目 - __删除原项目的
.git
文件夹__并将使用PkgTemplates.jl
构建的项目的文件全部替换为原项目的
如果打算进行PR,这是个好选择
注意,只进行这几步相当于私有化这个包,请查看原项目是否有开源协议并详细阅读,否则请修改使用PkgTemplates.jl
时的参数,或者删除使用PkgTemplates.jl
构建的项目的.git
文件夹
添加没有使用generate
或者通过PkgTemplates.jl
创建的包
你相当于创建了一个"GitHub上无法引入的包"
gc
与dev
dev:一种更加方便的添加到环境的方式
gc:减少磁盘占用
赞 (0)