Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
LL2018 LT Pythonパッケージマネージャーはどれがおすすめ?
Atsushi Odagiri
August 26, 2018
Programming
2
1.3k
LL2018 LT Pythonパッケージマネージャーはどれがおすすめ?
Atsushi Odagiri
August 26, 2018
Tweet
Share
More Decks by Atsushi Odagiri
See All by Atsushi Odagiri
[Pycon Kyushu 2019] Pythonでの開発を効率的に進めるためのツール設定
aodag
9
45k
あなたとPython今すぐパッケージング
aodag
2
2.9k
Other Decks in Programming
See All in Programming
10歳の minne から、これから長く続くプロダクトを作るすべての人へ
tsumichan
9
3.7k
There's an API for that!
mariatta
PRO
0
110
動画合成アーキテクチャを実装してみて
satorunooshie
0
570
話題の AlloyDB は本当に凄いデータベースなのでプレビューを使い倒した #devio2022
maroon1st
0
13k
Pythonで鉄道指向プログラミング
usabarashi
0
140
プロダクトの成長とSREと
takuyatezuka
0
120
サーバーレスパターンから学ぶデータ分析基盤構築 / devio2022
kasacchiful
0
520
企業内スモールデータでのデータ解析
hamage9
0
920
Agile Tech EXPO_2022/カケハシ
kakehashi
0
110
ZOZOTOWNにおけるDatadogの活用と、それを支える全社管理者の取り組み / 2022-07-27
tippy
1
3.5k
ECサイトの脆弱性診断をいい感じにやりたい/OWASPKansaiNight_LT1_220727
owaspkansai
0
300
YATA: collaborative documents and how to make them fast
horusiath
1
170
Featured
See All Featured
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
12
940
Become a Pro
speakerdeck
PRO
3
910
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
498
130k
Designing the Hi-DPI Web
ddemaree
272
32k
How To Stay Up To Date on Web Technology
chriscoyier
780
250k
A Modern Web Designer's Workflow
chriscoyier
689
180k
Fireside Chat
paigeccino
13
1.4k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
236
1.1M
Building Applications with DynamoDB
mza
84
4.8k
GitHub's CSS Performance
jonrohan
1020
420k
The MySQL Ecosystem @ GitHub 2015
samlambert
239
11k
Principles of Awesome APIs and How to Build Them.
keavy
113
15k
Transcript
Pythonの パッケージマネージャー どれがおすすめ? Learn Languages 2018 in ODC aodag
about me aodag 株式会社オープンコレクター pipとかdistlibとかコントリビュート web系:djangoよりpyramidのほうがいいと思います pythonは1.5から
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
PyPA (Python Packaging Authority) パッケージングツールを管理するグループ • pip パッケージインストーラー • virtualenv
仮想Python環境作成 • setuptools パッケージャー • wheel パッケージャー(setuptoolsのアドオン) • twine パッケージアップローダー • packaging ライブラリ • distlib ライブラリ
PyPI(pypi.org) twine pip setuptools virtualenv PyPI からパッケージをダウンロード virtualenv環境にインストール パッケージを作成 PyPIにパッケージをアップロード
PIPしかないので... • easy_install は deprecated でもう全然メンテもされてない
pipを使い始めるまで Long long ago $ python ez_setup.py $ easy_install pip
$ pip install virtualenv $ virtualenv venv $ . venv/bin/activate (venv) $ pip --version
pipを使い始めるまで(get-pip.py) $ python get-pip.py $ pip --version or $ python
get-pip.py --user $ export PATH=$HOME/.local/bin:$PATH $ pip --version
pipを使い始めるまで(ensurepip) Python3.4以降、ensurepipモジュールでpipがインストールされる。 pythonインストール直後にensurepipが実行されるので普通ならpipをいきなり使える。 ディストリビューションによっては無効化されている。
virtualenv/venv virtualenv python2のころから存在していた。プロジェクト専用の仮想python環境を作 るツール venv python3.3から導入された。プロジェクト専用の仮想python環境を作るツール。 pyvenvというコマンドも用意されていたが、廃止されてモジュール実行する形式のみに なった。 $ python3.6
-m venv venv
virtualenv/venv virtualenvは環境作成後にその環境に pip/setuptools/wheel をインストールする venvは環境作成後にその環境でensurepipを実行(pip/setuptoolsをインストール)する
virtualenv/venv + pip virtualenvかvenv でプロジェクトを作って pipでパッケージをインストールする $ virtualenv -p /usr/bin/python3.7
venv $ . venv/bin/activate (venv) $ pip install requests (venv) $ pip install pytest
pipのいくつかの課題 インストールしたライブラリの種類(開発時のみとか)をわけられない。 venvごとにpipコマンドが存在するので、慣れていないとインストール先に混乱する。
pipenv pipとvirtualenvを両方扱う包括的なツール $ pipenv --python=3.7 $ pipenv install requests $
pipenv install pytest --dev
pipenvを使い始めるまで(きっと黎明期) $ pip install pipenv $ pipenv --python=python3.7
パッケージマネージャーの選択肢 • virtualenv + pip • pipenv 今後はpipenvが公式ドキュメントに追加される予定(らしい) pipenvから始めてみましょう