我在Juno IDE中使用了Julia 1.0.1。
我写了一个模块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
如果我在REPL中运行pwd()
,它将返回".../Top"
。因此,似乎正在发生的事情是主脚本中的工作目录是文件本身(或Juno中的“项目”的位置...有点困惑)的位置,而函数的工作目录是文件的位置它导入的模块中的调用是REPL的工作目录。这是正确的还是我错过了什么?解决此问题的标准方法是什么-将工作目录添加为函数的参数?
编辑1:如果添加
a = pwd()
println("$a")
返回脚本main.jl
,它返回
.../Top
编辑2:在Atom中打开main.jl
时,顶部栏显示“ main.jl ---〜/ Top”
答案 0 :(得分:0)
我注意到Atom / Juno IDE有时会对工作目录产生一些怪异的影响。我认为这与项目管理有关。您是否尝试过关闭Juno,然后通过打开main.jl
文件夹中的(...)/top/Julia
重新启动它?代码对我来说似乎没问题。