在JUNO评估Julia代码时工作目录的价值

时间:2016-07-22 01:16:00

标签: julia juno-ide

通常在IDE中打开和运行文件时,当前路径将是文件的驻留路径,即文件所在的位置。出于某种原因,经验告诉JUNO的情况不是Julia语言(编辑:在Windows中)。

结果是,除非他们手动设置路径,否则会因文件不合格而收到多个错误。

如何解决这个问题?

为什么?

2 个答案:

答案 0 :(得分:5)

Julia和Juno在工作目录方面的工作方式相同。当你启动Julia并保持不变直到你拨打cd时它就会被设置 - 它根本不是由正在运行的文件决定的。

如何选择 呢? julia命令从终端继承它,因此运行:

julia script.jl

可以在script.jl的文件夹中使用

julia dir/script.jl

将在该文件夹上方的文件夹中工作。它只是你推出Julia的文件夹,而且脚本本身的位置也没有区别。

当Juno启动Julia时,它必须选择要启动它的文件夹,并使用你的"项目文件夹" - 即您当前打开的文件夹。很简单,但如果您依赖pwd()并且您的脚本位于项目文件夹的子目录中,则可能会出现问题。

对此的简单解决方案是避免完全依赖pwd()并使用@__FILE__代替,始终引用当前正在执行的文件。例如,

readcsv(joinpath(dirname(@__FILE__), "data.csv"))

这是在Julia中加载本地文件的最惯用的方式,但是如果你真的开始使用pwd(),那么你也可以使用以{{{}开头的命令集轻松更改工作目录。 1}}。

答案 1 :(得分:1)

不确定这是否是您的第一个问题,但您可以使用julia终端内的pwd()功能来检查您当前的目录。

至于在正确的目录中启动julia,你有几个选择。您可以更改IDE调用的julia可执行文件(或者在.bashrc文件中为其创建别名),以便像这样调用julia:

julia -P "cd(\"/path/to/my/desired/directory\")"

其中-P告诉julia执行命令但继续以解释器模式

或者,您可以编辑.juliarc.jl文件以在其中添加自己的自定义cd(“/ my / directory”)命令。

至于具体的JUNO,我不知道它可能有什么特殊的属性可以解决这个问题,但如果你想要的是双击.jl文件并用juno打开它在正确的目录中,您始终可以将.jl扩展名与当前创建julia别名的小型bash脚本相关联,或者覆盖您的.juliarc.jl文件或其他内容,然后调用Juno档案:))