相信多数安卓用户都使用过Qpython这款移动端的Python编辑器吧?之前我也研究过一阵子这个工具,但因为一次简单的爬虫让我对它失望之极。Qpython不支持lxml这个模块,然而python中lxml作为最底层的模块,不管是爬虫还是文档解析,都需要使用它。所以,Termux应运而生….

Termux不仅可以帮助你学习和使用Linux系统,更可以通过安装各种插件,当做我们python全栈开发利器!今天我就带大家了解下,如何在手机上玩转Python 爬虫jupyter notebookgit代码托管Web开发 等等全套炫酷的功能!Termux介绍Termux是一个Android终端的Linux环境仿真器。主要的是它无需root,就可以直接进行安装使用。可以使用apt包管理器或者这个工具推荐的pkg命令来定制安装其他的工具。何为其他工具?Linux下你能想到的工具,都可以去尝试,多数都可以直接安装,但也有部分工具需要你转个弯,比如在手机中安装mysql数据库!
Termux的Wiki官网:https://wiki.termux.com/wiki/Main_Page

Termux的Wiki

官网中可以看到推荐的下载方式是Google Play 和F-Droid。Google Play在手机上安装太麻烦了,所以推荐F-Droid,虽然它比较慢…当然你可以离线下载Termux的apk文件,虽然这样没办法获取更新。安装果果橙比较简单,下载F-Droid,完成安装后搜索Termux,下载即可。Python开发者桌面刚才说到Termux的简单介绍与下载方式,那么下载完成,安装的只是这个工具,而非我们的Python开发者桌面。Termux安装完成首次进入会进行相关的初始化工作,等待1-2分钟即可(此时需要联网下载工具)。截图如下:

安装Termux.png

之后就该进入我们的DIY时间了!1.更新源:为了我们能获取到最新的插件信息,需要更新一下镜像源列表

1pkg update2pkg upgrade3pkg install python python-dev

2.安装python及pip系统为我们安装了最新的python3.7.4版本,紧追时尚潮流….

1pkg install python python-static2pip install --upgrade pip

3.安装依赖插件这一步阻塞了很长的时间,可以看到网上针对lxml的安装不管是linux系统还是咱们的Termux,都存在这很多的求助帖。

lxml安装报错

按照很多热心网友的回答去尝试安装插件,和其他解决办法,都没有成功。
多数的报错是提示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++2pip 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 2pkg install vim vim-python 3# 创建vim配置文件 4vim .vimrc 5# 添加 vim 配置文件 6set fileencodings=utf-8,gb2312,gb18030,gbk,ucs-bom,cp936,latin1 7set enc=utf8 8set fencs=utf8,gbk,gb2312,gb18030 9# 保存10:wq11# 立即生效12source .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工具的使用?

1pkg install git2git config --global user.name "Usernam"3git config --global user.email  "email-addr"4git clone https://github.com/BreezePython/FlaskTests.git
Git
image.png

现在我们从手机上下载代码,进行安装…

 1# 如果为安装pipenv,需要先进行安装操作 2pip install pipenv 3# 克隆代码 4git clone https://github.com/BreezePython/WeatherForecast.git 5# 进入代码目录 6cd WeatherForecast 7# 安装虚拟机及依赖模块 8pipenv install 9# 进入虚拟机10pipenv shell11# 启动flask12flask run

因为代码是通过pipenv进行开发的,所以从安装到使用,你无需关注虚拟环境到底涉及什么模块,需要怎么安装,没错pipenv就是这么简单粗暴!放几张图吧:

下载代码与安装虚拟环境

别说,安装的这个小蛇还挺可爱的….

安装插件并启动flask

最终看看手机运行是否正常吧(恩,明天天气不错....):

手机运行

大家说这样的工具,是不一顿操作猛如虎,看得我自己的害怕啊….-END-

推荐阅读

一个关于模块的小故事

全面深入理解 Python 面向对象

asyncio:从原理、源码到实现

包都装不上你写个锤子代码,N种姿势教你装包!

关于 Git 和 GitHub,你所不知道的十件事

盘点一下那些改变了世界的代码

喜欢文章,点个在看 

python如何将列表去掉引号_如何将手机打造成 Python 开发利器?相关推荐

  1. python字符串与列表与运算_[Python学习笔记1]Python语言基础 数学运算符 字符串 列表...

    这个系列是我在学习Python语言的过程中记录的笔记,主要是一些知识点汇总,而非学习教程,可供有一定编程基础者参考.文中偏见和不足难以避免,仅供参考,欢迎批评指正. 本系列笔记主要参考文献是官网文档: ...

  2. python中的列表和元组_百度资讯搜索_python中的列表和元组

    腾讯网 11小时前# 元组(tuple)是 Python 中另一个重要的序列结构,和列表类似,元组也是由一系列按特定顺序排序的元素组成.元组是一个有序列表,序列中的每个元素都分配一个数字(...百度快 ...

  3. python怎么把列表变成字典_在Python中将列表转换为字典

    在Python中将列表转换为字典 假设我在Python中有一个列表b,其条目方便地映射到字典. 每个偶数元素代表字典的键,以下奇数元素是值 例如, a = ['hello','world','1',' ...

  4. python 两个列表相互映射_Python基础 — 10分钟学习函数式Python

    点击上方蓝字"Python圈子",进行关注~ (图片源自网络) 在这篇10分钟的文章中,您将学习Python中的函数式范型.您还将学习列表推导式. 目录 1.  函数式范式 2.  ...

  5. python函数使用易错点_大部分人都会忽略的Python易错点总结

    python中复数实现(-2) ** 0.5和开根号sqrt(-2)的区别 (-2)**0.5和sqrt(-2)是不同的,前者是复数后者是会报错的. print((-2)**0.5) #输出:(8.6 ...

  6. python能做大型网站么_前几天有人讨论Python做的大型网站

    除了 http://www.v2ex.com/t/18508 提到的众所周知的 google youtube douban sourceforge yahoo delicious 还有 http:// ...

  7. 我们编写的python代码在运行过程中_在Rust代码中编写Python是种怎样的体验?

    原标题:在Rust代码中编写Python是种怎样的体验? 作者 | Mara Bos,Rust资深工程师 译者 | Arvin,编辑 | 屠敏 来源 | CSDN(ID:CSDNnews) 大约一年前 ...

  8. python 怎么让列表里的数从大到小排列,python中如何给列表排序

    这篇文章主要介绍了Python中对列表排序实例,需要的朋友可以参考下 很多时候,我们需要对List进行排序,Python提供了两个方法,对给定的List L进行排序: 方法1.用List的成员函数so ...

  9. python获取word页数_python,_如何在 Linux 上使用 Python 读取 word 文件信息(如页数)?,python - phpStudy...

    如何在 Linux 上使用 Python 读取 word 文件信息(如页数)? R.T. doc 是二进制文件,Python 如何进行读取呢? .docx 可用 python-docx 读取,但如何读 ...

最新文章

  1. 127 - Accordian Patience
  2. Golang 编译MIPS helloworld程序出现 Illegal instruction 或者helloworld: applet not found 的解决
  3. java反射效率对比_Java反射三种方式的效率对比
  4. python onenet_使用Python2.7 POST 数据到 onenet 平台
  5. java eclipse oxygen_Eclipse Java Oxygen配置Tomcat
  6. 如何恢复被破坏的PowerDesigner pdm文件
  7. Maven配置nexus
  8. 异步与延迟加载JavaScript的方法
  9. 玩游戏?或许游戏正在拯救部分人
  10. rhel5 安装Oracle Database 10g Release 2(II)
  11. 基于visual Studio2013解决C语言竞赛题之1054抽牌游戏
  12. 没使用Spring Cloud的版本管理导致Eureka服务无法注册到Eureka服务注册中心
  13. Java实验报告(基础练习、选择循环、数组、字符串及类和对象)
  14. 【Docker 01】Docker简介与基于Docker构建第一个Spring Boot应用
  15. Android学习资料整理
  16. vfp邮件.html格式,VFP 实现自动发邮件代码
  17. Netty 如何做到单机百万并发?
  18. 微信小程序如何从数组里取值_微信小程序 怎么数组里面值
  19. optaplanner学习笔记(一)案例Cloud balance
  20. 快手提前批--Java开发面经

热门文章

  1. 《谈判力》读书笔记:第五章 坚持使用客观标准
  2. C#WinForm多行文本框
  3. 餐饮二维码案例: 扫二维码监督后厨卫生状况
  4. 爬虫项目实操三、用scrapy框架爬取豆瓣读书Top250的书名,出版信息和评分
  5. html5 微信原生登录,用HTML5实现微信密码输入框
  6. 渗透测试-Kali入侵Win7主机
  7. Linux可以读取Windows文件吗,linux和Windows下读取目录下文件
  8. UILabelUITextView文本嵌入图片处理
  9. 回忆中的经典——猫和老鼠
  10. Polyworks脚本开发学习笔记(十三)-深入了解MACRO命令