Как запустить проект Юлии? - PullRequest
4 голосов
/ 16 марта 2020

Джулия еще не в моей рубке, но мне передали проект Джулии для запуска кода внутри. Он состоит из каталога, содержащего 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. Все еще не уверен, как все "запустить".

1 Ответ

5 голосов
/ 16 марта 2020

Вы очень близки к решению! Если все файлы находятся в каталоге dir, тогда команда будет

julia --project=dir main.jl

. Вы также можете запустить интерактивный сеанс в этой среде, а затем запустить код в файле с помощью

julia --project=dir

julia> include(“main.jl”)

Редактировать: если каталог является текущим рабочим каталогом, то вы можете просто использовать --project=.

...