#julia
#julia
Вопрос:
Мне любопытно, поддерживает ли Julia тот же рабочий процесс, что и Python virtual environments.
В Python я могу сделать следующее из терминала:
$ python -m venv venv
$ source venv/bin/activate
(venv) $ pip install myFavPackage
(venv) $ python src/myFavScript.py
Julia может использовать виртуальные среды через свой REPL следующим образом:
(@v1.5) pkg> activate .
(myFavProject) pkg> add myFavPackage
julia> include("src/myFavScript.jl")
Но если я запущу первые две строки (которые добавляют все зависимости к Project.toml
и Manifest.toml
файлам), а затем перейду к терминалу и запущу
$ julia src/myFavScript.jl
Затем он не распознает пакет, который я установил:
ERROR: LoadError: ArgumentError: Package myFavPackage not found in current path:
- Run `import Pkg; Pkg.add("myFavPackage")` to install the myFavPackage package.
Означает ли это, что я должен устанавливать свои пакеты глобально, чтобы запускать скрипты Julia с терминала? А если нет, то как я могу заставить терминал использовать локальные зависимости?
Ответ №1:
Вы можете использовать --project
флаг, т.е.
$ julia --project=path/to/project src/myFavScript.jl
Если вы находитесь в правильной папке, вы можете просто опустить путь, т.Е.
$ julia --project src/myFavScript.jl
Наконец, если вы хотите, чтобы такое поведение было установлено по умолчанию, вы можете установить для JULIA_PROJECT
переменной окружения значение @.
, что эквивалентно тому, чтобы всегда запускать Julia с --project
.