本文主要介绍如何使用Anaconda来构建Julia1.0的开发环境
Anaconda简介
Anaconda是Python的一个开源发行版本,主要面向科学计算。Anaconda包括Conda、Python以及一大堆安装好的工具包,比如:Python,numpy、pandas,等180多个科学包及其依赖项。此外Anaconda还自带Spyder IDE 和Jupyter Notebook。
因其包含了大量的科学包,Anaconda 的下载文件比较大(约 531 MB),如果只需要某些包,或者需要节省带宽或存储空间,也可以使用Miniconda这个较小的发行版(仅包含conda和 Python)。
Miniconda包括Conda、Python
Conda
Conda是一个开源的包、环境管理器,可以用于在同一个机器上安装不同版本的软件包及其依赖,并能够在不同的环境之间切换。
常见conda命令有
conda clean
conda config
conda create
conda help
conda info
conda install
conda list #罗列出所有已安装的科学包及其依赖项
conda package
conda remove
conda search
conda uninstall
conda update
conda upgrade
安装步骤
下载
从官网下载:Download Anaconda Now!不过官网速度比较慢,不太推荐。
国内推荐从清华镜像下载:Tsinghua Open Source Mirror 网址
安装Anaconda
安装很容易,下载到本地后之后直接运行安装,anaconda默认安装到当前用户下 ~/anaconda(没有必要一定安装到root用户下)
es@es-PC:~/Downloads$ /bin/sh Anaconda3-5.2.0-Linux-x86_64.sh
然后按照提示安装即可。建议把Anaconda路径加入PATH,以便直接运行conda命令。
查看Python 和 jupyter 版本号
es@es-PC:~/Downloads$ which python
/home/es/anaconda3/bin/python
es@es-PC:~/Downloads$ python --version
Python 3.6.5 :: Anaconda, Inc.
es@es-PC:~/Downloads$ which jupyter
/home/es/anaconda3/bin/jupyter
es@es-PC:~/Downloads$ jupyter --version
4.4.0
运行Jupyter notebook
Anaconda自带Jupyter notebook,可以执行如下命令启动
es@es-PC:~/Downloads$ jupyter notebook
[I 22:54:31.132 NotebookApp] JupyterLab beta preview extension loaded from /home/es/anaconda3/lib/python3.6/site-packages/jupyterlab
[I 22:54:31.132 NotebookApp] JupyterLab application directory is /home/es/anaconda3/share/jupyter/lab
[I 22:54:31.172 NotebookApp] Serving notebooks from local directory: /home/es/Downloads
[I 22:54:31.172 NotebookApp] 0 active kernels
[I 22:54:31.172 NotebookApp] The Jupyter Notebook is running at:
[I 22:54:31.173 NotebookApp] http://localhost:8888/?token=f37dd73ce8ac87732539936f9827f51daf4e5c5ac79e2f9f
[I 22:54:31.173 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
[C 22:54:31.178 NotebookApp]
Copy/paste this URL into your browser when you connect for the first time,
to login with a token:
http://localhost:8888/?token=f37dd73ce8ac87732539936f9827f51daf4e5c5ac79e2f9f&token=f37dd73ce8ac87732539936f9827f51daf4e5c5ac79e2f9f
main.go:99: openScheme: "http", "http://localhost:8888/tree?token=10480e42c03976bf92bcc364da468bae9ae0b340c09112bf"
main.go:108: desktop file: /usr/share/applications/google-chrome.desktop
[I 22:54:31.734 NotebookApp] Accepting one-time-token-authenticated connection from 127.0.0.1
如果浏览器没有自动打开,就访问网址 http://localhost:8888/ 可以看到Jupyter notebook 的界面
启动julia并安装IJulia包
IJulia 是Julia语言的后端内核,和IPython作用一样。IJulia内核支持用户在前端使用julia语言;IPython内核支持用户在前端使用Python语言。 Jupyter的notebook非常强大,它提供了一个集代码编辑,Markdown文本,数学公式,图形显示于一体的互动环境,极大的方便了开发者使用Julia或者Python进行各种问题的研究,和原型开发。
注意:作者的Julia位于 ~/Code/julia/目录下,是本地编译出来的。关于如何本地编译Julia 1.0请参看另外一篇文章。
步骤如下:
1. 启动Julia REPL
2. 加入IJulia package
3. using IJulia
4. 调用 notebook 方法
es@es-PC:~/Downloads$ cd ~/Code/julia/
es@es-PC:~/Code/julia$ ./julia
_
_ _ _(_)_ | Documentation: https://docs.julialang.org
(_) | (_) (_) |
_ _ _| |_ __ _ | Type "?" for help, "]?" for Pkg help.
| | | | | | |/ _` | |
| | |_| | | | (_| | | Version 1.0.0 (2018-08-08)
_/ |\__'_|_|_|\__'_| |
|__/ |
julia>【 注,这里按 ] 可以进入 pkg> 模式 】
(v1.0) pkg> add IJulia
Updating registry at `~/.julia/registries/General`
Updating git-repo `https://github.com/JuliaRegistries/General.git`
Resolving package versions...
Installed ZMQ ───────────── v1.0.0
Installed BinaryProvider ── v0.4.2
Installed IJulia ────────── v1.11.1
Installed MbedTLS ───────── v0.6.0
Installed SoftGlobalScope ─ v1.0.5
Updating `~/.julia/environments/v1.0/Project.toml`
[7073ff75] + IJulia v1.11.1
Updating `~/.julia/environments/v1.0/Manifest.toml`
[b99e7846] + BinaryProvider v0.4.2
[7073ff75] + IJulia v1.11.1
[739be429] + MbedTLS v0.6.0
[b85f4697] + SoftGlobalScope v1.0.5
[c2297ded] + ZMQ v1.0.0
[7b1f6079] + FileWatching
Building ZMQ ────→ `~/.julia/packages/ZMQ/ABGOx/deps/build.log`
Building MbedTLS → `~/.julia/packages/MbedTLS/Qo8TN/deps/build.log`
Building IJulia ─→ `~/.julia/packages/IJulia/k5o7j/deps/build.log`
(v1.0) pkg> ^C
julia> using IJulia
[ Info: Precompiling IJulia [7073ff75-c697-5162-941a-fcdaad2a7d2a]
julia> notebook
notebook (generic function with 1 method)
julia> notebook()
Julia/Jupyter的开发环境如下