赞
踩
网上很多关于Termux安装Matplotlib、Pandas的教程,都是依赖Python3.10或Python3.9以下的环境。今年,Termux官方又将Python升级到3.11.2之后,很多的安装方法都失效了。
手机要求:Android 7.0及以上
Termux版本:0.118
Python版本:3.11.2
官网下载地址:Termux | F-Droid - Free and Open Source Android App Repository
或google play下载安装。
2.1 命令行换源
sed -i 's@^
deb.∗stablemain $@#\1\ndeb https://mirrors.tuna.tsinghua.edu.cn/termux/termux-packages-24 stable main@' $PREFIX/etc/apt/sources.list
设置完换源后,记得更新哦
pkg update
2.2 图形界面换源
在 Termux 中执行如下命令
termux-change-repo
在图形界面引导下,使用自带方向键可上下移动。
使用空格选择需要更换的仓库,然后选择 Mirrors by Tsinghua 镜像源。确认无误后回车,镜像源会自动完成更换。如下图所示:
2.3 pip手动更改下载源
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
三种换源方法,根据自已的喜好选择,随便选一种即可。
pkg install python
pkg update && pkg upgrade
MATHLIB="m" pip install pandas
注意:
由于pandas需要的numpy版本和编译工具依赖不匹配,如果先安装numpy再安装pandas就会导致各种异常,所以直接不安装numpy即可,如果已安装了python的,先卸载python,清理所有东西,再安装Python,我的版本是3.11.2,然后直接pkg update && pkg upgrade,再执行 MATHLIB="m" pip install pandas ,即可。因为pandas需要numpy作为依赖,pandas发现没有安装numpy的时候,会自动适配安装numpy,这样就会装上正确适配了pandas的numpy,而且numpy也会被正确的安装上。还有,你直接安装numpy在Python3.11.2的Termux环境下,也会直接错误,numpy貌似没有专门维护这个问题
安装过程,如下图:
从上图红圈中,可以看出Pandas依赖的组件及版本,有兴趣的朋友,不想卸载Python或重装Termux的,可以在现有的环境中尝试安装上面的组件,看看能不能成功安装上Pandas,这只是猜想,没有经本人测试过的,不知是否可行。我的全部都是全新安装的。(2022-06-15更新)
如果上述中的Pandas安装失败,可能是当前python环境和numpy不兼容。可以使用以下的方法,按顺序安装:(2023-08-30更新)
pkg install tur-repo
pkg install python-numpy
pkg install python-pandas
这里引用一下 qq_42783584 这位网友的解决方法(感谢您的分享):
遇到的问题是jupyter安装不了因为装不上rdps-py的依赖,rdps-py又依赖rust的maturin,而maturin装不上又因为rust的cargo找不到aarch64-linux-android-ar的原因。
具体步骤如下:
1. pkg install tur-repo
2. pkg install rust
3. pkg i binutils-is-llvm
4. cargo install maturin
5. pip install jupyter
首先需要安装Matplotlib的依赖项,如下:
#1、安装pillow依赖项
pkg install -y libjpeg-turbo libtiff
pip install pillow
#2、安装matplotlib依赖项
pkg install -y freetype libpng
pkg install matplotlib
安装过程及测试,如下图:
注意:
matplotlib在安装时候也遇到了不少问题。一开始使用 pip install matplotlib 安装,到编译时候总是报错。最后是通过 pkg install matplotlib 才成功安装上去了。
如matplotlib仍然安装不成功的小伙伴,可以使用pyecharts来代替它。个人觉得pyecharts功能比matplotlib还要强大。安装方法如下:
pip install pyecharts
- import numpy as np
- import matplotlib.pyplot as plt
-
- #0-6的范围
- x = np.array([0,6])
- #0-100的范围
- y = np.array([0,10])
- plt.plot(x,y)
- plt.xlabel("横坐标")
- plt.ylabel("纵坐标")
- plt.title("示例图形")
- plt.show()
输出:
从上图可要看出,有中文的地方,都变成了方格。那么如何解决这个问题呢?
1、 从电脑或网上下载一个中文字体,本文中的字体我是从windows系统的字体库中直接复制出来的。
2、 以字体simhai.ttf(黑体)为例,先将字体simhai.ttf文件复制到下面的目录中
#复制前,先切换到字体所在文件夹,然后用cp命令复制文件
cp -i simhei.ttf /data/data/com.termux/files/usr/lib/python3.11/site-packages/matplotlib/mpl-data/fonts/ttf
3、切换到/data/data/com.termux/files/usr/lib/python3.11/site-packages/matplotlib/mpl-data找到matplotlibrc文件改修,如下
#去掉注释
font.family : sans-serif
#去掉注释,并在冒号后的值前添加前文提及的中文字体
font.sans-serif : DejaVu Sans, Bitstream Vera ........
如下图所示:
本文中使用的是nano编辑器,安装方法如下:
pkg install -y neovim
4、清除matplotlib缓存
rm -rf ~/.cache/matplotlib
到此,matplotlib中文乱码的问题也解决了。
5、测试
- import numpy as np
- import matplotlib.pyplot as plt
-
- #显示中文
- plt.rcParams['font.sans-serif'] = ['simhei']
- # 用来正常显示负号
- plt.rcParams['axes.unicode_minus'] = False
-
- #0-6的范围
- x = np.array([0,6])
- #0-100的范围
- y = np.array([0,10])
- plt.plot(x,y)
- plt.xlabel("横坐标")
- plt.ylabel("纵坐标")
- plt.title("示例图形")
- plt.show()
Jupyter Notebook(此前被称为 iPython notebook)可以在 Web 端提供Python交互,虽然和iPython 共享同⼀个内核,但是更强⼤。
想要成功安装Jupyter,安装下面所需的依赖包,依据下面的命令按顺序执行完,就能安装成功。
pkg install -y libzmq libcrypt pkg-config
pip install clang
pip install ipython
pip install jupyter
Jupyter Notebook就安装好了,先启动 notebook,在终端输入:
jupyter notebook
然后会看到运⾏的⽇志,我们复制出 提示的URL,到浏览器中打开:
OK 运⾏成功,那么回到 Termux ⾥⾯使⽤组合键 Ctrl + C -> 中⽌当前的 Jupyter 进程。
默认情况下Termux安装到手机后,是没有后台运行权限的。这时如果在浏览器中运行jupyter notebook来执行程序,需要在Termux和浏览器之间来回切换刷新才能显示结果。这样就会很麻烦了,那么有没有像电脑那样,在浏览器中运行jupyter notebook,写完代码,按执行,直接显结果,不需要来回切换环境呢?答案:是有的。我们只需要在手机中打开”设置“找到”应用启动管理“,然后把Termux应用的自动管理关闭,再打开允许后台活动的设置就行。如下图所示:
这样就可以解决Termux和浏览器之间来回切换刷新才能显示结果的问题了。
到此结束,本文如对你有所帮助,希望能加个关注,点个赞,收藏下,谢谢。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。