如何将本地项目添加到 Julia 的导​​入路径?

cmc*_*cmc 10 julia

我希望能够import或者using我正在~/projects/ExamplePkg从我的主要 Julia REPL / 来自另一个项目或环境的目录中编写一个包。

cmc*_*cmc 8

通过]foo我的意思是“在朱莉娅PKG REPL使用foo的命令”。]在 Julia REPL 处键入以进入 Pkg REPL。使用]help <command name>以获取更多信息或查看下面的链接。

确保你的包有一个 Project.toml,它给它一个 UUID 并命名它(]generate从 Julia REPL 或 PkgTemplates 包生成一个),并且它在一个 git repo 中,至少有一个包含所有相关文件的提交。

然后选择您希望如何使用该软件包。

你可能想运行]dev ~/projects/ExamplePkg

如果dev在本地路径上使用,则在加载该包时记录并使用该包的该路径。该路径将相对于项目文件进行记录,除非它是作为绝对路径给出的。

如果您使用dev并更改了dev'd 包中的依赖项,那么您可能应该]resolve在依赖于该包的所有环境中运行。

或者你可以运行]add ~/projects/ExamplePkg

add我们可以给 git 存储库的本地路径,而不是给它一个 git 存储库的 URL 。这与添加 URL 的工作方式类似。将跟踪本地存储库(在某个分支),并在更新包时从该本地存储库中提取更新。请注意,加载该包时不会立即反映对本地包存储库中文件的更改。必须提交更改并更新包才能引入更改。

在 Julia 版本 <1.4 中:如果]add在正确设置 git repo 之前不小心创建了一个包,那么您可能会得到ERROR: GitError(Code:EUNBORNBRANCH, Class:Reference, reference 'refs/heads/master' not found). 不幸的是,Julia 可能已经缓存了错误的存储库,您需要将其从~/.julia/clones/<gibberish>/. 您可以使用 grep: 找到要删除的目录$ grep ExamplePkg ~/.julia/clones/*/config

文档:https : //julialang.github.io/Pkg.jl/v1/managing-packages/

  • 我很高兴地说,最终的声明(关于错误的 git 状态)在 Pkg master 上不再准确:https://github.com/JuliaLang/Pkg.jl/issues/1065。Pkg 现在会在允许您添加之前检查 git 存储库 (2认同)