Python はじめから勉強 Hour8：パッケージの利用

# Python はじめから勉強 Hour8：パッケージの利用

* Pythonで何かしようとしたときに、まずサンプルスクリプトを探してなんとなく実行してた私が、
* 自動実行でREST API叩いて、結果の確認、VM操作までやってみたいと思う7時間
* と思ってたら7時間を超えて10回になりそうです。
* 今回はモジュールの利用。モジュールを使うことで品質が高く、クイックにコードを作成することができますね。やっとここまで来たよ

## 学習資料

* たった 1日で基本が身に付く！ Python超入門 
  * https://a.r10.to/hbHMiv



## 過去の投稿

* [Python はじめから勉強 Hour1：Hello World](https://qiita.com/matsumo2019/items/5a69381f44456e6e6a5d)
* [Python はじめから勉強 Hour2：制御文](https://qiita.com/matsumo2019/items/6daa862fd34c8929fb65)
* [Python はじめから勉強 Hour3：関数](https://qiita.com/matsumo2019/items/6c63c737c27e51000f79)
* [Python はじめから勉強 Hour4：オブジェクト指向①](https://qiita.com/matsumo2019/items/b4e083b804590fcdf0d1)
* [Python はじめから勉強 Hour5：オブジェクト指向②](https://qiita.com/matsumo2019/items/5d429147ae44d81a69da)
* [Python はじめから勉強 Hour6：よく使うデータ型：タプル型・セット型・辞書型](https://qiita.com/matsumo2019/items/378009f0d65521c083df)
* [Python はじめから勉強 Hour7：クラスの使い方](https://qiita.com/matsumo2019/items/366bfd7e1dfbc06c89ab)
* Python はじめから勉強 Hour8：パッケージの利用
* Python はじめから勉強 Hour9：ファイルの読み書きと例外処理
* Python はじめから勉強 Hour10：アプリケーションの作成



## 環境

* Windows
* Python Ver3系



## パッケージを使う目的

* 今までは、Python本体の組み込みモジュールや標準ライブラリをしようしてきました。print()とかramdomとか
* 組み込みモジュールや標準ライブラリはPythonをインストールすれば利用することができます。
* 外部パッケージを使うことで、一般的な処理である標準ライブラリを超えて便利なパッケージを利用することができます。



## 外部パッケージを追加する

* pipと呼ばれるパッケージ管理システムを利用してパッケージをインストールします（yumみたいなもんですね）
* パッケージについては[Python Package Index](https://pypi.python.org)に集められています



## パッケージをインストールしてみる

* 今回はWebページを操作（取得など）をするための**requests**パッケージをインストールしてみます。
* pin install *パッケージ名* でインストールすることができます。

### requestsパッケージをインストールする

```python
C:\script>pip --version
pip 19.2.3 from c:\users\matsumo\appdata\local\programs\python\python38\lib\site-packages\pip (python 3.8)

C:\script>pip3 --version
pip 19.2.3 from c:\users\matsumo\appdata\local\programs\python\python38\lib\site-packages\pip (python 3.8)

C:\script>
C:\script>
C:\script>
C:\script>pip install requests # このコマンドだけ 以下はメッセージ(インストール済みですが）
Requirement already satisfied: requests in c:\users\matsumo\appdata\local\programs\python\python38\lib\site-packages (2.22.0)
Requirement already satisfied: idna<2.9,>=2.5 in c:\users\matsumo\appdata\local\programs\python\python38\lib\site-packages (from requests) (2.8)
Requirement already satisfied: certifi>=2017.4.17 in c:\users\matsumo\appdata\local\programs\python\python38\lib\site-packages (from requests) (2019.11.28)
Requirement already satisfied: urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1 in c:\users\matsumo\appdata\local\programs\python\python38\lib\site-packages (from requests) (1.25.7)
Requirement already satisfied: chardet<3.1.0,>=3.0.2 in c:\users\matsumo\appdata\local\programs\python\python38\lib\site-packages (from requests) (3.0.4)
WARNING: You are using pip version 19.2.3, however version 20.0.2 is available.
You should consider upgrading via the 'python -m pip install --upgrade pip' command.

C:\script>
```

### 

### pipをアップグレードしてみる。

* 上記の結果でpipが古いと怒られたのでupgradeしてみる
* メッセージ道りpython -m pip install --upgrade pipを実行してみる  

```python
C:\script>python -m pip install --upgrade pip
Collecting pip
  Downloading https://files.pythonhosted.org/packages/54/0c/d01aa759fdc501a58f431eb594a17495f15b88da142ce14b5845662c13f3/pip-20.0.2-py2.py3-none-any.whl (1.4MB)
     |████████████████████████████████| 1.4MB 3.3MB/s
Installing collected packages: pip
  Found existing installation: pip 19.2.3
    Uninstalling pip-19.2.3:
      Successfully uninstalled pip-19.2.3
Successfully installed pip-20.0.2

C:\script>
```



## パッケージを利用する

* pipでインストールしたパッケージは標準ライブラリと同様にimport文で読み込むことで使えるようになります。

```python
import requests

response = requests.get('http://www.nutanix.com/')
print (response.title)
```

### 実行結果。www.nutanix.comのページを取得

```html
C:\Users\TatsuhiroMatsumoto\OneDrive - Nutanix\50_Training\@Python\script>test40_requests.py
<!DOCTYPE HTML>
<html lang="en-US">
<head>
    <meta charset="UTF-8"/>
    <title>Nutanix Enterprise Cloud - Run Any Application at Any Scale</title>

以下省略
```



## ライブラリの探し方

* 「python ライブラリ 〇〇（やりたいこと）」でググるのが結局一番早い
* 標準ライブラリの使い方は[Python公式](https://docs.python.jp/3/library)が一番いい。あっさり書いてるけど漏れなく書かれています。



## 今回のまとめ

* pipを使えばパッケージインストールは難しくない
* 使い方も今まで通り
* このあたりをさらっとやると、使いこなしの第一歩のような気がします





## 名言・ライトニングトーク用

* 自分がやりたいことは大体他の人が実現しているので、できるだけパッケージを探しましょう。その方が品質がいいものが早く作れますね