运行 Julia 的 .jl 文件

97

我刚开始学习julia,并完成了我的第一个程序。 我在julia-studio中编写了代码,并一直在该程序中进行测试。 它给出了所有正确的输出,但是shell将输出分开,好像它是两个不同的执行。

我想知道这是否是我的编译器有问题,所以我想尝试在julialang.org上找到的默认julia shell中编译它。

然而,我无法理解或弄清楚如何在那里运行它。 我当前的程序从同一目录中的另一个文件中读取输入并输出结果。

有人能解释一下如何运行这个程序吗? 这个http://julia.readthedocs.org/en/latest/manual/getting-started/ 对我来说并没有太多意义。

示例输出:

 julia> program
 #
 #
 #
 #


 julia> 
 #
 #
 #
 #
 #

#代表整数。理想情况下,输出结果不应被"julia>"分隔。

7个回答

139

如果你想从命令行运行julia脚本,那么只需要执行

/path/to/julia script-name.jl

在您选择的shell中操作。

如果您想从Julia REPL运行它,则需要类似于以下方式:

julia> include("path/to/script-name.jl")

至于为什么你的输出会被分成那样,我想我们需要看看你的代码。


2
谢谢,这帮了我很多。它让我意识到我并不是疯了。看起来我下载了 Julia 0.3 的“预发布”版本。我下载了早期版本,并将 julia.bat 用作默认程序。命令提示符正确显示了所有输出。 - user1748681
如何将Julia添加到路径中?我甚至在C盘上找不到安装文件。 - Pragyaditya Das
找到这么简单的答案太难了。 - djangofan
有没有什么技巧可以在后台运行'julia'并保存日志文件?我尝试使用nohup在'shell'上运行.jl脚本,但是生成的文件'nohup.out'是空的。谢谢。 - godines
在Windows中,您只需要将julia.exe路径添加到PATH变量中,然后可以使用以下命令运行脚本:julia script-name.jl - NMech
显示剩余2条评论

11
你可以使用chmod命令更改脚本权限,并在顶部指定julia二进制文件的路径。
考虑以下简单的脚本hello.jl。
#!/usr/bin/julia
println("Hello world")

使用以下命令更改脚本的权限:

chmod a+x hello.jl

使用./hello.jl运行脚本


0.5.0版本似乎将它存储在其他地方:'bash:./hello.jl:/usr/bin/julia:bad interpreter:找不到文件或目录',有没有找到它的任何想法? - nightcod3r
在OS X上,如果您使用内置安装程序,则路径为/Applications/Julia-0.5.app/Contents/Resources/julia/bin/julia。最好的方法是创建一个软链接到二进制文件。 - Sebastian Good
8
最好使用 #!/usr/bin/env julia,以避免与具体的Julia路径相关的问题。 - Dima Mironov
julia1.1在centos7上。我按照建议尝试了一下。路径中有条目/opt/julia/julia-1.1.0/bin/julia。在终端调用Julia会出现Julia提示符。Test.jl内容:line1:#! /opt/julia/julia-1.1.0/bin/julia line2:println ("terminal invoke test")。更改权限chmod +x /root/Test.jl #julia /root/Test.jl打印该行。但是,#. /root/Test.jl被解释为shell脚本。请指导我解决这个问题! - AVA
删除命令开头的点(.)可以解决将其视为shell脚本的问题。 - AVA

4

步骤 1:打开终端

步骤 2:进入你的 Julia 文件所在位置

步骤 3:执行 Julia 文件

/path/to/folder script-julia.jl

如果有帮到你,请点击向上箭头。谢谢。


3

虽然并不是对问题的回答,但如果user1748681还没有尝试过,这仍然是一个有用的建议。 - beOn

1

您正在使用REPL。这样很好,但我所做的是到命令行并像这样导航到文件夹(这是特别为我设计的,您需要找到您的文件的路径目录):

cd\users\yourname\desktop\code\julia

并且运行程序:

julia filename.jl

这很简单(我猜)。

顺便提一下,我使用的是Windows操作系统,如果你使用的是Linux或MacOS可能无法正常工作。 - FireFlower

0
如果你想要将一个 Julia 文件导入到另一个 Julia 文件中,你应该使用以下命令:
include("path-to-your-file.jl")

0

你也可以使用带有Julia插件的IntelliJ IDEA...这真是个惊喜


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接