PaizaのPythonの機械学習入門講座が、8月26日(日)まで無料だったとは...
⇧ 第二次とかの予定もあるのかしら?
⇧ とりあえず、受講した感想としては、機械学習するには事前に結構データとかを用意しないといけないようで、そのへんのデータを用意するのが大変そうな気が...。
⇧ 少ないデータでも、2000枚ぐらいの画像は用意しないとマズイようです...オーマイガー!
というわけで、まずは、Windows上でのPython環境の構築にトライ。
Kubernetesの調査は...すみません、時間を見つけて調べていきたいと思います。
Windowsは除け者?
Pythonにおいても、環境構築に関してはWindowsには優しくないようです。で、Windowsの場合、
「WinPython」
「Anaconda」
⇧ のどちらかをインストールするのが手っ取り早いようです。
ただ、「Anaconda」に関しては、独自の環境になってしまい、Pythonのパッケージ管理ツールであるpipとで、パッケージの管理に差異が出てきてしまうようです。
pipenvの存在
Pythonでは、プロジェクトごとに異なるパッケージで構成された環境を複数用意したい場合に、「仮想環境」という機能を利用するそうです。
仮想環境を実現するための方法はpyenv, venv, virtualenv等いくつかあり、混乱のもととなっていましたが、Python 3.3 以降はvenvがPython標準機能として組み込まれています。
それと、パッケージ管理ツールのpip。
また、Pythonでは多くのパッケージをインストールすることで機能を追加していくことができますが、インストール・管理を支援するツールとして、Python 3.4 以降はpipが標準で組み込まれています。
その2つを合わせたものが、
venvとpipを組み合わせて一層使いやすくしたソリューションとして、現在pipenvがPython.org推奨として提供されており、これからの環境構築はこれを使うのが最適と考えられます。
⇧ 上記サイト様によりますと、「pipenv」というものらしいです。
まずは、ChocolateyでPython 3系をインストール
何はともあれ、「WinPython」「Anaconda」などを利用しない場合は、まず、Pythonをインストールするところからですかね。
いまのとこ、Pythonには、
で、2系か、3系が存在するのですが、2系のサポートが 2020年に終了することもあり、いまからPythonに取り組む場合は、3系で始めるのが間違いないかと。
⇧ 上記サイト様を参考に構築していきたいと思います。なので、Visual Studio Codeというテキストエディターも利用していきますので、インストールされてない方は、
⇧ 上記サイト様を参考にインストールしてみてください。
Chocolateyを利用する場合は、Chocolateyのインストールもお忘れなく。
では、コマンドプロンプトを起動して、
choco list python
python 3.7.0をインストールしたいと思います。
choco install python 3.7.0
管理者権限でないと駄目なようなので、一旦、「N」でキャンセル。
コマンドプロンプトを管理者権限で起動し、
choco install python 3.7.0
設定とかもいろいろやってくれる感じ?「Y」で。
インストールできた~
と思いきや、何かエラー。
どうやら、Chocolateyの使い方を誤っていたようです。
choco install nodejs.install --version 0.10.35
⇧ 上記サイト様によりますと、バージョン指定する場合は、
choco install {packageName} --version {Verison}
としなければいけなかったようです。
また、バージョンをダウングレードする場合は、--forceオプションが必要みたいですね。
Rubyなんかのように、複数バージョンをインストールしたい場合は、
choco install ruby --version 1.9.3.55100 -my
choco install ruby --version 2.0.0.59800 -my
choco install ruby --version 2.1.5 -my
What is -my
? See option bundling in how to pass arguments
⇧ でいけるようです。
Pythonも複数バージョンのインストール方法でやった方が良かったのかな?
バージョン指定で、再度インストールしたらば、
駄目ですやん...、何か、--forceオプションか、upgradeして、みたい。
choco install python --version 3.7.0 --force --force-dependencies
おりゃ~、「Y」でEnter。
さらに、「Y」でEnter。
今度は、OKっぽいですね。
コマンドプロンプトを起動し、インストールされたか確認。
⇧ 上記サイト様を参考に、Pythonのバージョン確認。
python3 --version
⇧ はい、パスが通ってないのかな~。
コマンドプロンプト、もしくは、Powershellで「refreshenv」と実行すれば良いらしい。
駄目ですけど?
と思ったら、コマンドプロンプトを再起動して、
python --version
でいけたっぽい。なんかPythonの仕様が変わったのかな?
ちなみに、環境変数にパスも追加されてました。たぶん、「refreshenv」で。
pipenvのインストールと環境変数の調整
Pythonが使えるようになったので、pip(Python 3.4 から標準でインストールされる)を使ってpipenvをインストールしていきます。
Python 3.7.0に同梱されたpipのバージョンは、10.0.1みたいです。
では、pipenvをインストール。
pip install pipenv
⇧ とりあえず、インストールできたみたい。
なんか、pipのバージョンを上げられるらしいので、上げときますか。
⇧ 上記サイト様によりますと、Python関連のリリースが加速してるそうな...そんなに生き急がれてもね...
おりゃ~。
python -m pip install --upgrade pip
⇧ pipのバージョンが更新されました~。
Pythonの仮想環境をプロジェクトのディレクトリ毎にインストールできるように環境変数を追加します。
PIPENV_VENV_IN_PROJECT : true
「変数名(N):」「変数値(V):」を入力し、「OK」。
追加されました。
pipenvのインストールできたようです。
Visual Studio Codeの設定
Visual Studio Codeを起ち上げて、
まずは、Visual Studio CodeでPythonのための拡張機能である「Python Extension Pack」を追加します。
⇧ 現在は非推奨らしいので、後半でアンインストールします。
をクリックし、「Python Extension Pack」を検索します。
そしたらば、インストール。
続きまして、Pythonの仮想環境を、Visual Studio Codeで利用できるように設定します。
「ファイル(F)」>「基本設定(P)」>「設定(S)」を選択。
プロジェクトディレクトリにできる「.venv」(Pythonの仮想環境。通常は、ユーザーのホームディレクトリ配下に作成されるらしい)までのパスを登録することで、Pythonの仮想環境が利用できるようになるようです。
"python.venvPath": ".venv"
で、保存。
実際にプロジェクトを作成
適当な場所にプロジェクトのためのディレクトリを作成。
作成したディレクトリをVisual Studio Codeで開きます。
そしたらば、「表示(V)」>「統合ターミナル(I)」を選択。
プロジェクトのディレクトリを基点として、PowerShellが起動するので、
下記コマンドを実行。
pipenv --python <Pythonのバージョン>
⇧ はい、エラー。 PowerShellではパスが通ってないらしい?と思ったら、
パスは通ってるらしい。
仕方がないので、「pipenv --python path\to\python」で。その前に、Visual Studio Codeを再起動しておきます。(なんか再起動しないと、「"python.venvPath": ".venv"」の設定が反映されないっぽい?...地味にむっちゃハマりました。)
で、今度こそ。Pythonのパスはインストールされた場所に合わせてください。Chocolateyでインストールした場合は、「C:¥Python37¥python.exe」かな。
pipenv --python C:\Python37\python.exe
⇧ 「.venv」がプロジェクトのディレクトリに作成されました。
Visual Stduio CodeでPythonのプロジェクトを実行するための設定
をクリック。
「構成の追加...」を選択。
「Python」を追加。
「launch.json」ファイルが作成され、エディター上で開かれます。
「"name": "python: Current File"」 のブロックに、
{ // IntelliSense を使用して利用可能な属性を学べます。 // 既存の属性の説明をホバーして表示します。 // 詳細情報は次を確認してください: https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", "configurations": [ { "name": "Python: Current File", "type": "python", "request": "launch", "program": "${file}" }, ...省略
下記のように、pythonのパスの設定を追記します。
{ // IntelliSense を使用して利用可能な属性を学べます。 // 既存の属性の説明をホバーして表示します。 // 詳細情報は次を確認してください: https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", "configurations": [ { "name": "Python: Current File", "type": "python", "request": "launch", "program": "${file}", "env": { "PYTHONPATH": "${workspaceFolder}" } }, ...省略
実行
そしたらば、
をクリックで、エクスプローラーに戻って、
をクリックし、適当なpythonのファイル(拡張子「.py」)を作成します。
で、いきなり、「Linter pylint is not...」 とか出てくるんですが...
なんでも、
⇧ 上記サイト様によりますと、PythonにおけるLint機能を実装するpylint がインストールされてないとか。
「Linter pylint is not...」のところの「Install」をクリックすると、インストールが始まって、
「Pipfile.lock」というファイルが無い場合は、作成されるようです。
「Pipfile」に「pylint」が追加されたようです。
というわけで、今度こそ、実行。「hello.py」が選択されてる状態で、デバッグで「python: Current File」となってる状態で、をクリック。
コンソールが表示され、「Hello!!! Python」と表示されて、Pythonが動いたのが確認できました。
機械学習に必要な定番ライブラリのインストールなど
Visual Studio Codeに導入した拡張機能の「Python Extension Pack」は、『Jupyter』も利用できるとありました。
ただ、「Python Extension Pack」は、
⇧ 上記サイト様によりますと、利用が非推奨らしいので 、アンインストールします。
「すべて」をクリック。
そしたらば、「拡張機能」で「Python」と検索し、「Python」をインストール。
続きまして、「拡張機能」で「Jupyter」と検索して、「Jupyter」をインストール。
そしたらば、「拡張機能」のところの、 をクリックし「インストール済みの拡張機能の表示」を選択。
インストール済みの拡張機能が確認できます。
⇧ これで、Visual Studio Codeで、PythonやPythonのライブラリであるJupyterが利用できるようになったようです。
そしたらば、エクスプローラーに移動し、「表示(V)」>「統合ターミナル(I)」を選択。
そしたらば、PythonのライブラリであるJupyterなどを、ターミナルからインストールするのですが、
⇧ 上記サイト様によりますと、Pythonの仮想環境にログインしてインストールする必要があるようです。
ちなみに、プロジェクトに「.venv」ってフォルダができてると思いますが、こいつが、Pythonの仮想環境らしいです。
で、ネット上だと、「pipenv shell」でPythonの仮想環境が起動できるってあったんだけど、ここでもWindows(PowerShell)の場合は対応してないのかは分からんですが、
見事に機能しない、残念過ぎる。
⇧ 上記サイト様によりますと、WindowsでPowerShelの場合は、Pythonの仮想環境ディレクトリの中にあるScriptsディレクトリの中の「activate.ps1」を実行すれば良いらしい。
Pythonの仮想環境の起動。
[Pythonの仮想環境ディレクトリ]\Scripts\activate.ps1
⇧ 仮想環境に切り替わったようです。
そしたら、
⇧ 上記サイト様を参考に、データ分析用の定番ライブラリをインストール。
pipenv install jupyter numpy scipy pandas scikit-learn keras tensorflow matplotlib seaborn
⇧ 「tensorflow」が見つからんと。 error出たせいかは分からんけど、後続の「matplotlib」「seaborn」のインストール処理がされとらんのだが...
⇧ 上記サイト様によりますと、2018年8月26日(日)現在、Python 3.7の場合、pipenvでインストールできるtensorflowは、wheel形式のものになってるらしい。
と思ったら、OS X(Mac)限定っぽいですね。駄目もとで試すも、
pipenv install --verbose https://storage.googleapis.com/tensorflow/mac/cpu/tensorflow-1.10.1-py3-none-any.whl
はい、エラー。
Windowsの場合、公式サイトの説明だと、
You must pick the mechanism by which you install TensorFlow. The supported choices are as follows:
- "native" pip
- Anaconda
⇧ 2018年8月26日(日)現在、pipenvでインストールできるとは書いてないんですよね、他のOSについても同じくって感じなんですが、皆さん、どういう根拠でpipenv使ってるのか分からず。
とりあえず、pipで。
pip install --upgrade tensorflow
⇧ インストールできたんですかね?
あと、「matplotlib」「seaborn」のインストール。
pipenv install matplotlib seaborn
⇧ インストールはできたらしいけど、警告が。
⇧ 上記サイト様によりますと、
pipenv lock --pre --clear
で、依存関係解決のキャッシュをクリアできるようです。
まったく変わっとらんのだが...pipenv、ネットで言われてるほど使えなくない?
とりあえず、インストールされたライブラリを確認。
pip list
⇧ 一応、インストールしようとしたライブラリは入ったっぽい。
Jupyter Notebookを使ってみる
たくさん、ライブラリをインストールしてしまったんですが、
⇧ 上記サイト様によりますと、Visual Studio Codeの場合は、拡張機能と、Python側で必要なライブラリをインストールすればOKとなっているので、 Jupyter Notebook自体は、おそらくライブラリとしては、Jupyterが入っていればOKかと。
使ってみますか。
エクスプローラーに移動すると、自分は更新を促されたので、「今すぐ更新」をクリックしました。表示されてなければ無視で。
でも、Visual Studio Codeの再起動はしたほうが良いかも。
そしたらば、「Hello.py」を編集。
import matplotlib.pyplot as plt import matplotlib as mpl import numpy as np x = np.linspace(0, 20, 100) plt.plot(x, np.sin(x)) plt.show()
ソースコードの先頭行に 、
#%%
を追記することで、「Run cell」というリンクが表示されるので、クリックすると、
選択肢が表示されます。今回は、初回なので、「Start a new Notebook」を選択。
ファイアーウォールの警告が出たら、「アクセスを許可する(A)」で。
結果が表示されました。It’s Jupyter NoteBook!
ブラウザ(Chromeのみ対応?)上で表示 するには、ターミナルで、プロジェクトのPythonの仮想環境にログインした状態で、
jupyter notebook
を実行。
サーバが起動して、ブラウザと接続されるようです。
サーバを止めるときは、Visual Studio Codeのターミナルで、Ctrl + Cで。
とりあえず、Jupyter Notebookを利用するとこまでチャレンジしてみました。相変わらず、Windows利用者にとってPythonを実装するには、優しくない気がしました。
Windowsの場合、Virtual Boxなどで仮想マシンを作成して、Linux環境を構築してPythonを始めるのが良さそうですかね。
Pythonの最新情報については、
⇧ 上記サイト様が詳しそうです。な、なんと、Python 3.8が既に出そうな感じらしいですね。
時間があるときに、tensorflowを試してみたいですね。
今回は、このへんで。