Создание и использование пользовательского модуля в Юлии - PullRequest
0 голосов
/ 20 октября 2018

Хотя этот вопрос уже задавался ранее, похоже, что многое изменилось в отношении модулей в Julia V1.0.

Я пытаюсь написать собственный модуль и провести его тестирование.Из документации Julia по Pkg , используя команду dev, есть способ создать git-дерево и начать работать.

Однако на данный момент это кажется излишним.Я хотел бы просто сделать небольшой локальный файл, скажем mymodule.jl, который будет выглядеть так:

module MyModule

export f, mystruct

function f()
end

struct mystruct
  x::Integer
end

end # MyModule

Похоже, раньше можно было загрузить его с помощью

include("module.jl")
using MyModule

при вводе include("module.jl") кажется, что код загружается, т.е. ошибки нет, однако using MyModule выдает ошибку:

ArgumentError: Package MyModule not found in current path:
   - Run `import Pkg; Pkg.add("MyModule")` to install the MyModule package.

Я замечаю, что при использовании include("module.jl"), есть доступ кэкспортированная функция и структура, использующие полный путь, MyModule.f(), но я бы хотел более короткую версию, просто f().

Тогда у меня вопрос: чтобы разработать модуль, нужно ли использовать команду Pkg dev или есть более легкий способ сделать это?

1 Ответ

0 голосов
/ 21 октября 2018

Чтобы использовать локальный модуль, вы должны добавить к имени модуля префикс ..

using .MyModule

Когда выполняется using MyModule (без .), Джулия пытается найтимодуль с именем MyModule, установленный в текущей среде Pkg, следовательно, ошибка.

...