Termux 0.118版本详细安装教程,成功解决了Pandas、Matplotlib、Numpy及Jupyter等安装失败的问题

前言: 

网上很多关于Termux安装Matplotlib、Pandas的教程,都是依赖Python3.10或Python3.9以下的环境。今年,Termux官方又将Python升级到3.11.2之后,很多的安装方法都失效了。

环境搭建:

手机要求:Android 7.0及以上

Termux版本:0.118

Python版本:3.11.2

1、安装Termux(0.118)

官网下载地址:Termux | F-Droid - Free and Open Source Android App Repository

或google play下载安装。

2、换源,由于Termux官方的源网有点慢,后期安装一些库可能会失败,这里换成国内清华大学的源网的,加快软件包下载速度。

2.1 命令行换源

sed -i 's@^\(deb.*stable main\)$@#\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

三种换源方法,根据自已的喜好选择,随便选一种即可。

软件安装

安装Python

pkg install python

pkg update && pkg upgrade

pandas安装

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 

关于安装Jupyter安装失败的问题(2023-11-24更新)

这里引用一下 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安装:

首先需要安装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

Matplotlib无法显示中文的解决方法

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

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 进程。

Texmux权限设置

默认情况下Termux安装到手机后,是没有后台运行权限的。这时如果在浏览器中运行jupyter notebook来执行程序,需要在Termux和浏览器之间来回切换刷新才能显示结果。这样就会很麻烦了,那么有没有像电脑那样,在浏览器中运行jupyter notebook,写完代码,按执行,直接显结果,不需要来回切换环境呢?答案:是有的。我们只需要在手机中打开”设置“找到”应用启动管理“,然后把Termux应用的自动管理关闭,再打开允许后台活动的设置就行。如下图所示:

 这样就可以解决Termux和浏览器之间来回切换刷新才能显示结果的问题了。

测试:

 到此结束,本文如对你有所帮助,希望能加个关注,点个赞,收藏下,谢谢。

猜你喜欢

转载自blog.csdn.net/qq_39312146/article/details/125303644