Создание и использование пользовательского модуля в Julia

Хотя этот вопрос был задан раньше, похоже, что многое изменилось в отношении модулей в 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 ответ


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

using .MyModule

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


Есть идеи?

10000