栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

jupyter-基于笔记本编程jupyterlab+kotlin

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

jupyter-基于笔记本编程jupyterlab+kotlin

前言

日常开发中,经常有些探索性的工作需要处理。这类工作更多的是验证可行性,不需要像典型的工程那样遵守目录结构,严格编码,笔记本是做这类工作的良好载体。

jupyter本来是python平台的工具,拓展之后可以用来运行kotlin(间接运行java),也是挺好用的,比java11的jshell好多了;看来跨语言的相互借鉴还是蛮有意义的。

jupyter搭建 安装anaconda

使用scoop来安装anaconda。

//搜索anaconda
scoop search anaconda
//全局安装anaconada
scoop install -g anaconada
安装jupyterlab

打开anaconda prompt命令窗口:

conda search jupyterlab
conda install jupyterlab
安装kotlin解释器
//安装
conda install -c jetbrains kotlin-jupyter-kernel
//卸载
conda remove kotlin-jupyter-kernel

为什么不用IJava解释器呢?个人觉得java冗余的语法不适合笔记本编程的体验。

修改默认工作目录
//生成配置文件
jupyter notebook --generate-config
//搜索配置项
c.NotebookApp.notebook_dir
//配置为默认路径,去掉#解注释,配置项前面无空格
c.NotebookApp.notebook_dir = 'D:jupyter'

删除掉目标框的"%USERPROFILE%"变量

配置局域网访问ip
# 使用jupyter生成密码
# 生成的密码保存在~/.jupyter/jupyter_notebook_config.json文件中
jupyter notebook password
# 修改配置文件参数
c.NotebookApp.ip='0.0.0.0' 
c.NotebookApp.password = u'你的密码'
安装扩展程序包
# 安装拓展包
pip install jupyter_contrib_nbextensions
# 应用拓展包
jupyter contrib nbextension install --user
配置主题
# 安装主题
pip install --upgrade jupyterthemes
# 查看主题列表
jt -l
# 切换主题
jt -t <主题名> -T -N

个人推荐:gruvboxl,黄色背景,护眼;idea也有同款Gruvbox Theme,配合Material Theme UI很赞。

jupyterlab基本操作

打开anaconda prompt命令窗口,输入:

jupyterlab

或者点击图标

jupyter服务器运行起来,在浏览器中输入http://localhost:8888/lab即可打开jupyterlab的工作界面。

查看帮助
:help

使用依赖包 官方依赖包

使用%use语法。

默认版本
%use fuel
指定版本
%use fuel(2.3.1)

默认版本定义在..anaconda32021.11Libsite-packagesrun_kotlin_kernellibraries的json文件中。

其他依赖包
指定依赖仓库
@file:Repository()
@file:Repository("*mavenLocal")
指定依赖包
@file:DependsOn()
@file:DependsOn("com.squareup.okhttp3:okhttp:4.9.3")

默认的依赖仓库为:

  • Maven Central
  • JitPack

默认使用maven下载依赖,依赖存放位置:~/.m2

查看类路径
:classpath

查看变量表
:vars

设置jdk版本

通过配置如下环境变量设置jdk:

  • KOTLIN_JUPYTER_JAVA_HOME
  • JAVA_HOME

配置jvm参数

  • KOTLIN_JUPYTER_JAVA_OPTS
  • JAVA_OPTS

配置额外参数

  • KOTLIN_JUPYTER_JAVA_OPTS_EXTRA
查看jdk版本

新建一个kotlin笔记本,打印java相关信息:

System.out.println(System.getProperty("user.home"))
System.out.println(System.getProperty("os.name"))
System.out.println(System.getProperty("java.home"))
System.out.println(System.getProperty("java.version"))
System.out.println(System.getProperty("java.vm.name"))
System.out.println(System.getProperty("java.vm.version"))
System.out.println(System.getProperty("java.vm.vendor"))

jupyter kotlin常用库介绍

使用:help命令可以查看官方收录的库。

http客户端fuel 引入依赖并导入类
%use fuel(2.3.1)
import com.github.kittinunf.result.*
import com.github.kittinunf.fuel.core.*
调用百度接口搜索
FuelManager.instance.basePath = "https://www.baidu.com"

Fuel.get("/s", listOf("wd" to "fuel"))
    .response()

执行结果如下:

由于时间精力的关系,这里不推荐使用:help里面收录的库,而是直接使用java库,毕竟java本身的库又多又全。使用kotlin jupyter,确实需要学习kotlin的一些基本的语法,但是依赖包尽量还是用java的,减少学习的成本。

从另一个角度讲,java本身的库本来就多,学都学不过来,没必要在使用kotlin的第三方库(kotlin标准库还是要了解下);相反,可以把kotlin jupyter作为实验java库的平台,了解并实践java库的入口,甚至,可以用来快速编写并调试一段算法。这些都有助于对java的理解和运用。

kotlin一些必要的语法
  • 语句不用写分号
  • 新建对象不用new,直接调用构造函数
  • 变量前面无需声明类型,用val,var关键字
  • 创建数组:arrayOf,intArrayOf,doubleArray,…
  • 数组变可变长度参数:变量名前加*
  • 创建map:mapOf,mutableMapOf
  • 创建list:listOf,mutableListOf
  • 创建set:setOf,mutableSetOf
guava的使用

java11 HttpClient

apache commons rng

根据官方文档探索真是给力,没有编译时间,不用喝咖啡。

xchart
@file:DependsOn("org.knowm.xchart:xchart:3.8.1")
import org.knowm.xchart.*
val xData=doubleArrayOf(0.0,1.0,2.0)
val yData=doubleArrayOf(2.0,1.0,0.0)
val chart=QuickChart.getChart("Sample Chart","x","y","y(x)",xData,yData)
BitmapEncoder.getBufferedImage(chart)
其他
  • tablesaw
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1008363.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号