Julia 语言入门指引


#1

这个帖子里面大家都来贡献一些常见的问题帮助新手快速解决问题吧。

1. 安装

1.1 如何安装 Julia

1.1.1 二进制安装

1.1.2 源码安装

参考 https://github.com/JuliaLang/julia#source-download-and-compilation (新手不推荐,编译大约需要40min,主要是编译 LLVM 比较慢,但可以使用 LLVMBuilder 来避免,请在 Make.user 里添加:

USE_BINARYBUILDER_LLVM=1
BINARYBUILDER_TRIPLET=x86_64-apple-darwin14 

注意上面的 x86_64-apple-darwin14, 请修改成你自己操作系统的 triplet。

1.1.3 Julia有没有类似 anaconda 的全家桶?

有,去 https://juliacomputing.com 注册下载Julia Pro (暂时还未提供1.0版,后续会提供国内下载链接)

1.1.4 我不想在电脑上安装,只想试试看

可以!参见 @vague 写的介绍 JuliaBox:一个对小白友好的在线 Jupyter Notebook 编辑器 :)

1.2 安装包

进入 REPL 之后,输入 ] 切换到 Pkg 管理模式,然后执行 add PackageName 安装即可:

1.2.2 怎么查看都有哪些包?

对于已经注册了的包,可以在 https://pkg.julialang.org/https://juliaobserver.com/ (群里反应这个更全一些)查看,对于没有注册的包,就只能去github上搜索了。

2. 文档

2.1 怎样查找某个函数?

请使用REPL的help模式:在REPL里按 ?键,然后更详细的请参考:

关于几个Julia的新手 Mathematica重度玩家问题

2.2 怎么知道以前旧版本的某个函数被deprecated后,新的函数叫什么?

查看Julia代码仓库的HISTORY.md,用Ctrl+F搜一下就可以看到了,然后一般都有对应的issue,可以点进去详细查看。另外一个简单暴力的方法是,打开 Julia-v0.7 看 depwarns 的建议。

2.3 有没有 1.0 的 cheatsheet?

https://juliadocs.github.io/Julia-Cheat-Sheet/

3. 其它

3.1 如何输入特殊字符

一些特殊字符使用LaTeX语法输入,比如约等于 ,输入方法是在支持Julia语言的编辑器或者REPL里面写 \approx 然后按 tab。有什么符号你可以查一下文档 https://docs.julialang.org/en/latest/manual/unicode-input/ 然后,还可以参考这个帖子 Julia 内置的数学常量与 Unicode 字符输入

3.2 Julia能Web开发吗?

Web相关基础设施:

Framework(类似于Django/Flask):

http://genieframework.com

3.3 如何打包Julia/如何静态编译Julia脚本

可以查看 https://github.com/JuliaLang/PackageCompiler.jl

3.4 怎么做 Benchmark?

可以查看 julia中测试一段代码运行时间用什么命令?

3.5 为什么我的代码会出现 UndefVarError

很可能是变量的作用域问题,请先确保阅读并理解了 http://docs.juliacn.com/latest/manual/variables-and-scoping/#局部作用域-1 中的内容

注意:全局作用域(global scope)会略有不同,这体现为全局下的变量和for循环内部的变量不同

x = 1

for i in 1:10 
    x += 1  #这个 x 非上面的x,因为for循环是一个表达式,内部是局部作用域,而外面的x是一个全局变量
end

这个有时候确实造成了使用不便(但是语义上正确),正在讨论进行一次小的修改(不会导致breaking):https://discourse.julialang.org/t/new-scope-solution/16707/36

注意

  1. 请不要问模棱两可的问题,尽量给出一个可以工作(或者会报错的代码),然后再提问,而不是简单的文字描述。请避免问 XY问题

运行Plots的example源码出错
julia 列联表,卡方检验,是用哪个方法
#7

放一个 Julia 各平台客户端的百度云分流Julia lang Release @百度云
Julia lang > Release 下面,更老的客户端在 Julia lang > Release > Old release

目前有:1.0.0 (最新),0.7 beta2,0.6.4 以及之前所有的老版本,浙大镜像 Release 中的都有。

看文件名就能知道对应的平台

使用浙大镜像 PkgMirrors.jl v1.0.0 - 在 Julia 中使用镜像站 - Julia的使用姿势 / 工程发布 - Julia中文社区


顺带把 github 上的源码也扒了,放在 Julia lang > Source@github
有 release 的 repo 下了最近的几个 release,
Julia 主 repo 用 git clone 下来的文件夹打包了,放在 Julia lang > Source@github > julia

  • [2018-08-13]julia-master@full-git-repo.7zgit clone 得到的文件夹直接 7z 打包,解压后 470M +
  • [2018-08-13]julia-master.bundle.7zgit bundle create julia-master.bundle HEAD master 得到的文件 7z 打包的,解压后 140 M +

#8

http://jupyter.org/try 这里提供了一个Julia 0.6 在线环境,并用了一个Plot图让来访者快速体验执行的步骤与效果。如下图。
感觉速度比juliabox快一点。大家可结合自己的网络情况,选择尝试。


#9

补充一下,还可以用官方的 mybinder.org 去运行别人的 (github) 上的 Jupyter notebooks

例如另一个置顶帖提到的 Julia 入门教程 binderhub


#10

如果使用jupyterlab的话,还可以使用jupyterlab的github扩展,可以直接打开github中的notebook


#11

入门视频教程有:
https://www.bilibili.com/video/av28178443?from=search&seid=6763161009311370417
里面车速较快但是有很多有用的操作
还有MIT的Julia Tutorial(我也是小白,暂时没看完,看见有10节课应该入门知识是比较全的)
https://www.bilibili.com/video/av29615055/?spm_id_from=333.788.videocard.9