Подтвердить что ты не робот

Как установить пакет в Julia 1.0 (UndefVarError: Pkg не определено)

Я установил Julia 1.0 и хочу сделать простой сюжет. Первый шаг - набрать это на Джулии:

Pkg.add("PyPlot")

Однако возникает ошибка:

ERROR: UndefVarError: Pkg not defined.

То же самое происходит, когда я печатаю:

Pkg.status()

Какой лучший способ установить пакет в Julia? Я использую MacOS.

4b9b3361

Ответ 1

В Julia 1.0 есть два способа установить пакет. Во-первых, вы можете сделать

using Pkg
Pkg.add("Packagename")

или вы можете использовать режим Упа REPL нажатия ] (аналогичны ?, режим помощи, и ; режим оболочки):

(v1.0) pkg> add Packagename

Вы можете найти более подробную информацию здесь: https://docs.julialang.org/en/stable/stdlib/Pkg/# и здесь (живая демонстрация): https://youtu.be/GBi__3nF-rM?t=28m1s

Julia 1.0 является совершенно новым. Он был выпущен несколько дней назад, поэтому некоторые пакеты еще не совместимы с 1.0. Иногда это помогает установить основную ветвь пакета вместо последней помеченной выпуски. На моей машине мне пришлось делать

(v1.0) pkg> add LaTeXStrings#master
(v1.0) pkg> add PyPlot

чтобы PyPlot работал. Надеюсь это поможет.

UPDATE: обновление LaTeXStrings (с меткой). Поэтому первая строка выше не нужна.

UPDATE2: Еще одна (более короткая) живая демонстрация можно найти здесь: https://www.youtube.com/watch?v=76KL8aSz0Sg

UPDATE3: Существует третий способ взаимодействия с менеджером пакетов, а именно "pkg strings":

using Pkg
pkg"add Packagename"

Ответ 2

Как кто-то новый для Джулии, моя первоначальная путаница в менеджере пакетов Julia 1.0 была напрямую связана с проблемой OP. Я не использовал pre-Julia 1.0 REPL, но казалось бы, что Pkg.add("Example") работал прямо из коробки - не требовалось using Pkg. Есть примеры, которые плавают вокруг Интернета, и это способ начать работу. Новый пользователь Julia, как и я, может сначала не знать об этом изменении.

Тем не менее, Julia 1.0 REPL требует, чтобы пользователь явно Pkg.add.("Example") using Pkg перед использованием команды Pkg.add.("Example").