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

LL2018 LT Pythonパッケージマネージャーはどれがおすすめ?

LL2018 LT Pythonパッケージマネージャーはどれがおすすめ?

39a5c2ac028a42721c6a8ded3de6258a?s=128

Atsushi Odagiri

August 26, 2018
Tweet

Transcript

  1. Pythonの パッケージマネージャー どれがおすすめ? Learn Languages 2018 in ODC aodag

  2. about me aodag 株式会社オープンコレクター pipとかdistlibとかコントリビュート web系:djangoよりpyramidのほうがいいと思います pythonは1.5から

  3. PEP(Python Enhancement Proposals) パッケージ関連のPEP • Metadata for Python Software Packages

    • The Wheel Binary Package Format 1.0 • Version Identification and Dependency Specification • Dependency specification for Python Software Packages • Specifying Minimum Build System Requirements for Python Projects • etc
  4. PyPA (Python Packaging Authority) パッケージングツールを管理するグループ • pip パッケージインストーラー • virtualenv

    仮想Python環境作成 • setuptools パッケージャー • wheel パッケージャー(setuptoolsのアドオン) • twine パッケージアップローダー • packaging ライブラリ • distlib ライブラリ
  5. PyPI(pypi.org) twine pip setuptools virtualenv PyPI からパッケージをダウンロード virtualenv環境にインストール パッケージを作成 PyPIにパッケージをアップロード

  6. PIPしかないので... • easy_install は deprecated でもう全然メンテもされてない

  7. pipを使い始めるまで Long long ago $ python ez_setup.py $ easy_install pip

    $ pip install virtualenv $ virtualenv venv $ . venv/bin/activate (venv) $ pip --version
  8. pipを使い始めるまで(get-pip.py) $ python get-pip.py $ pip --version or $ python

    get-pip.py --user $ export PATH=$HOME/.local/bin:$PATH $ pip --version
  9. pipを使い始めるまで(ensurepip) Python3.4以降、ensurepipモジュールでpipがインストールされる。 pythonインストール直後にensurepipが実行されるので普通ならpipをいきなり使える。 ディストリビューションによっては無効化されている。

  10. virtualenv/venv virtualenv python2のころから存在していた。プロジェクト専用の仮想python環境を作 るツール venv python3.3から導入された。プロジェクト専用の仮想python環境を作るツール。 pyvenvというコマンドも用意されていたが、廃止されてモジュール実行する形式のみに なった。 $ python3.6

    -m venv venv
  11. virtualenv/venv virtualenvは環境作成後にその環境に pip/setuptools/wheel をインストールする venvは環境作成後にその環境でensurepipを実行(pip/setuptoolsをインストール)する

  12. virtualenv/venv + pip virtualenvかvenv でプロジェクトを作って pipでパッケージをインストールする $ virtualenv -p /usr/bin/python3.7

    venv $ . venv/bin/activate (venv) $ pip install requests (venv) $ pip install pytest
  13. pipのいくつかの課題 インストールしたライブラリの種類(開発時のみとか)をわけられない。 venvごとにpipコマンドが存在するので、慣れていないとインストール先に混乱する。

  14. pipenv pipとvirtualenvを両方扱う包括的なツール $ pipenv --python=3.7 $ pipenv install requests $

    pipenv install pytest --dev
  15. pipenvを使い始めるまで(きっと黎明期) $ pip install pipenv $ pipenv --python=python3.7

  16. パッケージマネージャーの選択肢 • virtualenv + pip • pipenv 今後はpipenvが公式ドキュメントに追加される予定(らしい) pipenvから始めてみましょう