欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

【Julia】Linux下配置Julia交互开发环境(Julia notebook)

程序员文章站 2024-03-18 17:10:52
...

0x00 前言

近期Julia这门语言突然被拉入了大众视野,我也是被一句 “Walk as Python,Run as C” 深深的吸引住了,
如果它没有在吹牛,那么这门语言说不定确实是我所想要的,那么,学学看吧?

本篇文章主要用于介绍如何搭建便于学习与测试的REPL环境,先在Linux上试试水,
毕竟一旦Jupyter Notebook搭建起来之后,网页版的交互式环境就已经可以不受操作系统限制了。

Julia?
+ 要像C语言一般快速而有拥有如同Ruby的动态性;
+ 要具有Lisp般真正的同像性(Homoiconicity)
+ 而又有Matlab般熟悉的数学记号;
+ 要像Python般通用、
+ 像R般在统计分析上得心应手、
+ 像Perl般自然地处理字符串、
+ 像Matlab般具有强大的线性代数运算能力、
+ 像shell般胶水语言的能力,易于学习而又不让真正的黑客感到无聊;
+ 还有,它应该是交互式的,同时又是编译型的……

【Julia】Linux下配置Julia交互开发环境(Julia notebook)

emmmm,那还说啥呢,学学看呗(不就是配个环境么,配起来!)

0x01 相关资料

0x02 配置过程

我的环境
Anaconda2下直接new了一个virtual env,叫做cd

  • Linux RedHat
  • Python 3.6
  • pip 18.0
  • jupyter notebook

Jupyter Notebook
一种可交互界面化变成的解决方案,Python和Julia的学习中比较推荐使用

  • 预先准备 notebook
(cd) [chend@c9 ~]$ pip install notebook
  • 如需使用 jupyterlab (功能更多,界面较好)
(cd) [chend@c9 ~]$ pip install jupyterlab
(cd) [chend@c9 ~]$ jupyter serverextension enable --py jupyterlab 

下载

  • 可以自己下载自己解压,见 0x01 相关资料 中的官方主页
wget https://julialang-s3.julialang.org/bin/linux/x64/1.0/julia-1.0.0-linux-x86_64.tar.gz
  • 也可以直接去官方的 Github 上 git clone
git clone git://github.com/JuliaLang/julia.git
  • git clone 不下来的话需要绕过的,可以全局替换一下变成ipv6通道
git config --global url."https://".insteadOf git://

获取 cmake

编译需要 cmake,如果没有或者版本不对的话,可以进到刚才下载的目录里面 cd julia
使用自带的 cmake 下载脚本:

(cd) [chend@c9 julia]$ contrib/download_cmake.sh
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   479  100   479    0     0    227      0  0:00:02  0:00:02 --:--:--   429
  1 29.2M    1  492k    0     0   2443      0  3:29:18  0:03:26  3:25:52     0
curl: (28) Operation too slow. Less than 1 bytes/sec transferred the last 15 seconds
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 29.2M  100 29.2M    0     0   421k      0  0:01:11  0:01:11 --:--:--  450k

cmake-3.7.1-Linux-x86_64.tar.gz: OK

安装

我这里想要安装刚 Release 的较为稳定的 v1.0.0版本,所以我先 git co到这个分支

git checkout v1.0.0

然后直接 make 就可以编译了,但考虑到东西较多速度不够快,也可以采取多线程编译 make -j48

(cd) [aaa@qq.com julia]$ make
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   465  100   465    0     0    180      0  0:00:02  0:00:02 --:--:--   476
  1 24.3M    1  288k    0     0   7013      0  1:00:45  0:00:42  1:00:03 10783

0x03 基本使用

在当前目录下直接 ./julia 就可以调出类似 IPython 的交互式界面了

(cd) [aaa@qq.com julia]$ ./julia
               _
   _       _ _(_)_     |  Documentation: https://docs.julialang.org
  (_)     | (_) (_)    |
   _ _   _| |_  __ _   |  Type "?" for help, "]?" for Pkg help.
  | | | | | | |/ _` |  |
  | | |_| | | | (_| |  |  Version 1.0.0 (2018-08-08)
 _/ |\__'_|_|_|\__'_|  |  
|__/                   |

julia> 

如需在任何位置都可以直接调用 julia 命令,可以直接在 ~/.bashrc 中加入这行

echo "alias julia='/path/to/install/folder/bin/julia'" >> ~/.bashrc && source ~/.bashrc

例如我直接获取目录位置 pwd/home/chend/julia/,那么我就输入下面这行即可。

echo "alias julia='/home/chend/julia/julia'" >> ~/.bashrc && source ~/.bashrc

0x04 配置 Julia Notebook

配置 Jupyter 相关博客:
https://www.analyticsvidhya.com/blog/2017/10/comprehensive-tutorial-learn-data-science-julia-from-scratch/

我的调试过程:

julia> using IJulia 
ERROR: ArgumentError: Package IJulia not found in current path:
- Run `Pkg.add("IJulia")` to install the IJulia package.

Stacktrace:
 [1] require(::Module, ::Symbol) at ./loading.jl:817

julia> Pkg.add("IJulia")
ERROR: UndefVarError: Pkg not defined
Stacktrace:
 [1] top-level scope at none:0

# Pkg not defined 错误处理
julia> using Pkg

# 再次尝试调用 IJulia
julia> using IJulia
[ Info: Precompiling IJulia [7073ff75-c697-5162-941a-fcdaad2a7d2a]
ERROR: LoadError: Blosc not installed properly, run Pkg.build("ZMQ"), restart Julia and try again

# 错误处理
julia> Pkg.build("ZMQ")

# 再次尝试调用 IJulia
julia> using IJulia
[ Info: Precompiling IJulia [7073ff75-c697-5162-941a-fcdaad2a7d2a]
ERROR: LoadError: MbedTLS not installed properly, run Pkg.build("MbedTLS"), restart Julia and try again

# 错误处理
julia> Pkg.build("MbedTLS")

# 再次尝试调用 Ijulia
julia> using IJulia
[ Info: Precompiling IJulia [7073ff75-c697-5162-941a-fcdaad2a7d2a]
julia> notebook()

# 完成,直接开个浏览器看看 localhost:8888,如果自己设定过默认端口则改为你自己的端口。

【Julia】Linux下配置Julia交互开发环境(Julia notebook)