【发布时间】:2020-03-16 17:29:31
【问题描述】:
Julia 还没有在我的驾驶室里,但我已经接到了一个 Julia 项目来运行其中的代码。
这由一个包含main.jl、Project.toml 和Manifest.toml 的目录组成。
我已经阅读了一些 TOML 文件的用途;总结一下我目前的理解,它们构成了一个项目或环境(不确定是哪个,或者真正的区别是什么)。
我通过下载 tar、解压缩并放置在我的路径中,在命令行安装了 Julia v1.3.1。在命令行输入 julia 会按预期打开 Julia CLI REPL。
我尝试使用julia main.jl 运行代码,这导致抱怨所需的包不存在,例如:
julia main.jl
ERROR: LoadError: ArgumentError: Package JSON not found in current path:
- Run `import Pkg; Pkg.add("JSON")` to install the JSON package.
Stacktrace:
[1] require(::Module, ::Symbol) at ./loading.jl:887
[2] include at ./boot.jl:328 [inlined]
[3] include_relative(::Module, ::String) at ./loading.jl:1105
[4] include(::Module, ::String) at ./Base.jl:31
[5] exec_options(::Base.JLOptions) at ./client.jl:287
[6] _start() at ./client.jl:460
in expression starting at /home/<user>/myproject/main.jl:3
我可以按照此处的说明加载所需的包,但我肯定不应该为每个包手动执行此操作吗?
由于Project.toml 中列出了所需的每个包,我想应该有某种方法告诉 Julia 以确保项目中的包可用(我正在考虑 Python 需求文件的内容)。
我已经尝试过julia --project=main.jl,但这只会导致 REPL 再次加载而没有任何反应(不确定是否加载了任何项目或环境)。
如何让 Julia 在记录 TOML 文件中的要求和其他信息的同时运行该项目中的脚本?
更新:
已经想好在 REPL 输入 ] 进入 pkg 包管理器。然后我可以:
(v1.3) pkg> activate .
Activating environment at `~/myproject/Project.toml`
(myproject) pkg> instantiate
(myproject) pkg>
然后按退格键离开管理器。 仍然不确定如何“运行”所有内容。
【问题讨论】: