通常在IDE中打开和运行文件时,当前路径将是文件的驻留路径,即文件所在的位置。出于某种原因,经验告诉JUNO的情况不是Julia语言(编辑:在Windows中)。
结果是,除非他们手动设置路径,否则会因文件不合格而收到多个错误。
如何解决这个问题?
为什么?
答案 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档案:))