如何正确的使用Julia的包

当我们需要引入一些不在Julia注册表里的包/自己新建文件夹而不是使用generate或者通过PkgTemplates.jl创建的包时,我们该如何将其添加到Julia的环境呢?

不在Julia注册表里的包

  1. 第一种情况,GitHub上有的项目
  2. 第二种情况,GitHub上无法引入的项目

GitHub上有的项目

给我好好看文档!

pkg> add https://github.com/fredrikekre/ImportMacros.jl
  1. 进入REPL(就是用终端打开的Julia界面)
  2. 按下]
  3. 输入add,按下空格键
  4. 打开浏览器,在GitHub的项目页面里点击绿色的Code
  5. 复制https链接
  6. 回到REPL,按下Ctrl Shift v
  7. 回车

GitHub上无法引入的项目

一般情况下,主要是因为这个包基于早期的Julia构建的

早期的Julia没有Project.toml这样的文件,具体详情在这里

解决方案1:

  1. 在你的工作目录(或者你喜欢的文件夹下)打开Julia
  2. 进入pkg>模式
  3. 输入generate 项目名称
  4. 将除了Project.toml文件以外的所有文件与文件夹删除,并替换成你clone下来的文件
  5. 回到终端,输入activate .,注意,activate后面有空格
  6. 输入up; precompile(如果是1.6版本,可以只输入instantiate,这样相对简单一些)

如果你不打算提交更改以让这个包适应新版本Julia而只是自用的话,这个方法相对方便一些

其中,你可以仅仅移动Project.toml文件并进行其它操作达到同样的效果,但是考虑到看这篇文章的读者水平可能有很大不同,这里写了适合爱抄代码的小白能够接受的教程

解决方案2:

  1. 使用PkgTemplates.jl构建一个同名项目
  2. __删除原项目的.git文件夹__并将使用PkgTemplates.jl构建的项目的文件全部替换为原项目的

如果打算进行PR,这是个好选择

注意,只进行这几步相当于私有化这个包,请查看原项目是否有开源协议并详细阅读,否则请修改使用PkgTemplates.jl时的参数,或者删除使用PkgTemplates.jl构建的项目的.git文件夹

添加没有使用generate或者通过PkgTemplates.jl创建的包

你相当于创建了一个"GitHub上无法引入的包"

gcdev

dev:一种更加方便的添加到环境的方式

gc:减少磁盘占用

来源:https://www.icode9.com/content-4-856451.html

(0)

相关推荐