LogoMark.png

Python の変更点


#author("2023-09-04T15:58:46+09:00;2023-09-04T13:13:46+09:00","default:inoue.ko","inoue.ko")
#author("2023-09-04T16:00:35+09:00;2023-09-04T15:58:46+09:00","default:inoue.ko","inoue.ko")
*Python
https://www.python.org/
~

Pythonはさまざまな分野のアプリケーションで使われているインタープリタ型のプログラミング言語です。クリーンで読みやすい文法、手続き型のコードによる自然な表現、直感的なオブジェクト指向、事実上すべてのタスクをこなせる広範な標準ライブラリとサードパーティのモジュール、アプリケーションに組み込んでスクリプトインタフェースとして利用することが可能・・など様々な利点があります。

Google社においても C++、 java と並ぶ3大言語のひとつとして位置づけられていて、Googleが公開している人工知能のAPI [[TensorFlow>Google:TensorFlow]] も Python のライブラリのひとつとして位置付けられています。

開発環境を含めて[[オープンソース>OpenSource]]です。無償でダウンロード>インストールして利用することができます。
~

***CONTENTS
#contents2_1
~
~


**はじめに
***Python の現在
-言語としてのランキング情報は以下
--[[IEEE|Top Programming Languages>https://spectrum.ieee.org/top-programming-languages/]]
--[[PYPL|PopularitY of Programming Language index>http://pypl.github.io/PYPL.html]]
--[[RedMonk|Language Rankings>https://redmonk.com/latest-research/]]
--[[Stack Overflow|Tags>https://stackoverflow.com/tags?]]

-以下のようなサイト(Webアプリ)が Python で構築されています。
 Youtube / Instagram / Pinterest / Dropbox
[[Wikipedia:Pythonを使っている製品あるいはソフトウェアの一覧]]
~

***各種配布元
-Python https://www.python.org/
-Python Japan https://www.python.jp/

-関連ツール
--VS Code https://code.visualstudio.com/ 
--Python IDLE https://www.python.org/
--Jupyter Notebook https://jupyter.org/
--Anaconda https://www.anaconda.com/
--Google Corabolatery https://colab.research.google.com/
注)詳細は後述
~

//***公式サイト上でPythonを試す
//[[公式サイト>https://www.python.org/]] の画面上で黄色のボタンをクリックすると(左下図)、仮想コンソールが起動します。右下図のように、その動作を試すことができます。
//&image(pythonSC01.jpg,,35%); &image(pythonSC02.jpg,,50%);
//~

***入門サイト
-[[Pytohnチュートリアル>https://docs.python.jp/3/tutorial/index.html]]
-[[PythonWeb>https://www.pythonweb.jp/]]
-[[ドットインストール Python3>https://dotinstall.com/lessons/basic_python_v3]]
-[[Pythonでゲーム制作入門>http://gamepro.blog.jp/python/introduction]]
~
~

**開発環境の準備

***様々な開発環境
開発環境は、クラウドサービス(Google Colaboratory)を使った開発と、ローカルPC上での開発と、大きく2つに分けられます。データサイエンス等の学習には、Google Colaboratory をお薦めします(Googleアカウントがあれば、すぐに体験できます)。一方、GUIベースのインタラクティブなアプリケーションの開発には、ローカルPC上に開発環境をインストールする必要があります。

-クラウド上での開発
--''[[GoogleColaboratory]] の利用'' 

-ローカルPC上での開発
--Python IDLE の利用(Pythonのインストール時に同梱)
--PyCharm(Community版はオープンソース) の利用
--VS Codeで Python機能拡張を利用
--Jupyter Notebook / Jupyter Lab( IPython )の利用
--Anaconda  統合開発環境の利用
--Terminal(Windows のコンソール)から利用

以下、順に解説します。
~
~

**クラウド上での開発
開発環境をクラウド上に準備する方法としては __[[GoogleColaboratory]]__ の利用がお薦めです。Googleアカウントがあれば誰でも無料で利用できます。
~

***Google Colaboratory を利用する
[[GoogleColaboratory]] とは、Googleの仮想マシン上で動くIPythonの実行環境で、[[Jupyter Notebook>https://jupyter.org]] を利用します。
https://colab.research.google.com

記事を独立させました。> __[[GoogleColaboratory]]__
~
~

**ローカルPC上での開発

***Python のインストール
はじめに、自身のPCに最新の Python をインストールする必要があります。
-公式サイトから自身の環境に合うものを選んでインストールして下さい。
https://www.python.org/

~

***Macを利用している方へ
MacOSではシステムスクリプトやサードパーティアプリケーションが Python 2系に依存している場合があるため、2022年現在、デフォルトで Python 2がプリインストールされいます。ただ、現在の主要なバージョンは Python 3系で、今後の開発には Python 3 の利用が推奨されます。

上記サイトから Python のインストールを行うと、Python3系がインストールされるので、2系と3系を区別しなければならない場合が生じます。
公式サイトから最新のPython を選ぶと、Python3系がインストールされて、2系と3系が共存する状態になるので、注意が必要です。

同梱の IDLE では自動的に Python3 の環境が選択されますが、特に [[Terminal]] でコマンド操作をする場合は、以下のような違いがあることを知っておいて下さい。Pythonのインストール後、つまり2系と3系が共存している場合です。
-python コマンドでは、2系が利用されます(バージョン確認の例)
 % python -V 
 Python 2.7.18
-python3 コマンドを使うことで、3系が利用されます。
 % python3 -V
 Python 3.11.5
-python3系の開発でのパッケージのインストールには、pip コマンドではなく、pip3を使う必要があります。
 pip3 install pygame
~

***Python IDLE を利用する場合
[[公式サイト>https://www.python.org/]]で配布されている標準的な開発環境(IDLE)で、Pythonのインストール時に同時にインストールされます。アプリケーションメニューの Pythonフォルダ にある ''IDLE'' をダブルクリックすると起動します。

-起動時に立ち上がるのは、Pythonシェルという対話型の環境で、>>> で指し示されている箇所に、 Python のコードを入力して Enter キーを入力することで入力した Python コードが実行されます。

-一般的なサンプルを体験するには
--File > New で新規ファイルを開いてコードを記述
--File > Save As で xxxx.py の形式で保存
--RUN でプログラムが実行
---CUI プログラムの場合は、Pythonシェルに実行結果が表示されます。
---GUI プログラムの場合は、ウインドウが開いて動きます。

-[[Google:Python IDLE 使い方]]

//Terminalで確認すると以下の場所に存在することがわかります。
// $ whitch python3  ← Terminal でコマンドの所在を確認
// /Library/Frameworks/Python.framework/Versions/3.8/bin/python3
~

***PyCharm を利用する場合
PyCharmは、ジェットブレインズによって開発されたPythonの統合開発環境 (IDE)で、2023年現在、Python の開発環境としては、シェアNo.1 となっているようです。

-以下から、ダウンロードしてインストールできます。Pro版は有料です。学習をはじめるにあたっては、オープンソースとして開発されている Community版を選んでインストールすることをお勧めします。
> https://www.jetbrains.com/ja-jp/pycharm/download/
ページの下の方にあるのが Community 版です。

-使い方については、以下のようなサイトをご覧下さい。
--総合的なヘルプ記事
https://pleiades.io/help/pycharm/getting-started.html
--初心者向け|PyCharmの使い方(新規プロジェクト作成~実行まで)
https://python-hack.net/how-to-use-pycharm/
--ライブラリのインストール方法
https://miyabikno-jobs.com/pc/pycharm-pip-summary/

~

***VS Code を利用する場合
以下の公式サイトから、自身の環境に合うものをインストールして下さい。
https://code.visualstudio.com/Download
&small(Macの場合は、解凍したもの(アイコン)をアプリケーションフォルダへ移動して下さい。);

__[[VS Code(Visual Studio Code)>VisualStudioCode]]__は、様々なプログラミング言語に機能を対応した機能拡張が可能な [[TextEditor]] で、Python 拡張機能を追加することで、快適な開発環境となります。

-VS Code のメニューから [表示] > [拡張機能] を選択
-[拡張機能] ビューの上部にある [検索] ボックスに「python」と入力
-[インストール] を選択

-以下、作業の要点です。
--任意の場所に開発フォルダを準備
--VS Code の左ツールバーの [Explorer] から当該フォルダを選択
--New File で新規ファイルネームと xxxx.py の形式で作成すると、自動的に Python のファイルと認識されます。
--プログラムを書いて保存 > 開発フォルダ内に xxxx.py が見えるはずです。
--実行は、右上の [▶︎](RUN)で行うことができます。

#image(VSCode.jpg,right,30%)
-テキストベースのプログラムの場合、画面下の TERMINAL ウインドウに結果が表示されます。
-ウインドウベースのプログラムの場合は、GUI のウインドウが開きます。
-ちなみに、右図の SpaceInvaders のプログラムは、以下から MITライセンスで公開されています。
https://github.com/leerob/space-invaders

&aname(IDLE);
~



***Jupyter Notebook / Jupyter Lab を利用する場合
Jupyter Notebook / Jupyter Lab は、IPython というカーネルと、Notebook または Lab という Web UI をセットにした開発環境で、ブラウザ上でデータ処理とコメントなどを順次ノート形式で記録できるようにしたものです。ブラウザを動作基盤とした Webアプリケーションなので、環境に依存しない開発が可能です。 

IPython(アイパイソン)は Python を対話的に実行するためのシェルで、Python の機能の一部(対話処理)に、対話を強化する各種機能を追加したもの・・というイメージです。統計処理(データ読む>分析する>結果をグラフで表示する)など、作業を逐次的に進めていくプログラムの開発に向いています。

-Jupyter Notebook のインストールは [[Terminal]] から pip コマンドで行います。
 $ pip3 install jupyter(2系の場合はpip)

-起動も [[Terminal]] から行います。
 $ jupyter notebook 

-''Webブラウザが開発基盤となります''
jupyter notebook は、起動と同時にローカルサーバーとブラウザが同時に起動して、以下のようなアドレスで接続表示されます。
 http://localhost:8888/tree (Xampp デフォルトのローカルポート)
ブラウザ自体が開発環境となり、[QUIT] で終了するまで、Terminalの方は「音信不通」の状態になります。

注)''.html''拡張子 に対するアプリケーションの割付が「ブラウザ」になっていることが必要です。.html のダブルクリックでエディタが開くような割付設定を行なっていると、Notebookがうまく起動できないので注意して下さい。

-参考:Jupyter Notebookの公開について
分析の結果(JupyterNotebook)を他者に見せたい場合はどうするか・・
 JupyterNotebook のデータ(.ipynb)ファイルは、[[JSON]] 形式のテキストファイルなので、そのままだと意味不明の状態です。これを開発中のノート形式と同様に閲覧できるようにするには・・・
--[[GitHub]] にファイルを置く
GitHub には、.ipynb をレンダリングする機能があるので、リポジトリに置かれたファイルはノート形式で閲覧できます(ただし現状では時々エラー)
--[[nbviewer>https://nbviewer.org/]] でGitHub のファイルをレンダリング
nbviewer のレンダリングは優秀なので、こちらのサイトに誘導してリンク公開するとスムーズです。
~

***Anaconda を利用する場合
Anaconda はデータサイエンス向けの統合開発環境で、科学技術計算などを中心とした数多くのモジュールやツールが独自の形式でパッケージされています。ソースコードエディターはもちろん、Python 2系、3系を仮想環境を分けて利用できるなど、様々な活用が可能です(ディスク領域は1GB以上使います)。

-公式サイト
https://www.anaconda.com/
-以下に、インストール情報があります。
--https://www.python.jp/install/anaconda/index.html
--[[Google:Anaconda インストール]]

-メニューの Environments から 3系を使う環境、2系を使う環境、Rを使う環境など、目的に応じた仮想環境をつくることができます。仮装環境ごとに各種開発パッケージやターミナルの起動が可能です。

-Python は様々なライブラリーを活用するのが前提です。Anaconda があれば、Environments のメニューから、環境にあったライブラリをインストールする作業が簡単に実行できます。

-GUI画面で必要なライブラリが見つからない場合は、Environments の ▶︎ から Open Terminal で[[ターミナル>Terminal]]を開いて(pip コマンドは使わず)conda コマンドでパッケージをインストールします。以下、例です。
//#image(pip.png,right,30%)
 $ conda install [ ライブラリ名 ]
#clear

-Anaconda での基本コマンド
Environments の ▶︎ から Open Terminal で、専用ターミナルを開いてから以下のコマンドが使えます。
--Anaconda自体のアップデート
 $ conda update -n base conda
--Anacondaの全パッケージのアップデート
 $ conda update --all
--Anacondaの特定のパッケージ(例:pandas)のアップデート
 $ conda update pandas

-''注意点''
--&color(blue){Terminal環境を利用する方、また、シンプルに学習したい場合は、Anaconda のインストールは控えた方がいいかもしれません。以下のとおり、無難に扱うには、それなりに学習コストがかかります。};
--Anaconda のインストール先は、ホームディレクトリ直下です。
 /user/(ユーザ名)/anaconda3
インストール時に「自分専用にインストール」を選んでください。
「この場所にはインストールできません」と出て、「続ける」が押下できないことがありますが、「自分専用」のところを再度クリックすると、警告が消えてインストールできます。
--Anaconda は一部に独自技術を使用しているため、公式パッケージにはあっても Anaconda では利用できないものがあります。また標準的な Pythonの 仮想環境を利用しないため、通常であれば pip コマンドでインストールする作業も、Anaconda を使用する場合は、専用の Conda コマンド を使う必要があります。
--OS がデフォルトで提供する機能に干渉したり、Homebrew との相性が悪いなどの問題もあるので、Anaconda と Terminal環境の併用は避けるのが賢明です。
参考:http://onoz000.hatenablog.com/entry/2018/02/11/142347
~

***Mac の Terminal
Pythonがインストールされていれば、[[Terminal]] で体験することができます。開発に必要なのは、プログラムを書くための[[テキストエディタ>TextEditor]]のみです。あとは Terminal からのコマンド入力で動きます。以下、手順の例です。

-1) テキストエディタで Python のプログラムを書く
-2) sample.py として保存(場所は Terminal のカレントディレクトリ)
-3) Terminal から、以下のようにコマンド入力するとプログラムが動きます。
 $ python sample.py
 $ python3 sample.py(Python3 の場合)

-以下のページに、もう少し具体的な説明を記載しています。
__[[Python/TerminalSample]]__


&aname(Library);
~
~

**Python ツール・ライブラリ
***ツール・ライブラリ等のインストール
Terminal からのインストールには、pip3(2系は pip)を使います。以下のように、コマンド入力はいたって簡単です。
 $ pip3 install pygame ← ゲーム開発用のライブラリ
 $ pip3 install pyopengl ← 3DCG用のグラフィックライブラリ
 $ pip3 install jupyter ← jupyter notebook
 $ pip3 install orange3 ← データマイニングツール Orange3
~

***ライブラリ紹介
-''Webアプリケーション''
--[[Django>https://www.djangoproject.com/]]:The web framework for perfectionists with deadlines.
[[Django Girls チュートリアル>https://tutorial.djangogirls.org/ja/]]

-''データ解析/分析'':以下のようなツールやライブラリがあります。
--[[NumPy>http://www.numpy.org/]]:行列演算等の数値計算モジュール(修正BSD)
--[[SciPy>https://www.scipy.org/]]:NumPyベースの数値解析(New BSD)
--[[Pandas>https://pandas.pydata.org/]]:データ解析用ライブラリ(BSD)
--[[matplotlib>https://matplotlib.org/]]:NumPyのためのグラフ描画ライブラリ(BSD)
--[[seaborn>https://seaborn.pydata.org/]]:matplotlibベースのビジュアライゼーションライブラリ(BSD)
--[[graph-tool>https://graph-tool.skewed.de/]]:グラフの操作および統計解析(GPL)
--[[scikit-learn>http://scikit-learn.org/stable/]]:NumPy, Matplotlib 互換の機械学習ライブラリ(BSD)
詳細:[[scikit-learn]]
--[[TensorFlow>https://www.tensorflow.org/]]:機械学習用ライブラリ(Apache License 2.0 by Google)
--[[Keras>https://keras.io/ja/]]:ニューラルネットワークライブラリ(MIT)

-''人工知能'':以下のようなツールやライブラリがあります。
--TensorFlow https://www.tensorflow.org/
--Keras https://keras.io/ja/
--Chainer http://chainer.org/
--Caffe http://caffe.berkeleyvision.org/
--Theano http://deeplearning.net/software/theano/index.html
--Torch http://torch.ch/
--scikit-learn http://scikit-learn.org/stable/
--PyML http://pyml.sourceforge.net/
--Pylearn2 http://deeplearning.net/software/pylearn2/
--PyBrain http://pybrain.org/pages/home

-''Game'':プログラミングを楽しく体験
--Pygame https://www.pygame.org/
--Pygame Zero https://pygame-zero.readthedocs.io/ja/latest/index.html

~

***インストール済みライブラリの確認
以下のコマンドで確認できます
 $ pip3 list
 Package            Version
 ------------------ -----------
 ipykernel          5.3.0
 ipython            7.16.1
 jupyter            1.0.0
 jupyter-client     6.1.5
 jupyter-console    6.1.0
 jupyter-core       4.6.3
 matplotlib         3.2.2
 notebook           6.0.3
 numpy              1.19.0
 pandas             1.0.5
 pip                20.1.1
  :
~

***ライブラリ・パッケージ・モジュール
-モジュールとは Pythonファイル(.py)のことで、ここでは最小単位です。
保存された.pyファイルは、他のPythonのプログラムから import で呼び出して使うことも出来ます。通常、このモジュールの中には、いくつかのクラスや関数が含まれています。
 
-パッケージとは、そのモジュールをいくつか集めてまとめたものです。
 
-ライブラリとは、いくつかのパッケージをまとめて一つのライブラリとしてインストールできるようにしたものです。

-''import 文の書き方''
--import pandas as pd
--import matplotlib.pyplot as plt
--from matplotlib import pyplot as plt
~
~

**APPENDIX
***Python 禅
Python 禅(The Zen of Python)は、Pythonプログラマが持つべき心構えを簡潔にまとめたものです。"Zen"は日本語の「禅」。Pythonインタプリタ環境で import コマンドを以下のようにタイプするとその文章を読むことができます。 
 $ python3
 Python 3.8.2・・・
 >>> import this
 The Zen of Python, by Tim Peters
 
 Beautiful is better than ugly.
 Explicit is better than implicit.
 Simple is better than complex.
 Complex is better than complicated.
 Flat is better than nested.
 Sparse is better than dense.
 Readability counts.
 Special cases aren't special enough to break the rules.
 Although practicality beats purity.
 Errors should never pass silently.
 Unless explicitly silenced.
 In the face of ambiguity, refuse the temptation to guess.
 There should be one-- and preferably only one --obvious way to do it.
 Although that way may not be obvious at first unless you're Dutch.
 Now is better than never.
 Although never is often better than *right* now.
 If the implementation is hard to explain, it's a bad idea.
 If the implementation is easy to explain, it may be a good idea.
 Namespaces are one honking great idea -- let's do more of those!
~
~
**古い記事
***Python のインストールについて(Mac)
Pythonには、2系と3系があって、これらは互換性がありません。これから学習する方は3系の利用をおすすめします

Macの場合は Python2系(OS X 10.7 〜 macOS 11)あるいは Python3系(それ以降)のいずれかが、すでにインストール済みです。[[Terminal]]で以下のようにタイプしてみて下さい。
 python --version

Python 3.XX.XX のかたちで表示された場合は、すでにインストール済みです。 

Python 2.7.XX と表示された場合は、さらに以下のようにタイプして下さい。 
 python3 --version
-Python 3.XX.XX が表示された場合は、Python3もインストール済みです。
-python3: command not found と表示された場合はPython3系のインストールが必要です。以下からインストールしてください。
https://www.python.org/downloads/ 基本 IDE含む
~
~