Запуск скриптов Julia из терминала в виртуальной среде

#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 .