如何运行 Julia 项目?

Tob*_*oby 9 julia toml

Julia 还没有在我的驾驶室里,但我得到了一个 Julia 项目来运行其中的代码。这由一个包含 a main.jl、 aProject.toml和 a的目录组成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
Run Code Online (Sandbox Code Playgroud)

我可以按照此处的说明加载所需的包,但我肯定不应该为每个包手动执行此操作?由于所需的每个包都列在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>
Run Code Online (Sandbox Code Playgroud)

然后按退格键离开经理。仍然不确定如何“运行”一切。

Eri*_*ric 8

您已经非常接近解决方案了!如果文件都在一个目录中,dir那么命令将是

julia --project=dir main.jl
Run Code Online (Sandbox Code Playgroud)

您还可以在该环境中启动交互式会话,然后通过以下方式运行文件中的代码

julia --project=dir

julia> include(“main.jl”)
Run Code Online (Sandbox Code Playgroud)

编辑:如果目录是当前工作目录,那么你可以使用 --project=.