よちよちpython

独習 python/Qpython/Pydroid3/termux/Linux

【TermuxでPython】scipyのインストールができた

Termuxでscipyがなぜかインストールできたのでメモしておきます。



Android用のターミナル・アプリTermuxPythonライブラリのseabornをインストールしようとしましたところ、どうやらscipyも必要だったらしく自動でそのインストールも始まる。

じぁーが(鶴太郎の顔で)、
今まで何度かscipyのインストールを試みましたが上手く行っておりませんでした。案の定、seabornついでのscipyインストールも失敗した様子。赤い文字でエラーが吐かれた。



pip install scipyしても上手く行きません。numpysckit-learnOpenCVpip installでは寸なりできない。



Termux公式サイトのPython - Termux Wikiを参考にインストールを行ったら、何故か今回はインストールできた。
上記ページに次のように書かれた部分があるのでコピーします。

curl -LO https://its-pointless.github.io/setup-pointless-repo.sh bash setup-pointless-repo.sh

これをそのままコピーし、Termuxのシェルに貼り付けて実行します。



そうするとワチャワチャと何やらインストールが始まります。
途中で[Y/N]で尋ねられますが全てyでエンターを押しました。



おわったら、上記ページにあるように

pkg install numpy
pkg install scipy

でインストールします。
公式ドキュメントではnumpyも一緒にインストールしています。(numpyは既にインストール済みなので除外した。)



なんちゃらかんちゃら

Setting up scipy (1.6.0) ...
installing scipy

と出たのでインストールできたのだろう。



実行テスト

ちゃんと動くか試します。

コードはcolor mapの一覧をheatmapで(160個くらい画像があるので注意) - podhmo's diaryを拝借しました。seabornのcmapカラーマップの例をたくさん載せてあります。ありがとうございます。

from nbreversible import code
import pandas as pd
import numpy as np
import seaborn as sns

xs = np.arange(1, 10)
ys = np.arange(1, 10).reshape(9, 1)
m = xs * ys
df = pd.DataFrame(m)

s = sns.heatmap(df, cmap='Blues')

# 画像保存
fig = s.get_figure()
fig.savefig("seaborn.jpg")

f:id:chayarokurokuro:20210228063726j:plain

よし、行けた!👌



【追記】
scipyが動くか確認するのを忘れていたw
y=2x を0から5まで積分した値を出す。横5、縦2*5=10の直角三角形の面積を求める問題と同じ。

from scipy import integrate

def func(x):
    return 2*x

result, err = integrate.quad(func, 0,5)

print("result:", result)
print("err:", err)
result: 25.0
err: 2.7755575615628914e-13

こんな簡単な計算でも出力までに時間が掛かった。1秒ぐらい。



scipyも動いたということで👌
【追記おわり】



なぜ今回インストールできたのかは、わからない…




参考リンク



F-Droid版Termuxの導入とPython3.10、Numpy、Pandas、matplotlib等のインストール方法について AndroidにTermuxとPythonをF-Droidから再インストールした(2021年12月 - よちよちpython