如何运行Julia项目



Julia还没有在我的驾驶室里,但我收到了一个Julia项目来运行其中的代码。这包括一个包含main.jlProject.tomlManifest.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>

然后按退格键离开经理。但仍然不确定如何"运行"所有内容。

您已经非常接近解决方案了!如果文件都在目录dir中,则命令为

julia --project=dir main.jl

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

julia --project=dir
julia> include(“main.jl”)

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

错误消息Package JSON not found in current path表示您没有安装JSON。

您可以通过启动Julia并键入using JSON来进行检查

要安装JSON,您所要做的就是编写import Pkg; Pkg.add("JSON")

参见此输出,例如:

$ julia
_
_       _ _(_)_     |  Documentation: https://docs.julialang.org
(_)     | (_) (_)    |
_ _   _| |_  __ _   |  Type "?" for help, "]?" for Pkg help.
| | | | | | |/ _` |  |
| | |_| | | | (_| |  |  Version 1.5.2 (2020-09-23)
_/ |__'_|_|_|__'_|  |  Official https://julialang.org/ release
|__/                   |
julia> using JSON
ERROR: 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:893
julia> import Pkg; Pkg.add("JSON")
Updating registry at `~/.julia/registries/General`
Updating git-repo `https://github.com/JuliaRegistries/General.git`
Resolving package versions...
Updating `~/.julia/environments/v1.5/Project.toml`
[682c06a0] + JSON v0.21.1
Updating `~/.julia/environments/v1.5/Manifest.toml`
[682c06a0] + JSON v0.21.1
[69de0a69] + Parsers v1.1.0
[ade2ca70] + Dates
[a63ad114] + Mmap
[de0858da] + Printf
[4ec0a83e] + Unicode
julia> using JSON
[ Info: Precompiling JSON [682c06a0-de6a-54ab-a142-c8b1cf79cde6]
julia> 

最新更新