👆 “Python猫” ,一个值得加星标的公众号
花下猫语: 前不久我分享过一篇《Android 手机如何改造成 Linux 服务器?》,不知道有没有爱动手的小伙伴去实验过呢?今天,继续分享一篇相关的文章,推荐安卓党们(有废旧手机的话),上手体验一下哦~相信多数安卓用户都使用过Qpython这款移动端的Python编辑器吧?之前我也研究过一阵子这个工具,但因为一次简单的爬虫让我对它失望之极。Qpython不支持lxml这个模块,然而python中lxml作为最底层的模块,不管是爬虫还是文档解析,都需要使用它。所以,Termux
应运而生….
Termux不仅可以帮助你学习和使用Linux系统,更可以通过安装各种插件,当做我们python全栈开发利器!今天我就带大家了解下,如何在手机上玩转Python 爬虫、jupyter notebook、git代码托管、Web开发 等等全套炫酷的功能!
Termux介绍![01767b3f7aa73bac1f6b68a7877271f9.gif](https://i-blog.csdnimg.cn/blog_migrate/d5b2fa17cc37a988ec63ad58a7c26961.gif)
Termux是一个Android终端的Linux环境仿真器。主要的是它无需root,就可以直接进行安装使用。可以使用apt包管理器或者这个工具推荐的pkg命令来定制安装其他的工具。何为其他工具?Linux下你能想到的工具,都可以去尝试,多数都可以直接安装,但也有部分工具需要你转个弯,比如在手机中安装mysql数据库!
Termux的Wiki官网:https://wiki.termux.com/wiki/Main_Page
![1dbd73ff58fea114c5a70ad7901d9a9c.png](https://i-blog.csdnimg.cn/blog_migrate/e28b65139c5f320b14947401a48ac7fd.jpeg)
官网中可以看到推荐的下载方式是Google Play 和F-Droid。Google Play在手机上安装太麻烦了,所以推荐F-Droid,虽然它比较慢…当然你可以离线下载Termux的apk文件,虽然这样没办法获取更新。安装果果橙比较简单,下载F-Droid,完成安装后搜索Termux,下载即可。
Python开发者桌面![01767b3f7aa73bac1f6b68a7877271f9.gif](https://i-blog.csdnimg.cn/blog_migrate/d5b2fa17cc37a988ec63ad58a7c26961.gif)
刚才说到Termux的简单介绍与下载方式,那么下载完成,安装的只是这个工具,而非我们的Python开发者桌面。Termux安装完成首次进入会进行相关的初始化工作,等待1-2分钟即可(此时需要联网下载工具)。截图如下:
![1b7979e82746425a2867f6046c2cccac.png](https://i-blog.csdnimg.cn/blog_migrate/697bcc432f9de8c3f76da1e2e0995c79.png)
之后就该进入我们的DIY时间了!
1. 更新源:为了我们能获取到最新的插件信息,需要更新一下镜像源列表
1pkg update
2.
安装python及pip
系统为我们安装了最新的python3.7.4版本,紧追时尚潮流….
1pkg install python python-dev
3.
安装依赖插件
这一步阻塞了很长的时间,可以看到网上针对lxml的安装不管是linux系统还是咱们的Termux,都存在这很多的求助帖。
![17eba2ebb58d3ab01dc3453549eab47b.png](https://i-blog.csdnimg.cn/blog_migrate/b04eb75503be72ed93948b3bfb8a553b.jpeg)
按照很多热心网友的回答去尝试安装插件,和其他解决办法,都没有成功。
多数的报错是提示libxml2插件未安装,可明明安装了,之后查阅资料了解python在使用该插件的使用需要通过clang插件的编译后才能使用,但是安装后有提示conv.h的文件无法获取等等。这个问题断断续续卡了我两天你的时间,光卸载安装Termux就搞了几次,每月20G的流量我就剩5G了…最终找齐了所有插件总结给大家:
1pkg install libxml2 libxml2-dev libxslt libxslt-dev libiconv libiconv-dev libclang clang libzmq libzmq-dev libc++
![c6c9a75814a929fbffdbf7edcdc99391.png](https://i-blog.csdnimg.cn/blog_migrate/ab8429589cd72ff07845ce63b192d3a6.png)
![01767b3f7aa73bac1f6b68a7877271f9.gif](https://i-blog.csdnimg.cn/blog_migrate/d5b2fa17cc37a988ec63ad58a7c26961.gif)
首先我们输入termux-setup-storage
将手机目录共享给termux,完成后会在home目录下多出一个storage的文件夹。
![ba49a7d286836f451f37c09f2abd3522.png](https://i-blog.csdnimg.cn/blog_migrate/f894aa61991386483c91486e0af6cb24.png)
了解Linux的朋友应该比较清楚创建链接与挂载点的问题,手机的目录在Termux的 /data/data/com.termux/files/home/storage/shared内。那么同样的,我们可以将手机的代码目录映射到Termux中。命令如下:
ln -s /data/data/com.termux/files/home/storage/shared/Codes_Repository ~/Codes
然后,我们将小说下载器的脚本Novels.py丢到手机的Codes_Repository,再去Termux中看看是否同步
![5be03050d2e35c55f6995a5cc5f21e65.png](https://i-blog.csdnimg.cn/blog_migrate/fca146db191ae2a71f0052503278c4dd.jpeg)
无意中暴露了我的Mate 20X,哈哈…之所以当时要买7.2英寸的20x就是为了将手机打造成python开发工具。优化编辑器
![01767b3f7aa73bac1f6b68a7877271f9.gif](https://i-blog.csdnimg.cn/blog_migrate/d5b2fa17cc37a988ec63ad58a7c26961.gif)
大家都知道Linux环境下开发python,大神们都推荐的是vi,用其他的工具都显得不高端…那么如何优化我们的编辑器呢?安装vi的哥哥vim,针对vim下开发python安装vim-python 代码
1
来看看vim-python的编码效果:
![79efbcde2618efb3148bc2d01efb0d9d.png](https://i-blog.csdnimg.cn/blog_migrate/1c185e1041c49d3b650f2636b6d902a6.jpeg)
![7c65953123717e43ff1205122abdfd9f.png](https://i-blog.csdnimg.cn/blog_migrate/6696a8869fa7565c62da9e17eb3b905a.jpeg)
![01767b3f7aa73bac1f6b68a7877271f9.gif](https://i-blog.csdnimg.cn/blog_migrate/d5b2fa17cc37a988ec63ad58a7c26961.gif)
最后来说说Termux的python开发问题,今天有朋友问到,Termux下写Python代码应该用什么编辑器呢?只用vim没有代码联想,写起来很麻烦…
你可以尝试使用Jupyter Notebook …
如果是按照我之前教程安装的Termux,那么直接pip install jupyter即可完成安装…
Termux权限设置![01767b3f7aa73bac1f6b68a7877271f9.gif](https://i-blog.csdnimg.cn/blog_migrate/d5b2fa17cc37a988ec63ad58a7c26961.gif)
默认情况下Termux安装到手机后,是没有后台运行权限的,即如果你离开Termux桌面,那么将无法继续使用相关的web项目。你需要关闭手机启动管理的自动管理,然后添加上允许后台活动。
![ec4a21b4d6783cc13343f117d25ce3ec.png](https://i-blog.csdnimg.cn/blog_migrate/de630570aa779f303f6ea6247f45d0b9.png)
之后再输入
jupyter notebook
,即可达到后台运行的效果。
![2f2178d9104a72b2919b89811ab288f7.png](https://i-blog.csdnimg.cn/blog_migrate/eb67b3b75cb500dde79215a533f8e5a1.jpeg)
成功启动jupyter notebook后,会在命令行生成一个带token的url,复制它到你的手机浏览器上,现在在你的手机上好好练习代码吧…
![1e97388d088b159c1fe6c5694a431ea6.png](https://i-blog.csdnimg.cn/blog_migrate/cab17d847fbb25e77c7581a6c35de9a9.jpeg)
一道Leetcode上的练习题,在jupyter notebook上运行是不是完美….
![01767b3f7aa73bac1f6b68a7877271f9.gif](https://i-blog.csdnimg.cn/blog_migrate/d5b2fa17cc37a988ec63ad58a7c26961.gif)
怎么样,不管是原生的vim还是大家喜爱的jupyter notebook,展示效果还算不错吧!再让我们执行一段爬虫代码
![65ca367e70b84e9123399d79ecd94a0c.png](https://i-blog.csdnimg.cn/blog_migrate/47d6f6249d2b3d473bbe4e5f670ac3a5.jpeg)
可以看到,第一次运行提示缺失requests模块,通过pip安装后,再次执行,爬取小说网站,下载了最近5章的小说内容。Termux下使用git
![01767b3f7aa73bac1f6b68a7877271f9.gif](https://i-blog.csdnimg.cn/blog_migrate/d5b2fa17cc37a988ec63ad58a7c26961.gif)
既然要做成python开发者桌面怎么能少了git工具的使用?
1pkg install git
![7e5268bc2105d5f6ec4662b463927fec.png](https://i-blog.csdnimg.cn/blog_migrate/da48876869a34c90a86c21732e8cc645.jpeg)
![25d8c25a643f7b690e0e33e48f9fe5ed.png](https://i-blog.csdnimg.cn/blog_migrate/8953daa8fd9a723eff082d182ce0821d.png)
现在我们从手机上下载代码,进行安装…
1
因为代码是通过pipenv进行开发的,所以从安装到使用,你无需关注虚拟环境到底涉及什么模块,需要怎么安装,没错pipenv就是这么简单粗暴!放几张图吧:
![6a411963d0d8eaac4a3e7a1c560c266d.png](https://i-blog.csdnimg.cn/blog_migrate/775198702814ff29161bc535ada014f7.jpeg)
别说,安装的这个小蛇还挺可爱的….
![ecd8a77eda8f8579735cabef1af3552c.png](https://i-blog.csdnimg.cn/blog_migrate/dea3ff998b06989c8d5365fa3cf83917.jpeg)
最终看看手机运行是否正常吧(恩,明天天气不错....):
![f1ac00780afc6cfc351cc17ca43da8b7.png](https://i-blog.csdnimg.cn/blog_migrate/322b8575698985c8a2986e940e7e871f.jpeg)
大家说这样的工具,是不一顿操作猛如虎,看得我自己的害怕啊….
公众号回复 安卓开发 ,即可获得Termux的离线安装包和小说下载的脚本。 从此手机在手,天下我有,带你走上python超神路!![ce521d5335456ae8f10e1c7411f5b5d7.gif](https://i-blog.csdnimg.cn/blog_migrate/295c58f3c014f0f97478763cbfb5b630.gif)
优质文章,推荐阅读:
Python 命令行之旅:深入 click 之选项篇
不想装系统,有没有办法在线体验 Linux?
如何保护你的 Python 代码 (一)—— 现有加密方案
Python 为什么要保留显式的 self ?![7ffeecacdb8ff74397b184abe4ce7ed6.png](https://i-blog.csdnimg.cn/blog_migrate/d2d2949535431782a01e69e18d932d7a.png)