Я использую Julia 1.0.1 с Juno IDE.
Я написал модуль MyModule,
myModule
using Gadfly, DataFrames, Cairo, Fontconfig
function foo(N::Int64)
grid = 1:N
df = DataFrame(x = grid, y = grid .^2)
p = plot(x = "x", y = "y");
draw(PNG("figures/plot.png", 6inch, 3inch), p)
end
end
Давайте назовем родительский каталог "Top".У меня есть файл с именем main.jl
, расположенный в Top/Julia
.У меня также есть некоторые вспомогательные функции, расположенные в Top/Julia/functions
.Сценарий main.jl
состоит из следующих команд:
using MyModule
include("functions/auxiliaryFunction.jl")
N = 10
foo(10)
Когда я запускаю этот код,
Команда include("functions/auxiliaryFunction.jl")
отлично работает.
Файл plot.png
создается внутри каталога Top/figures
, а не внутри Top/Julia/figures
Если я запускаю pwd()
в REPL,возвращается ".../Top"
.Так что, похоже, происходит то, что рабочий каталог в главном скрипте - это местоположение самого файла (или «проекта» в Juno ... отчасти смущен этим), тогда как рабочий каталог его функцийвызовы в модулях, которые он импортирует, является рабочим каталогом REPL.Это правильно или я что-то упустил?Каково стандартное решение этой проблемы - добавить рабочий каталог в качестве аргумента функции?
Редактировать 1: Если я добавлю
a = pwd()
println("$a")
к сценарию main.jl
, он вернет
.../Top
Редактировать 2: Когда в Atom открыт main.jl
, на верхней панели отображается «main.jl --- ~ / Top»