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

use*_*004 2 julia juno-ide

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

结果是,除非他们手动设置路径,否则由于文件不合理而收到多个错误.

怎么解决这个问题?

这是为什么?

one*_*ute 5

Julia和Juno在工作目录方面的工作方式相同.它是在你启动Julia时设置的,并且在你调用之前保持不变cd- 它根本不是由运行文件决定的.

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

julia script.jl
Run Code Online (Sandbox Code Playgroud)

将在script.jl文件夹中工作

julia dir/script.jl
Run Code Online (Sandbox Code Playgroud)

将在上面的文件夹中工作.它只是你从Julia那里启动的文件夹,而且脚本本身的位置也没有区别.

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

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

readcsv(joinpath(dirname(@__FILE__), "data.csv"))
Run Code Online (Sandbox Code Playgroud)

这是在Julia中加载本地文件的最惯用的方法,但是如果您真的开始使用,pwd()那么您也可以使用以开头的命令集轻松更改工作目录Julia Client: Work in ....