aidlearning开发python使用教程_极致安卓之—Aid Learning基于Jupyter开发Java和Python
在本文中,介绍了0.7X版Aid Learning的安装、使用和测试。myastrotong:把安卓手机性能发挥到极致之-Aid Learningzhuanlan.zhihu.com
当前(2020年1月)Aid Learning版本号发展到了0.80,新增了很多功能,比如ssh、电脑直接登录桌面、Jupyter、Xterm等等。这一版本带来的惊喜真是不少!强烈推荐更新!Aid Learning --build a Linux running on the Android with GUI, AI and Pythonwww.aidlearning.netAid Learning 0.8版本界面
官方一直把Aid Learning定位为一款AI编程平台。我眼里却把它当做星辰大海!
我一般爱用Java和C++来编程,目前也在学习Python。
所以本文基于Aid Learning来做我熟悉的事情:基于Jupyter编写Java和Python。
C++编程主要还是依靠Vim来实现吧,Vim做这个已经足够好了。网上有无数的教程,后期有空了我再趟趟道吧。当前我主要基于Jupyter来实现Java和Python编程。
写在前面:利用Jupyter进行Java开发时需要的包管理方法见本文。myastrotong:Aid learning/Termux之Jupyter的Java编程高级篇——包管理zhuanlan.zhihu.com
Jupyter简介
Jupyter官方当前推荐使用Jupyter Lab
如果在电脑端,我的确也推荐这个,如果在手机端,你非要用,也不是不行,那你就把手机打横了用吧。
安装方法如下:
pip3 install jupyterlab
使用方法为,在terminal输入:
jupyter lab
如下是正常竖着用Jupyter Lab的效果,手机屏幕太小了,右边关键部位啥都看不到了。手机使用Jupyter Lab
如下是手机横着用Jupyter Lab的效果,右边关键部位能够看到了。但是屏幕还是太小了,只能是凑活用吧!手机横着使用Jupyter Lab
下面是使用Jupyter Notebook的效果:Jupyter Notebook手机端效果
对比发现,在手机上使用notebook还是比lab效果要好一些!个人观点,大家可以自行选择。
Jupyter之Python开发
在Jupyter中使用Python非常简单:
点击Jupyter,选择New->Python3
然后在In[]对应的cell中输入如下代码:
%matplotlib inline
import matplotlib.pyplot as plt # 导入绘图包
labels = 'frog', 'hogs', 'dogs', 'logs' # 设定数据标签
sizes = 15, 20, 45, 10 # 设定数据
colors = 'yellowgreen', 'gold', 'lightskyblue', 'lightcoral' # 设定颜色
explode = 0, 0.1, 0, 0
plt.pie(sizes, explode=explode, labels=labels, colors=colors, autopct='%1.1f%%', shadow=True, startangle=50)
plt.axis('equal')
plt.show()
效果如下:Jupyter之Python开发
Jupyter中使用Java
首先是安装JDK。很遗憾,当前Aid Learning内核支持的JDK是JDK8,而Jupyter支持的JDK版本是9.0及以上。因此你是无法使用这一款的。我找到官方大牛,给了我JDK9和JDK10。试验发现都能正确安装。
基于官方提供的tar压缩文件进行安装(以jdk9为例,jdk10方法一样):
tar –xvf OpenJDK9_aarch64_Linux_201809071400.tar –C /usr/local
用vim修改如下文件
vim ~/.bashrc
在文件最后添加如下三行话(这里是jdk9,jdk10的方法与之类似)
export JAVA_HOME=/usr/local/jdk-9+181
export CLASSPATH=.:$JAVA_HOME/lib
export JRE_HOME=$JAVA_HOME/jre
export PATH=$PATH:$JAVA_HOME/bin
然后输入如下一行话,使得命令生效
source ~/.bashrc
上官网下载Jupyter的Java支持套件IJava,当前的最新版本是1.3.0
下载完ijava-1.3.0.zip,拷贝到手机里任意文件夹
在Aid的terminal内进入到该文件夹,然后:
unzip ijava.zip -d ijava
cd ijava
python3 install.py --sys-prefix
安装完毕后,查看jupyter内核
jupyter kernelspec list
可以看到jupyter目前支持python3和java了!
如果不想支持Java了,就输入如下指令删除
jupyter kernelspec remove java
以下选择运行Jupyter来调用JAVA,坑来了!
直接点击桌面的Jupyter图标,
选择New->Java,你会发现有个错误:Kernel error,点开以后你会发现报如下错误:Aid官方版Jupyter运行Java报错
查看官网,有如下一段话:
i. Next ensure that java is in a location where the jdk was installed and not just the jre. Use the java --list-modules command to do this. The list should contain jdk.jshell.
o On *nix java --list-modules | grep "jdk.jshell"
o On windows java --list-modules | findstr "jdk.jshell"
Both should output jdk.jshell@ followed by your java version.
If the kernel cannot start with an error along the lines of
Exception in thread "main" java.lang.NoClassDefFoundError: jdk/jshell/JShellException
...
Caused by: java.lang.ClassNotFoundException: jdk.jshell.JShellException
...
then double check that java is referring to the command for the jdk and not the jre.
鬼知道是啥意思,哈哈!反正看完这段话我还是修不好这个bug。
不管他了,天下路多的是,这一条不通,就换一条呗!
方法就是,自己在后台开启Jupyter:
打开Aid的terminal,输入:
jupyter notebook
等待jupyter开启,然后在手机或者同一局域网下的电脑下的浏览器中输入:
192.168.x.x:8888或者192.168.x.x:8889
以上网址由ifconfig指令查看,也就是在terminal中输入:
ifconfig
比如我的手机是192.168.3.28
端口号根据jupyter开启后输入的提示来执行,一般是8888,如果被占用了就是8889。
在同一局域网下,输入
http://192.168.3.28:8889/
如果是手机端,还可以输入
http://localhost:8889/
成功开启的界面为:
注意:我的界面中间有Nbextensions。这个是Jupyter一个很重要的扩展插件,安装方法:
apt install libxml2
apt install libxslt1-dev
pip3 install jupyter-contrib-nbextensions
前两个不安上,扩展包是安不了的!如果你安装报错,说找不到这两个库或者安装不上,那么可能是libxml和libxslt在系统上的名字跟这个不一致,你可以输入:
apt search libxml
apt search libxslt
根据查询出来的系统对应的库名称来安装。
以上三个指令安装完毕后。
安装 javascript and css files:
jupyter contrib nbextension install --user
安装configurator:
pip3 install jupyter_nbextensions_configurator
扩展插件就安装完毕了!
然后如下所示,把一些你需要的选项选择上,比如运行时间(Execute Time)、Python提示(Hinterland)等等。
点击New,选择Java,然后在新出现的界面中,在In[]输入如下内容,点击运行,效果如下:
点击如图红圈部分,可以修改文件名,这里我改成了LearnJava。
这个例子很重要,示例了从maven中取得某个版本号的包并使用的方法。这里我使用Maven的xchart包,并画图!类似Python的Matplotlib画图,很给力的例子!
源码如下:
%maven org.knowm.xchart:xchart:3.5.2
import org.knowm.xchart.*;
int n=100;
double[]xData=new double[n];
double[]yData=new double[n];
for(int i=0;i
xData[i]=i*0.1;
yData[i]=Math.sin(xData[i]);
}
XYChart chart=QuickChart.getChart("Sample Chart","X","Y","y(x)",xData,yData);
BitmapEncoder.getBufferedImage(chart);
Jupyter真是一个方便的编写、学习Python、Java的利器!所见即所得!甚至是快速出图,配合手机,方便大家快速的学习编程!
aidlearning开发python使用教程_极致安卓之—Aid Learning基于Jupyter开发Java和Python相关推荐
- matlab中如何调用gpu进行并行计算_极致安卓-Termux/Aid learning开启WebGL手机GPU并行计算...
在我的之前的测评中,我利用Termux和Aid Learning测试过基于C/C++的openmp并行程序,基于Java的并行程序,还有基于MPI以及基于Java的分布式集群并行.但是很遗憾,一直无法 ...
- 华为平板安装python_极致安卓—Termux/Aid Learning安装宇宙最强VS Code
Termux默认是不带图形界面的,用来编程只能靠ssh挂到电脑端,然后用vim等传统手段. 老派的程序员当然都推荐vim啦,巴拉巴拉一大堆好处,总想拉我们入(jin)伙(keng). 作为新时代年轻人 ...
- python本科生就业_准备报学习机构学习大数据、Java或者python,是计算机专业的本科生,请问选择哪种就业发展比较好?...
谢邀.对比java和python后者还算是小语种.不知道楼主的具体情况如何.根据个人情况,建议先学java,毕竟你目前的需求是尽快找到更合适的技术工作,java择业面相对较宽,虽然也难学,但学习资源丰 ...
- 基于jupyter编程环境下——Python入门:列表4
列表 四.操作列表 1.使用列表的一部分 -- 切片 2.元组 Python资料:Python编程XG:从入门到实践. 四.操作列表 1.使用列表的一部分 -- 切片 在前面学习了如何访问单个列表元素 ...
- java和python自学教程_适合 Java开发者学习的Python 入门教程—文海思创
原标题:适合 Java开发者学习的Python 入门教程-文海思创 [文海思创讯]在Java文章频道里,我们大部分人应该对该语言都非常的了解,而且在该生态圈内至少已经呆了好几年了.这让我们有常规和专业 ...
- vscode开发python使用教程_用VScode配置Python开发环境
前言 VScode是一个相当优秀的IDE,具备开源.跨平台.模块化.插件丰富.启动时间快.颜值高.可高度定制等等优秀的特质,不愧是微软爸爸的私生子. 所以用VScode来编写Python,也是相当的好 ...
- spark python入门教程_你是如何自学 Python 的?
我是机械类专业出身,现在在一家NGO组织从事数据分析方面的工作,主要的工具是Python.SQL.Spark.平时会写一些分析用的脚本,偶尔会写写爬虫,跑跑算法,应该说Python算是我吃饭的家伙,很 ...
- python五角星教程_绘制五角星_清华尹成python入门教程_少儿编程视频-51CTO学院
此课程与<清华编程高手.尹成.带你实战python入门>大体相同,只需购买其中的一门课程. 本课程由清华大学尹成老师录制,课程的特色在于讲解原理的同时引入了每个程序员都热衷的黑客技术.py ...
- python代码少儿编程转换_数据类型转换_清华尹成python入门教程_少儿编程视频-51CTO学院...
此课程与<清华编程高手.尹成.带你实战python入门>大体相同,只需购买其中的一门课程. 本课程由清华大学尹成老师录制,课程的特色在于讲解原理的同时引入了每个程序员都热衷的黑客技术.py ...
- 数学表达式转换成python_简单数学表达式_清华尹成python入门教程_少儿编程视频-51CTO学院...
此课程与<清华编程高手.尹成.带你实战python入门>大体相同,只需购买其中的一门课程. 本课程由清华大学尹成老师录制,课程的特色在于讲解原理的同时引入了每个程序员都热衷的黑客技术.py ...
最新文章
- sendmail服务器配置过程中出现的一些错误和解决办法
- 为开源软件评级—商业就绪分级(BRR)模型
- Ambari Metrics Monitor/Sink 架构
- 字节跳动 ClickHouse 在实时场景中的应用和优化实践
- python求最大素数_Python实现求最大公约数及判断素数的方法
- jQuery的进行解决layui闪退的问题
- 短线王的盯盘宝怎么样_2022考研英语韦林全程班怎么样?资源分享
- 3500 yuan to php,350 CNY to PHP Currency Converter - 人民币 菲律宾比索 汇率兑换
- throws Exception的意思
- 飞鸽传书要是懒惰就会长胖
- Thread-Per-Message设计模式
- netstat -an|awk '/^tcp/ {++s[$NF]} END {for( a in s) {print a,s[a]}}'
- 无人车前轮转向分辨率校准
- Sublime Text实现代码自动生成,快速编写HTML/CSS代码
- 诱人的 react 视频教程-基础篇(14 个视频)
- 代码管理工具——SVN
- 文档扫描(扫描全能王)
- 免安装mysql配置环境变量_mysql——免安装配置
- 集抄终端测试软件,远程抄表集抄系统
- Vue移动端各种机型判断