Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

PyPA (Python Packaging Authority) パッケージングツールを管理するグループ ● pip パッケージインストーラー ● virtualenv 仮想Python環境作成 ● setuptools パッケージャー ● wheel パッケージャー(setuptoolsのアドオン) ● twine パッケージアップローダー ● packaging ライブラリ ● distlib ライブラリ

Slide 5

Slide 5 text

PyPI(pypi.org) twine pip setuptools virtualenv PyPI からパッケージをダウンロード virtualenv環境にインストール パッケージを作成 PyPIにパッケージをアップロード

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

pipを使い始めるまで Long long ago $ python ez_setup.py $ easy_install pip $ pip install virtualenv $ virtualenv venv $ . venv/bin/activate (venv) $ pip --version

Slide 8

Slide 8 text

pipを使い始めるまで(get-pip.py) $ python get-pip.py $ pip --version or $ python get-pip.py --user $ export PATH=$HOME/.local/bin:$PATH $ pip --version

Slide 9

Slide 9 text

pipを使い始めるまで(ensurepip) Python3.4以降、ensurepipモジュールでpipがインストールされる。 pythonインストール直後にensurepipが実行されるので普通ならpipをいきなり使える。 ディストリビューションによっては無効化されている。

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

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