相信多数安卓用户都使用过 Qpython 这款移动端的 Python 编辑器吧?之前我也研究过一阵子这个工具,但因为一次简单的爬虫让我对它失望之极。Qpython 不支持 lxml 这个模块,然而 python 中l xml 作为最底层的模块,不管是爬虫还是文档解析,都需要使用它。所以,Termux 应运而生….
Termux 不仅可以帮助你学习和使用 Linux 系统,更可以通过安装各种插件,当做我们 python 全栈开发利器!今天我就带大家了解下,如何在手机上玩转Python爬虫、jupyter notebook、git 代码托管、Web 开发 等等全套炫酷的功能!
Termux 介绍
Termux 是一个 Android 终端的 Linux 环境仿真器。主要的是它无需 root,就可以直接进行安装使用。可以使用 apt 包管理器或者这个工具推荐的 pkg 命令来定制安装其他的工具。何为其他工具?Linux下你能想到的工具,都可以去尝试,多数都可以直接安装,但也有部分工具需要你转个弯,比如在手机中安装 mysql 数据库!
Termux 的 Wiki 官网:
Termux的Wiki
官网中可以看到推荐的下载方式是 Google Play 和 F-Droid。Google Play 在手机上安装太麻烦了,所以推荐 F-Droid,虽然它比较慢…当然你可以离线下载 Termux 的 apk 文件,虽然这样没办法获取更新。安装果果橙比较简单,下载 F-Droid,完成安装后搜索 Termux,下载即可。
Python 开发者桌面
刚才说到 Termux 的简单介绍与下载方式,那么下载完成,安装的只是这个工具,而非我们的 Python 开发者桌面。Termux 安装完成首次进入会进行相关的初始化工作,等待 1-2 分钟即可(此时需要联网下载工具)。截图如下:
之后就该进入我们的 DIY 时间了!
1.更新源:
为了我们能获取到最新的插件信息,需要更新一下镜像源列表
1 pkg update2 pkg upgrade3 pkg install python python-dev
2.安装 python 及 pip
系统为我们安装了最新的 python3.7.4 版本,紧追时尚潮流….
1 pkg install python python-static2 pip install --upgrade pip
3.安装依赖插件
这一步阻塞了很长的时间,可以看到网上针对 lxml 的安装不管是 linux 系统还是咱们的 Termux,都存在这很多的求助帖。
lxml 安装报错
按照很多热心网友的回答去尝试安装插件,和其他解决办法,都没有成功。
多数的报错是提示 libxml2 插件未安装,可明明安装了,之后查阅资料了解 python 在使用该插件的使用需要通过 clang 插件的编译后才能使用,但是安装后有提示 conv.h 的文件无法获取等等。这个问题断断续续卡了我两天你的时间,光卸载安装 Termux 就搞了几次,每月 20 G的流量我就剩 5 G了…最终找齐了所有插件总结给大家:(最新安装依赖详见原文章留言)
1 pkg install libxml2 libxml2-dev libxslt libxslt-dev libiconv libiconv-dev libclang clang libzmq libzmq-dev libc++2 pip install lxml
lxml 安装成功
目录说明
首先我们输入 termux-setup-storage 将手机目录共享给 termux,完成后会在 home 目录下多出一个 storage 的文件夹。
目录说明
了解 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 中看看是否同步
目录共享
无意中暴露了我的 Mate 20X ,哈哈…之所以当时要买 7.2 英寸的 20x 就是为了将手机打造成 python 开发工具。
优化编辑器
大家都知道 Linux 环境下开发 python,大神们都推荐的是 vi,用其他的工具都显得不高端…那么如何优化我们的编辑器呢?安装 vi 的哥哥 vim,针对 vim 下开发 python 安装 vim-python 代码
1 # 安装 vim vim-python 2 pkg install vim vim-python 3 # 创建 vim 配置文件 4 vim .vimrc 5 # 添加 vim 配置文件 6 set fileencodings=utf-8,gb2312,gb18030,gbk,ucs-bom,cp936,latin1 7 set enc=utf8 8 set fencs=utf8,gbk,gb2312,gb18030 9 # 保存10 :wq11 # 立即生效12 source .vimrc
来看看 vim-python 的编码效果:
vim-python
vim-python
手机编程
最后来说说 Termux 的 python 开发问题,今天有朋友问到, Termux 下写 Python 代码应该用什么编辑器呢?只用 vim 没有代码联想,写起来很麻烦…
你可以尝试使用 Jupyter Notebook …
如果是按照我之前教程安装的 Termux,那么直接 pip install jupyter 即可完成安装…
Termux 权限设置
默认情况下 Termux 安装到手机后,是没有后台运行权限的,即如果你离开 Termux 桌面,那么将无法继续使用相关的 web 项目。你需要关闭手机启动管理的自动管理,然后添加上允许后台活动。
Termux 设置
之后再输入jupyter notebook,即可达到后台运行的效果。
jupyter notebook
成功启动 jupyter notebook 后,会在命令行生成一个带 token 的 url,复制它到你的手机浏览器上,现在在你的手机上好好练习代码吧…
代码运行
一道 Leetcode 上的练习题,在 jupyter notebook 上运行是不是完美….
爬虫代码运行
怎么样,不管是原生的 vim 还是大家喜爱的 jupyter notebook,展示效果还算不错吧!再让我们执行一段爬虫代码
模块安装与使用
可以看到,第一次运行提示缺失 requests 模块,通过 pip 安装后,再次执行,爬取小说网站,下载了最近 5 章的小说内容。
Termux 下使用 git
既然要做成 python 开发者桌面怎么能少了 git 工具的使用?
1 pkg install git
2 git config --global user.name "Usernam"
3 git config --global user.email "email-addr"
4 git clone https://github.com/BreezePython/FlaskTests.git
Git
image.png
现在我们从手机上下载代码,进行安装…
1 # 如果为安装 pipenv,需要先进行安装操作
2 pip install pipenv
3 # 克隆代码
4 git clone https://github.com/BreezePython/WeatherForecast.git
5 # 进入代码目录
6 cd WeatherForecast
7 # 安装虚拟机及依赖模块
8 pipenv install
9 # 进入虚拟机
10 pipenv shell
11 # 启动 flask
12 flask run
因为代码是通过 pipenv 进行开发的,所以从安装到使用,你无需关注虚拟环境到底涉及什么模块,需要怎么安装,没错 pipenv 就是这么简单粗暴!放几张图吧:
下载代码与安装虚拟环境
别说,安装的这个小蛇还挺可爱的….
安装插件并启动 flask
最终看看手机运行是否正常吧 (恩,明天天气不错....):
手机运行
大家说这样的工具,是不一顿操作猛如虎,看得我自己的害怕啊….