Есть и другие вопросы, связанные с этой проблемой в SO, но я думаю, что я попробовал рекомендованное решение, но безуспешно.
Итак, в духе моих маленьких шагов к изучению Юлии, я попытался создатьмодуль локально.Структура папок моего модуля выглядит следующим образом:
- TrimmedGrassmanAvwerage/
- src/
- TrimmedGrassmanAverage.jl
- Utils/
- dummy.jl
Содержимое dummy.jl
просто:
function dummy(x)
x + oneunit(x)
end
Аналогично, содержимое TrimmedGrassmanAverage
:
module TrimmedGrassmanAverage
export Utils,
dummy
include("Utils/dummy.jl")
end
Теперь в моем REPL я делаю следующее:
julia> include("TrimmedGrassmanAverage/src/TrimmedGrassmanAverage.jl")
Это возвращает:
Main.TrimmedGrassmanAverage
Теперь я делаю:
using TrimmedGrassmanAverage
Это возвращает ошибку:
ERROR: ArgumentError: Package TrimmedGrassmanAverage not found in current path:
- Run `Pkg.add("TrimmedGrassmanAverage")` to install the TrimmedGrassmanAverage package.
Я думал, что выполнение `include (" ... ") поместит пакет в путь, и Джулия сможет его найти.Тем не менее, очевидно, что пропущено еще несколько шагов.
РЕДАКТИРОВАТЬ
Однако я могу сделать:
using Main.TrimmedGrassmanAverage
и затем я могу позвонить:
TrimmedGrassmanAverage.dummy(10);
Я не уверен, почему нужно добавить пространство имен Main
, а также почему я не могу просто вызвать dummy
без Trimmed...
, так как я экспортирую функцию dummy
.