趣味の一環でPythonを勉強しています。
Pythonは、もっとも人気が高い言語のひとつと言われていますが、エンジニアに転向しようとか、転職等で自身のキャリアの価値を高めようとか、業務改善に何かつなげようという気はあまりありません。
Pythonを勉強するのは、単純に子どものときからプログラミングに憧れているためであり、時々触っては遊ぶ程度で考えています。
「遊び」とはいえ、かじってはつまずき、かじってはつまずき、何度も挫折を繰り返してきました。
今回、あるブログで『Python1年生』が勉強するのに良い本であると読み、早速手に入れて試してみました。
結論から申しますと、『Python1年生』は、キリオのような素人にも分かりやすい内容でした。
しかし、『Python1年生』は途中までは順調に進んだものの、「第5章 人工知能くんと遊んでみよう」という章で、NumPyなどの外部ライブラリをインストールしますが、第5章で一時、挫折しかけました。
折れそうな心をおさえながら、ネットで調べたところ、なんとか解消する術をみいだすことができました。
この記事では、キリオと同じように『Python1年生』で勉強していて、NumPyのインストールに苦戦している方に向け、トラブル解消のヒントを共有したいと思います。
なお、キリオは、エンジニアでもなければ、プログラミングを習った経験がありません。
技術的な背景がある訳ではありませんので、この記事が、必ずしもインストールができないケースに対し、全てにあてはまるかどうか保証はできませんが、ひとつの事例として参考にしていただければ幸いです。
NumPy等の外部ライブラリがうまくインストールができない場合、Pythonを最新版ではなく、一つ前のバージョンをインストールすることによって、NumPyをインストールできる可能性があります。
Pythonを勉強する理由
キリオは経理でエンジニアではありません。
しかし、子どもの頃からプログラミングに興味があり、憧れ続けてきました。
プログラミングの能力や適正があるかどうか自分自身では分かりませんが、大人になって学ぶうえで何が良い言語か迷っていたところ、比較的覚えやすい言語として出会ったのが、Pythonでした。
プログラミングの勉強が続かない理由
しかし、今まで何度か入門書にチャレンジをしても勉強が続きませんでした。チャレンジしては止め、チャレンジしては止め、挫折の繰り返しです。
挫折する理由は、自分なりに振り返りますと以下のような理由だと思います。
- 入門書は多少のプログラムやアプリなども作るのですが、どうしても基本部分の解説に終始してしまい、退屈に感じる一方、結局、覚えられず頭に残らない。
- 難しい本は、読んでもさっぱり内容が理解できず、チンプンカンプンでついていかれない。
- 本で書いてある内容とPCの環境がしばしば異なっていて、どうしたらよいのか途方にくれ、結局ついていけなくなる。
Python1年生
『Python1年生』は入門書として、フタバちゃんとヤギ博士の会話形式で進み、初心者にも分かりやくなっています。
また、初心者にも今何かと話題の機械学習や人工知能までチャレンジしてみようというコンセプトも魅力的です。
実際、人工知能や機械学習という分野は内容が難しいでしょうし、素人がちょっとやそっとかじる程度では、簡単に理解できる代物ではないことも重々承知しています。
人工知能や機械学習に関するプログラムは、素人にとって所詮「写経」にすぎないのかもしれません。
しかし、好奇心をくすぐられワクワクさせられますし、実際に人口知能や機械学習というものが、どのようなことなのか実際手を動かして体験できる点が素晴らしいです。
ですので、是非おススメの一冊です。
第5章 人工知能くんと遊んでみよう
『Python1年生』を読み進めますと、第4章まではそれほど難なく、快調にキリオも進められました。
ところが、「第5章 人工知能くんと遊んでみよう」に入り、いよいよ機械学習を学ぼうというところで、「事件」は起きました。
まず第5章では、以下の4つの外部ライブラリをインストールしなければなりません。
各ライブラリの説明は、『Python1年生』の説明によるものです。
NumPy
ナンパイといい、いろいろな数値計算処理が入っているライブラリです。画像データを数値リストに変換するときに使います。
SciPy
サイパイといい、科学計算のライブラリです。Scikit-learnが計算するときに使う計算処理が入っています。
scikit-learn
サイキット・ラーンといい、機械学習のためのライブラリです。たくさんの学習用の画像データを使って学習し、与えられた画像を見て答えを予想する仕組みです。
Matplotlib
マットプロットリブと読み、数値データをグラフとして表示させる仕組みが入ったライブラリです。数値リストデータを、画像として表示させるときに使います。
Windowsでのインストール方法
キリオのPCはWindowsですが、『Python1年生』によるとWindowsでインストールするには、コマンドプロンプトを開き、以下の命令を入力すれば、インストールできると解説されています。
コマンドプロンプトを開くには、Windows10の場合、左下の「ここに入力して検索」欄に「CMD」と入力します。
py -m pip install numpy
py -m pip install scipy
py -m pip install scikit-learn
py -m pip install mataplotlib
しかし、キリオがコマンドプロンプトに上記の命令のうち、NumPyをインストールしようと一生懸命入力しても、下記のようにエラーとなります…。
エラーが出てしまい、えー!?また…なぜ??となりました。
今までのように、『Python1年生』もまた途中で挫折か…という思いが頭をよぎりました。
周りには気軽に教えてくれる人もいないのですが、ここで諦めるのにはもったいないということで、ネットであらんかぎり思いつくキーワードで検索し、解決方法を探りました。
深夜、眠い目をこすりながらいろいろな記事を探し、ついにようやくあるブログの記事にたどり着きました。
そのブログでは、次のようなことが書かれていました。
「 NumPyなどのデータ分析によく用いられるライブラリのインストールは、ビルド済みのファイルが準備されているおかげで通常はスムーズにインストールできます。
しかし、Pythonのバージョンがアップグレードしたばかりの時点では、まだビルド済みのファイルが準備されていない場合があります。」
https://gammasoft.jp/support/pip-install-error/
ん!?技術的背景が乏しいキリオには100%理解できないところもありますが、どうもPythonのバージョンが新しいと、外部ライブラリは必ずしも対応しておらず、インストールできない!?と読めるではありませんか!
実際、自分がインストールをしたPythonのバージョンを調べたところ、3.10でした。
公式Pythonのダウンロードのサイトを確認しますと、3.10は2021年10月にリリースされています。
そこで、試しに公式Pythonのダウンロードのサイトにいって、一つ前のバージョンの3.9をインストールしてみました。
その後、気を取り直してNumPyをインストールしてみました。
この場合、最新版のPythonが3.10ですから、3.9の方に外部ライブラリを入れてあげる必要がありますが、コマンドプロンプトには次のように入力します。
py -m 3.9 pip install numpy
コマンドプロンプトに上記の命令を入力しまして、まただめかな…と半ばあきらめかけていると、画面が変わりました。
やりました!! お!!なんと、うまくいったではないですか!
おめでとうございます!
ようやく、無事NumPyをインストールできたので、とても興奮しました。
さらに、他のライブラリのSciPy、scikit-learn、Matplotlibも同様に行ったところ、それぞれ無事にインストールできました。
人口知能アプリ「チノ」を完成
結局、外部ライブラリは、すぐにはPythonのバージョンに連動するわけではないため、Pythonのバージョンを下げればインストールできることがわかりました。
「第5章 人工知能くんと遊んでみよう」の最後では、「チノ」というアプリを作成します。
「チノ」は、ユーザーが「手書きの数字の画像ファイル」を指定すると、その画像に書かれている数字を認識して答えてくれるアプリです。
もちろん、こちらもキリオの場合、プログラムは全て理解できているわけではありませんので、当然写経となりますが、それでもキリオでも無事「チノ」を作ることができました。
以下のように、画像の数値を認識することができます。
IDLEから「チノ」のプログラムを立ち上げ、実行(Run Module)します。
「チノ」が立ち上がります。
画像ファイルを取り込んであげます。「5」の数字ファイルを選んであげます。(画像ファイルについては、出版社である翔泳社のサポートページからダウンロードした画像ファイルを使用しています。)
すると…
「チノ」の方が、画像を認識して、「この画像は5です!」と答えてくれます。
本質的な理屈を理解ができるかは別ですが、機械学習がどのようなものか、この「チノ」を通じて体験でき楽しかったです。機械学習てすごいですね。(^O^)/
興味がある方は是非チャレンジしてみてはいかがでしょうか。
まとめ
今回の記事は、いつもとはやや趣向を変え、『Python1年生』で、キリオがつまずいたNumPy等の外部ライブラリのインストールのエラーの対処方法のヒントを書いてみました。
『Python1年生』の「第5章 人工知能くんと遊んでみよう」の外部ライブラリのインストールでつまずいている方は、Pythonのバージョンが新しく外部ライブラリが対応していない可能性があり、一つ前のバージョンのPythonに下げてから外部ライブラリをインストールすれば、インストールができる可能性があります。
『Python1年生』は楽しいですので、途中で諦めるのはもったいないです。
もしインストールができず困っている場合は、Pythonを一つ前のバージョンに下げて試してみてはいかがでしょうか。