1. 安装
1.1 如何安装 Julia
1.1.1 二进制安装
- 下载 Julia - 中文社区下载指引页
- Julia Downloads - Julia-lang 官方下载页面(英文)
- jill.py – 全平台一键安装脚本
1.1.2 源码安装
参考 GitHub - JuliaLang/julia: The Julia Programming Language (新手不推荐,编译大约需要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 的全家桶?
暂无。原有的 Julia Pro 改为云 IDE https://juliahub.com/lp/pricing
1.1.4 我不想在电脑上安装,只想试试看
可以!参见 @vague 写的介绍 JuliaBox:一个对小白友好的在线 Jupyter Notebook 编辑器 :)
1.2 安装包
进入 REPL 之后,输入 ]
切换到 Pkg 管理模式,然后执行 add PackageName
安装即可:
1.2.2 怎么查看都有哪些包?
对于已经注册了的包,可以在 https://juliaobserver.com/ (群里反应这个更全一些)查看,对于没有注册的包,就只能去github上搜索了。
1.2.3 我被墙了怎么办?
2. 文档
2.1 怎样查找某个函数?
请使用REPL的help模式:在REPL里按 ?键,然后更详细的请参考:
关于几个Julia的新手 Mathematica重度玩家问题 - #2,来自 Jun
2.2 怎么知道以前旧版本的某个函数被deprecated后,新的函数叫什么?
查看Julia代码仓库的 HISTORY.md,用Ctrl+F搜一下就可以看到了,然后一般都有对应的issue,可以点进去详细查看。另外一个简单暴力的方法是,打开 Julia-v0.7 看 depwarns 的建议。
2.3 有没有 1.0 的 cheatsheet?
3. 其它
3.1 如何输入特殊字符
一些特殊字符使用LaTeX语法输入,比如约等于 ≈
,输入方法是在支持Julia语言的编辑器或者REPL里面写 \approx
然后按 tab。有什么符号你可以查一下文档 Unicode 输入表 · Julia中文文档 然后,还可以参考这个帖子 Julia 内置的数学常量与 Unicode 字符输入
3.2 Julia能Web开发吗?
Web相关基础设施:
Framework(类似于Django/Flask):
3.3 如何打包Julia/如何静态编译Julia脚本
可以查看 GitHub - JuliaLang/PackageCompiler.jl: Compile your Julia Package
3.4 怎么做 Benchmark?
可以查看 julia中测试一段代码运行时间用什么命令? - #3,来自 vtchen
3.5 为什么我的代码会出现 UndefVarError
?
很可能是变量的作用域问题,请先确保阅读并理解了 变量作用域 · Julia中文文档 中的内容
注意:全局作用域(global scope)会略有不同,这体现为全局下的变量和for循环内部的变量不同
x = 1
for i in 1:10
x += 1 #这个 x 非上面的x,因为for循环是一个表达式,内部是局部作用域,而外面的x是一个全局变量
end
这个有时候确实造成了使用不便(但是语义上正确),正在讨论进行一次小的修改(不会导致breaking):New scope solution - #36 by jballanc - Internals & Design - Julia Programming Language
3.6 如何注册Package?
3.7 有没有中文的Julia视频教程?
4. Julia快吗?为什么我要用Julia?
@Roger 在知乎和掘金上写过一些文章:
也有机器之心后来的一篇报道可以参考:
https://juejin.im/post/5c7353d151882562e87653d8
5. 我的代码为什么比我原来的Python/MATLAB/etc. 还慢?
请仔细阅读文档中 性能建议(performance tips) 的部分。确保你没有出现其中列举的问题后如果性能依然不好,请在综合讨论区的性能优化分类下发帖提问。并且使用BenchmarkTools对程序进行性能测试,贴上你的测试结果。
注意
- 请不要问模棱两可的问题,尽量给出一个可以工作(或者会报错的代码),然后再提问,而不是简单的文字描述。请避免问 X-Y 问题(中文版);The XY Problem (英文版)