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

More Decks by Atsushi Odagiri

Other Decks in Programming

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から始めてみましょう