题外话:标题直接用了微软开发博客的标题。近期需要调研一个项目的可行性,github上有个相似度很高的方案,但项目是写在jupyter里的C#代码。为了能跑起来看看效果,不得已搭了套相关的环境。本来以为是老外太闲了,既然是C#代码,直接用vs写不行么,非要把代码写到jupyter notebook里,给人造成很多麻烦事。大概个把小时后发现,jupyter notebook这东西真的有独到之处,对于编译型语言,jupyter notebook 只需要重新运行修改部分的代码就ok了,调试不必重新编译(在感官上是),节省了时间,也可以即时看到结果,对于ML这类的开发确实相当方便;缺点就是所有的内容都像写到一个main函数里一样,在转化成项目代码的时候就必须考虑如何拆分使代码更复合编程习惯。

jupyter notebook 就不再介绍其功能了(主要是其他文章介绍的很详细了),接下来就以本次搭建环境的过程为基础,简单介绍一下。后学末进,不足之处,还请斧正。

正文:

jupyter notebook是一种 Web 应用,特别适合做数据处理,其用途可以包括数据清理和探索、可视化、机器学习和大数据分析。工作方式及原理简略如下图,以web应用的方式,通过请求将输入的代码在内核中计算,即时返回结果并保存到文件中。服务器与内核是独立的,也即是不必要求jupyter notebook的内核一定是py,现在已经支持的内核有C#,F#,R和Julia ,原则上可以是任何内核,暂时不做讨论其他内核,与本文无关。

安装jupyter notebook:

1.据说Anaconda的发行版上已经附带了jupyter notebook,由于本人使用的是miniconda,需要自己安装。强烈建议安装到一个新的虚拟环境下,尽量不要在conda的base环境下,避免包管理上的不便。新建虚拟环境就不展开了,我是直接在base环境上安装的,一下新增了近30个包,所以才建议使用新虚拟环境。

打开cmd命令提示框:

1. conda activate     ---激活conda的base环境

2. pip install jypyter notebook ---安装jypyter notebook

3. jupyter notebook --generate-config   --- 展示配置文件文件   根据路径找到自己配置文件,记事本打开,全文检索“c.NotebookApp.notebook_dir”,然后去掉注释标记,自己选择一个文件保存的路径,记得写绝对路径,避免未知错误。保存配置后退出

4.jupyter notebook  ---启动jupyter notebook,端口默认8888,也可以自己指定端口,如    jupyter notebook --port 8889

以上命令执行完毕,没有异常的话,你的浏览器会直接打开一个新页面,使用你默认或指定的端口。不要关cmd命令提示框啊,关了就相当于关闭了jupyter notebook服务。此时的cmd上也会显示jupyter notebook的运行地址,注意是有token的那种路径。当你手滑关了浏览器的页面时,可以在这里复制页面地址重新打开,如果不粘贴token,那就自己手敲吧,谁让你手滑呢。

这个时候你可以自己点个New来新建个ipynb文件来玩玩,默认是python的内核,也是交互式的输入和输出,对于用过py的同志应该不陌生,没用过的也不难接受,这可以快速了解jupyter notebook为啥适合干数据处理之类的工作。

jupyter notebook的安装使用介绍告一段落了,其他的功能,本人也是两天前刚接触这个工具,无法给出更多内容供参考。

接下来是重头戏,给jupyter安装net内核。

微软的官方教程,请看参考资料第一条。请注意这个参考是有问题的,起码我的环境里问题很大。不过可以学学dotnet的命令行如下。

不想费事的直接看参考资料4,这才是正确的安装步骤。

      不想费事的直接看参考资料4,这才是正确的安装步骤。

      不想费事的直接看参考资料4,这才是正确的安装步骤。重要的事情说三遍!!!

以下内容为给jupyter 安装net内核的较早的方式,以及出现异常后的解决方案。

1.dotnet tool install -g dotnet-try   ---安装 dotnet-try  ,卸载命令  dotnet tool uninstall -g dotnet-try

2.dotnet tool list -g ---查看当前的工具列表,这条命令可以学习

3.dotnet try jupyter install ---用dotnet-try,去安装jupyter 。

官方的教程是123顺次使用。不死心的同志可以试试,没准你的环境可以把C# F#内核安装后成功运行呢。

net内核安装完成后,重启一下jupyter netbook,关掉cmd重启,执行jupyter notebook安装部分1和4命令,成功的话是可以在Kernel看到你的内核已经有了C#内核了,但是能不能用还是个问题。

能正常使用的同志,可以就此结束本文了。不能正常使用的,下面的内容或许可以参考一下。不能使用时,引入包的时候会提示异常:No design time or full build available。

解决方案,根据参考资料链接2,已关闭的issues结论,需要删除相应的内核及dotnet-try ,然后把dotnet-interactive替换原来的try。

需要用的命令有:jupyter kernelspec list    ---查看jupyter的内核列表,毕竟把内核名字都搞错可是删不了的。

jupyter kernelspec uninstall .net-fsharp  ---删除F#

jupyter kernelspec uninstall .net-csharp  ---删除C#

dotnet tool uninstall -g dotnet-try   ---删除try

接下来安装 dotnet-interactive,你以为运行 dotnet tool install-g dotnet-interactive 就结束了么,那可真是太天真了,直接运行的结果会告诉你,找不到包。

然后参考资料3会告诉你,这个包呢,需要加资源,而且名字也不是dotnet-interactive,是不是很崩溃啊。淡定,搞过py的人都知道包有别名这种坑人现象是大概率事件。

命令如下:

 dotnet tool install -g --add-source "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools/nuget/v3/index.json" Microsoft.dotnet-interactive
这个时候你的内核才算安装成功,但是到底成功没有呢,试一下吧,还有问题的话,我也无能为力了。                

参考资料:

https://devblogs.microsoft.com/cesardelatorre/using-ml-net-in-jupyter-notebooks/

https://github.com/dotnet/interactive/issues/545

https://github.com/dotnet/interactive/blob/main/docs/NotebooksLocalExperience.md

https://devblogs.microsoft.com/dotnet/net-interactive-is-here-net-notebooks-preview-2/

Using ML.NET in Jupyter notebooks 在jupyter notebook中使用ML.NET ——No design time or full build available的更多相关文章

  1. 开始Jupyter Notebooks

    开始Jupyter Notebooks 安装Anaconda 因为不能有空格,所以没有选C:\Program Files 认识Jupyter Notebooks 修改 jupyter notebook ...

  2. jupyter notebooks 中键盘快捷键

    键盘快捷键——节省时间且更有生产力! 快捷方式是 Jupyter Notebooks 最大的优势之一.当你想运行任意代码块时,只需要按 Ctrl+Enter 就行了.Jupyter Notebooks ...

  3. Jupyter Notebooks 是数据科学/机器学习社区内一款非常流行的工具

    Jupyter Notebooks 是数据科学/机器学习社区内一款非常流行的工具.Jupyter Notebooks 允许数据科学家创建和共享他们的文档,从代码到全面的报告都可以.李笑来 相当于拿他来 ...

  4. Running cells requires Jupyter notebooks to be installed

    /******************************************************************************* * Running cells req ...

  5. (数据分析)第02章 Python语法基础,IPython和Jupyter Notebooks.md

    第2章 Python语法基础,IPython和Jupyter Notebooks 当我在2011年和2012年写作本书的第一版时,可用的学习Python数据分析的资源很少.这部分上是一个鸡和蛋的问题: ...

  6. 【精选】Jupyter Notebooks里的TensorFlow图可视化

    [精选]Jupyter Notebooks里的TensorFlow图可视化   https://mp.weixin.qq.com/s?src=11&timestamp=1503060682&a ...

  7. Jupyter Notebooks 配置

    重装了三遍(破音) 一.首先进行Anaconda的下载 然后安装,将环境配置到系统变量上,如下 然后,打开 windows 的终端,检查是否配置成功 conda -V 然后就可以开始 Jupyter ...

  8. Jupyter Notebooks的安装和使用介绍

    最近又开始重新学习Python,学习中使用到了一款编辑器Jupyter Notebooks ,非常想安利给初学python的同学.注:本文内容仅针对windows环境下安装和配置Jupyter Not ...

  9. 基于Jupyter Notebooks的C# .NET Interactive安装与使用

    .NET Interactive发布预览版了,可以像Python那样用jupyter notebooks来编辑C#代码.具体可以在GitHub上查看dotnet/interactive项目. 安装步骤 ...

  10. Jupyter Notebooks usage

    Important note: You should always work on a duplicate of the course notebook. On the page you used t ...

随机推荐

  1. Git使用记录 - 持续更新

    本地生成 sshkey 打开git命令工具 cd ~/.ssh ssh-keygen -t rsa -C "实际的eamil地址" ··· // 一路回车,出现以下则说明成功 Yo ...

  2. S2-009 CVE-2011-3923

    漏洞名称 CVE-2011-3923 S2-009 远程代码执行漏洞 利用条件 Struts 2.0.0 - Struts 2.3.1.1 漏洞原理 OGNL提供了广泛的表达式评估功能等功能.该漏洞允 ...

  3. vulnhub靶场之BUFFEMR: 1.0.1

    准备: 攻击机:虚拟机kali.本机win10. 靶机:BUFFEMR: 1.0.1,下载地址:https://download.vulnhub.com/buffemr/BuffEMR-v1.0.1. ...

  4. [cocos2d-x]判断两个矩形是否有交叉区域

    bool Rect::intersectsRect(const Rect& rect) const { return !( getMaxX() < rect.getMinX() || r ...

  5. Gvim基础操作(正则表达式)-02

    Gvim正则表达式 正则表达式在linux中使用非常广泛.主要是进行一些替换,在编写脚本的时候都会使用到.gvim.perl.sed.tcl中都会使用到. Gvim正则表达式的使用 搜索命令 /正则表 ...

  6. Ubuntu 22.04 运行 Appimage 文件

    解决方法 sudo apt-get update sudo apt install fuse libfuse2 chmod a+x *.appimage 参考资料 https://bynss.com/ ...

  7. C# 托管堆 遭破坏 问题溯源分析

    一:背景 1. 讲故事 年前遇到了好几例托管堆被损坏的案例,有些运气好一些,从被破坏的托管堆内存现场能观测出大概是什么问题,但更多的情况下是无法做出准确判断的,原因就在于生成的dump是第二现场,借用 ...

  8. 字符串拼接输出-Predicate接口

    字符串拼接输出 下面的字符串数组当中存有多条信息,请按照格式""\姓名∶XX.性别:xx."的格式将信息打印出来.要求将打印姓名的动作作为第一个Consumer 接口的L ...

  9. Linux防火墙部署与配置

    Linux防火墙部署与配置 1. 实验概述 Linux作为网关,搭建小型局域网,在此基础上进行实验,了解Linux防火墙的构成.NAT和包过滤配置方法等. 2. 实验环境 网络大致结构如图2-1所示, ...

  10. 【学习笔记】QT从入门到实战完整版(基础控件)(4)

    添加资源 将存有资源文件的文件夹放到工程目录中,如文件夹名称为 "Image",里面有 Luffy.png 文件. 在 Qt Creator 中右击工程选择[添加新文件]. 在弹出 ...