• Rust交互式编程环境搭建


    Rust交互式编程环境搭建

    数据科学和机器学习社区似乎压倒性地偏爱Jupyter Notebook。这主要是因为在数据科学领域使用Jupyter Notebook有三大优势:

    1. Jupyter Notebook将IPython的交互式特点发挥到了极致

      熟悉机器学习和数据分析的朋友应该知道:分析和建模是非常碎片化的工作,而每一个片段又有着非常强的独立性,甚至可以说除了数据本身之外,每一块的代码之间并没有很强的关联性。数据分析和建模的过程往往是一个不断实验的过程。我们需要一次又一次地改变数据预处理方式、尝试不同的特征工程方案、不厌其烦地调整模型参数。每一步工作都需要反复实验、反复修改,而下一板块需要用到的只不过是上一板块输出的数据。通过Jupyter Notebook,我们可以以最快的速度得知自己做出的调整是好是坏,并尽快进入到下一次的实验当中。

    2. Jupyter Notebook更利于汇报和教学

      因为Jupyter Notebook本身的模块化和内容的清晰化,使其天生具备如PPT一般的展现工作成果的功能。并且Jupyter Notebook中可以将输出结果嵌套在Notebook中,并且支持Markdown写作,这就让我们可以在Jupyter Notebook中输入任何需要展现的内容,并且这些内容都会以一种有组织、有层次、逻辑严密的形式展示出来。

    3. 内置大量魔术命令

      Jupyter Notebook 内置大量的魔术命令(比如%Matplotlib inline,%timeit等),可以方便的输出我们关心的指标,帮我们更快地进行分析。

    上述三点让Jupyter Notebook成为数据科学领域的最佳工具。

    Jupyter Notebook的默认内核是Python,也可以替换成R,JavaScript 等动态语言。编译型语言,例如C++、Java,需要额外的扩展工具来支持。Rust作为静态编译型语言,自然也需要外部工具扩展来实现交互式编程,其中最成熟的当属Google开源的EvCxR(Evaluation Context for Rust)。本文将带领大家一步一步搭建起Rust交互式编程环境。

    在这里插入图片描述

    1. 安装Miniconda

    有很多方法可以安装并建立交互式编程环境,这里我推荐用Miniconda

    Miniconda是一款小巧的python环境管理工具,安装包大约只有50M多点,其安装程序中包含conda软件包管理器和Python。一旦安装了Miniconda,就可以使用conda命令安装任何其他软件工具包并创建环境等。

    你也可以不装Miniconda,直接安装Jupyter Lab。但我建议用Miniconda,因为除了交互式编程环境,我们还需要Miniconda来管理包和虚拟环境。

    Miniconda的官网上有详细的安装教程。如果你像我一样使用Linux,你可以在控制台运行如下命令:

    wget https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh
    
    chmod +x Miniconda3-latest-Linux-x86_64.sh 
    
    ./Miniconda3-latest-Linux-x86_64.sh
    
    • 1
    • 2
    • 3
    • 4
    • 5

    上面的命令将下载Miniconda的安装脚本并启动交互式安装。按照提示一步步完成安装,当你看到

    Thank you for installing Miniconda3!

    说明安装成功。

    2. 创建环境

    Miniconda安装好后,我们需要创建并配置环境。如果在安装时已经将Miniconda加入到环境变量PATH中,那么你可以直接在控制台、Poweshell或CMD中运行conda命令。

    我们可以通过下面的命令创建并配置环境:

    conda create -n rustenv python=3
    
    • 1

    其中rustenv是环境名,你可以替换成任意你喜欢的名字。

    上面的命令会创建一个名叫rustenv的conda环境并下载最新的Python 3包。你将看到一个即将下载安装的包的列表,并询问你是否继续。输入y进行安装。等待安装成功后,你将看到如下信息:

    Preparing transaction: done
    Verifying transaction: done
    Executing transaction: done
    #
    # To activate this environment, use
    #
    # $ conda activate rustenv
    #
    # To deactivate an active environment, use
    #
    # $ conda deactivate
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    消息提示输入如下命令激活并进入环境:

    conda activate rustenv
    
    • 1

    输入执行后你将看到控制台提示符最前端会出现括号括起来的环境名。

    (rustenv) jarod_laptop:~ jarod$
    
    • 1

    命令行提示符前的环境名有助于你识别当前在那个环境下。每次电脑重启,都需要执行conda activate rustenv进入rustenv环境。

    3. 安装Jupyter Lab

    环境安装好后,你可以输入jupyter lab启动Jupyter Lab实例。但是,如果你是新建的环境,执行jupyter lab会看到一个报错,

    (rustenv) jarod_laptop:~ jarod$ jupyter lab
    -bash: jupyter: command not found
    
    • 1
    • 2

    这是因为没有安装Jupyter Lab造成的。接下来我们通过如下命令安装Jupyter Lab:

    conda install -c conda-forge jupyterlab
    
    • 1

    4. 安装Jupyter Lab扩展

    Jupyter Lab有很多扩展插件可以实现丰富的扩展功能,其中一个非常有用的插件是plotly。它可以让Jupyter渲染Plotly可视化图表。在conda环境下执行下面的命令即可安装:

    jupyter labextension install jupyterlab-plotly
    
    • 1

    这个安装可能需要花点时间。安装成功后控制台会再次出现输入提示符。

    Jupyter Lab还支持主题换肤,如果你喜欢深色主题,可以试一下下面这个主题:

    jupyter labextension install @shahinrostami/theme-purple-please
    
    • 1

    在这里插入图片描述

    图1. Jupyter Lab深色主题

    5. 安装Rust

    有很多中方法可以安装Rust,大家可以参考Rust官方教程。推荐用rustup安装。我用的操作系统是Linux,可以在控制台通过如下命令安装:

    curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
    
    • 1

    本专栏的示例代码兼容多个Rust版本,由于我本机的Rust版本为1.65.0,我可以保证所有代码和包都可以在Rust 1.65.0下正常运行。你可以通过下面命令将Rust版本锁定为1.65.0

    rustup default 1.65.0
    
    • 1

    运行上面代码可能会提示你将Cargo加入环境变量PATH,

    source $HOME/.cargo/env
    
    • 1

    其他控制台,如zsh,输入上面命令可能无效,你可以用跟基本的命令添加环境变量

    export PATH="$HOME/.cargo/bin:$PATH"
    
    • 1

    添加完后重启控制台,确保环境变量写入。你可以输入

    cargo version
    
    • 1

    确认是否安装成功。如果控制台上输出cargo版本(cargo 1.65.0),说明安装好了。

    6. 安装 EvCxR

    接下来我们来安装EvCxR Jupyter内核。EvCxR可以让Rust运行在Jupyter Notebook上。你可以参考官网的方法来完成EvCxR的安装。我这里推荐的安装方法是:

    cargo install evcxr_jupyter
    evcxr_jupyter --install
    
    • 1
    • 2

    7. 小试牛刀

    安装完EvCxR后,我们就可以试一下整个环境能够跑起来。打开控制台,进入上面我们创建的conda环境,然后运行如下命令:

    jupyter lab
    
    • 1

    这条命令将启动Jupyter Lab服务,并打开浏览器显示Jupyter Lab的前端界面。

    在这里插入图片描述

    图2. Jupyter Lab前端界面

    如果在界面上Notebook和Console中能看到Rust图标,这就说明我们环境搭建好了。

    我们可以新建一个Rust Notebook。点击Notebook栏的Rust图标就可以创建一个以Rust为内核的notebook。如果环境搭建没问题,那么会在当前目录下新建一个名为Untitled.ipynb 的空白notebook。我们可以试着在上面写一些Rust代码,按照管理,我们来写个“Hello World!”:

    println!("Hello World!");
    
    • 1

    如果环境配置一切正常,那么运行上面代码你将看到输出Hello World!

    总结

    本章我们已经下载、安装、配置和测试了我们的Rust交互式编程环境。我们喜爱的Jupyter环境现在可以运行Rust代码了!随着Rust的日渐壮大,很多原本Python上好用的包在Rust都有相对应的实现。后面我将陆续给大家介绍Python机器学习常用包的Rust替代,让大家逐渐用Rust替代Python完成机器学习任务。

  • 相关阅读:
    十天学前端之JS篇(四)
    CommonAPI Core Runtime 交叉编译
    【电子通识】USB Logo的标识含义
    Django+VUE使用websocket
    【首测】两款OpenCV 人工智能深度相机OAK PoE
    物联网行业知识概览(一)
    Python编程从入门到实践 第十一章:测试代码 练习答案记录
    图像旋转、平移、缩放变换矩阵计算及案例
    〖全域运营实战白宝书 - 高转化文案速成篇①〗- 文案速成导学与常见文案类型
    软考入门级了解(时间,费用,流程),无广告成分
  • 原文地址:https://blog.csdn.net/jarodyv/article/details/127783416