Джулия еще не в моей рубке, но мне передали проект Джулии для запуска кода внутри. Он состоит из каталога, содержащего main.jl
, Project.toml
и Manifest.toml
.
. Я немного прочитал о том, для чего нужны файлы TOML; Подводя итог моему нынешнему пониманию, они формируют проект или среду (не уверены, в чем и в чем заключается реальное различие).
Я установил Julia v1.3.1 в командной строке, загрузив tar, распаковав и разместив на моем пути. Ввод 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
, я думаю, должен быть какой-то способ сказать Джулии, чтобы убедиться, что пакеты в проекте сделаны доступными (я думаю, что-то вроде файла требований Python) .
Я пытался julia --project=main.jl
, но это просто приводит к загрузке REPL снова, и ничего не происходит (не уверен, загружен ли какой-либо проект или среда или нет).
Как я могу сказать Джулия, чтобы запустить скрипт в этом проекте, принимая к сведению требования и другую информацию в файлах TOML?
Обновление: Выяснили, чтобы ввести ]
в REPL, чтобы ввести pkg
менеджер пакетов. Тогда я могу:
(v1.3) pkg> activate .
Activating environment at `~/myproject/Project.toml`
(myproject) pkg> instantiate
(myproject) pkg>
Затем покинуть менеджер, нажав клавишу Backspace. Все еще не уверен, как все "запустить".