Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Python環境の今 2022

Python環境の今 2022

PyCon Kyushu 2022 Kumamotoでの寺田の発表資料

Manabu TERADA

January 22, 2022
Tweet

More Decks by Manabu TERADA

Other Decks in Technology

Transcript

  1. Python
    環境の今 2022
    プレゼンテーションスタート
    1 / 37
    Python
    の環境構築には複数の方法が存在します。このトークでは、Python
    環境構築に必要な選択すべき項目を
    あげ、それぞれについて選択方法を解説します。

    View full-size slide

  2. 自己紹介
    寺田 学 (Manabu TERADA) @terapyon
    (
    株)CMS
    コミュニケーションズ代表
    Python
    エンジニア兼経営者
    Python
    ベースのWeb
    系システム構築やコンサルティングを行っている。 昨年から企業や学校に向けたプログ
    ラミング教育にも関わっている
    2 / 37

    View full-size slide

  3. 共著・監修書籍
    3 / 37
    最近、寺田が関連していいる書籍の紹介
    スラスラわかるPython
    第2

    翔泳社: 2021
    岩崎 圭 著、北川 慎治 著、寺田 学 監修
    Python
    実践レシピ
    技術評論社: 2022
    鈴木たかのり著、筒井隆次 著、寺田学 著、
    杉田雅子 著、門脇諭 著、福田隼也 著
    Flask
    によるWeb
    アプリ開発入門
    物体検知アプリ&
    機械学習API
    の作り方
    翔泳社: 2022
    佐藤 昌基 著、平田 哲也 著、寺田 学 監修

    View full-size slide

  4. 会社紹介
    (
    株)CMS
    コミュニケーションズ https://www.cmscom.jp
    Plone
    を使ったWeb
    システムの開発
    Python
    を用いたシステム開発
    Python
    関連コンサルティング
    プログラミング教育
    4 / 37

    View full-size slide

  5. その他関連組織
    一般社団法人 PyCon JP Association
    代表理事: https://www.pycon.jp
    一般社団法人Python
    エンジニア育成推進協会 顧問理事: https://www.pythonic-exam.com
    国立大学法人一橋大学 社会学研究科 地球社会専攻 非常勤講師
    NVDA
    日本語チーム
    Plone User’s Group Japan
    Python mini hack-a-thon
    主宰
    5 / 37

    View full-size slide

  6. このトークの概要
    https://speakerdeck.com/terapyon/sugushi-merareru-pythonfalsehuan-jing-gou-zhu
    6 / 37
    2017
    年に PyCon mini Kumamoto
    でトークした内容を 2022
    年版にアップデートしたものです

    View full-size slide

  7. Python
    バージョン
    7 / 37
    何を使っていますか?

    View full-size slide

  8. 寺田のオススメ
    実装 CPython
    Python
    バージョン 3.9
    インストール方法 公式インストーラ
    仮想環境 venv
    パッケージインストール pip
    エディタ VS Code
    8 / 37

    View full-size slide

  9. 実装
    9 / 37

    View full-size slide

  10. Python
    実装と選択
    実装の種類
    CPython
    C
    で実装されている
    PyPy
    Python
    で実装
    MicroPython
    機能限定のPython
    マイクロコントローラー向
    Cython
    高速化
    選択基準
    特別な理由がなければ
    CPython
    でいい。
    Python
    といえば CPython
    のことを言う
    10 / 37

    View full-size slide

  11. バージョン
    11 / 37

    View full-size slide

  12. バージョン年表 (
    〜2013
    年)
    Python 2 Python 3 Event
    1994 1.0

    2008 2.6 3.0
    2009 3.1
    2010 2.7 PyCon APAC in SG
    2011 3.2 PyCon JP
    2012 3.3
    2013 PyCon APAC in Japan
    12 / 37

    View full-size slide

  13. バージョン年表 (2014
    年〜)
    Python 2 Python 3 Event
    2014 3.4
    2015 3.5
    2016 3.6 Python Boot Camp
    2017 PyCon mini Kumamoto
    2018 3.7 PyCon Kyushu in Fukuoka
    2019 3.8 PyCon Kyushu in Okinawa
    2020 End of Life 3.9
    2021 3.10
    2022 3.11 PyCon Kyushu in Kumamoto
    13 / 37

    View full-size slide

  14. Python
    バージョンの選択
    特別な理由がなければ
    最新が出てから、半年くらいたったバージョン
    選択するときのポイント
    ライブラリが対応しているか?
    動作させる環境は?
    14 / 37

    View full-size slide

  15. バージョンアップのタイミング
    あせって、Python
    のバージョンを上げなくてもいい
    5
    年間の保守期間があるので
    上げるモチベーション
    新しい機能を使いたい
    ライブラリの対応状況が変わる
    積極的にやらないことが多い
    15 / 37

    View full-size slide

  16. インストール方法
    16 / 37

    View full-size slide

  17. インストール方法
    インストール方法の種類
    公式インストーラ
    バニラインストーラ
    公式版をソースコンパイル
    OS
    パッケージマネージャー
    apt / DNF / brew
    Anaconda
    様々なパッケージをまとめてインストール
    インストール方法の選択
    特に理由がなければ
    公式インストーラ
    Linux
    環境なら
    ソースコンパイル
    パッケージマネジャーを使う場合もある
    17 / 37

    View full-size slide

  18. Anaconda
    科学技術計算系のパッケージが同梱されている
    インストールは手軽だが、
    ハマリポイントも多い
    Windows
    環境でも、Anaconda
    を使わずに、公式版と pip
    でインストールが可能
    wheel
    のおかげ
    大企業で使う場合は有料化されているので注意
    19 / 37

    View full-size slide

  19. Python
    のバージョンを複数
    OS
    上に複数のマイナーバージョン
    公式インストーラでインストール可能
    マイクロバージョンを混在させることはできない

    3:
    メジャー
    9:
    マイナー
    8:
    マイクロ
    20 / 37
    Python 3.9.8

    View full-size slide

  20. 仮想環境
    21 / 37

    View full-size slide

  21. 仮想環境とは
    一つの OS
    上に、複数の Python
    環境を作れる
    利用する Python
    ライブラリを区分できる
    OS
    上のグローバルな Python
    環境をクリーンに保てる
    Python
    レイヤーの仮想環境に限定
    OS
    の仮想化やコンテナ化とは別物
    22 / 37

    View full-size slide

  22. 仮想環境の種類
    venv
    モジュール
    Python
    標準ライブラリ
    virtualenv
    以前の Python
    では使われていた
    venv
    モジュールがある今、使われない
    pyenv
    Python
    のマイクロバージョンの切替も可能
    conda
    コマンド
    Anaconda
    で使う
    23 / 37

    View full-size slide

  23. 仮想環境の選択
    venv
    モジュール
    venv
    モジュールの使い方
    Linux / macOS Windows
    24 / 37
    $ python -m venv venv # venv
    というフォルダができる
    $ source venv/bin/activate #
    仮想環境を有効化
    (venv) $ #
    プロンプトが変化
    (venv) $ deactivate #
    仮想環境の無効化
    $ rm -r venv #
    仮想環境のフォルダを削除
    > py -m venv venv # venv
    というフォルダができる
    > venv\Scripts\Activate.ps1 #
    仮想環境を有効化
    (venv) > #
    プロンプトが変化
    (venv) > deactivate #
    仮想環境の無効化
    > rmdir venv #
    仮想環境のフォルダを削除

    View full-size slide

  24. パッケージのインストール
    25 / 37

    View full-size slide

  25. パッケージのインストールとは
    サードパーティー製パッケージを導入
    (基本的には)PyPI (
    パイピーアイと読む)
    から様々なパッケージをインストール
    https://pypi.org
    例えば
    画像処理をする Pillow
    Web
    フレームワーク Flask
    データ分析に使う pandas
    26 / 37

    View full-size slide

  26. pip
    コマンド
    Python
    に同梱しているコマンド
    pip
    で Pillow
    をインストール
    28 / 37
    $ sourse venv/bin/activate #
    仮想環境を有効化
    (venv) $ pip install pillow # Pillow
    をインストール
    (venv) $ pip freeze > requirements.txt #
    パッケージリストを作成
    (venv) $ pip install -r requirements.txt #
    パッケージリストを元にインストール
    (venv) $ pip install -U pillow # Pillow
    をアップデート

    View full-size slide

  27. wheel
    とは
    PEP427 The Wheel Binary Package Format 1.0 (
    最新は PEP 491 Format 1.9)
    ビルド済みの配布用パッケージ
    C
    コンパイラが必要なパッケージに対応
    ピュアPython
    でもwheel
    提供されている
    様々なプラットフォームに対応
    プラットフォームに依存していない場合
    最近は、Windows / macOS / Linux
    用などのwheel
    が専用に準備されているパッケージが多い
    29 / 37
    numpy-1.22.1-cp39-cp39-win_amd64.whl
    numpy-1.22.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
    numpy-1.22.1-cp39-cp39-macosx_11_0_arm64.whl
    Flask-2.0.2-py3-none-any.whl

    View full-size slide

  28. エディタ
    30 / 37

    View full-size slide

  29. エディタ
    エディタの種類
    VS Code
    無料、統合環境、様々な言語に対応
    PyCharm
    有料、統合環境、Python
    に特化
    Atom
    無料、統合環境とまでは言えない
    Emacs
    シンプルなエディタ、拡張機能で高機能化
    vim
    シンプルなエディタ、CUI
    ベース
    IDLE
    Python
    の付属されているエディタ
    エディタの選択
    特に制約はない
    最初は統合環境を使うのが良い
    シンタクスハイライトやエラーの表示
    いくつか試してみるのが良い
    迷ったら
    VS Code
    で良いと思っている
    PyCharm
    は整っている感じで良いとは思う
    31 / 37

    View full-size slide

  30. 寺田のオススメ(
    再掲)
    実装 CPython
    Python
    バージョン 3.9
    インストール方法 公式インストーラ
    仮想環境 venv
    パッケージインストール pip
    エディタ VS Code
    32 / 37

    View full-size slide

  31. 寺田の環境 macOS
    実装 CPython
    Python
    バージョン 3.8, 3.9, 3.10
    インストール方法 公式インストーラ
    仮想環境 venv
    パッケージインストール pip
    エディタ VS Code
    33 / 37

    View full-size slide

  32. 寺田の環境 Linux
    実装 CPython
    Python
    バージョン 3.6, 3.7, 3.8, 3.9
    インストール方法 ソースビルド /opt
    仮想環境 venv
    パッケージインストール pip
    エディタ VS Code
    34 / 37

    View full-size slide

  33. Windows
    の場合
    実装 CPython
    Python
    バージョン 3.9
    インストール方法 公式インストーラ
    仮想環境 venv
    パッケージインストール pip
    エディタ VS Code
    35 / 37

    View full-size slide

  34. 個人のPodcast
    を紹介
    2020
    年2
    月からPodcast
    を配信
    Python
    の話題やコミュニティの話題などを扱
    っている
    書籍関連の情報
    terapyon channel podcast Top
    page
    terapyon channel podcas
    󰍜
    36 / 37

    View full-size slide

  35. Python
    環境の今 2022
    ご質問などお待ちしております。
    Python
    の環境構築には複数の方法が存在します。このトークでは、Python
    環境構築に必要な選択すべき項目を
    あげ、それぞれについて選択方法を解説しました。

    View full-size slide