Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
LL2018 LT Pythonパッケージマネージャーはどれがおすすめ?
Search
Atsushi Odagiri
August 26, 2018
Programming
2
1.7k
LL2018 LT Pythonパッケージマネージャーはどれがおすすめ?
Atsushi Odagiri
August 26, 2018
Tweet
Share
More Decks by Atsushi Odagiri
See All by Atsushi Odagiri
setuptoolsの最近
aodag
1
2.6k
[Pycon Kyushu 2019] Pythonでの開発を効率的に進めるためのツール設定
aodag
9
46k
あなたとPython今すぐパッケージング
aodag
2
3.7k
Other Decks in Programming
See All in Programming
What's New in Web AI?
christianliebel
PRO
0
120
AIのバカさ加減に怒る前にやっておくこと
blueeventhorizon
0
160
Claude Code on the Web を超える!? Codex Cloud の実践テク5選
sunagaku
0
470
Swift Concurrency 年表クイズ
omochi
3
220
ノーコードからの脱出 -地獄のデスロード- / Escape from Base44
keisuke69
0
670
Vue 3.6 時代のリアクティビティ最前線 〜Vapor/alien-signals の実践とパフォーマンス最適化〜
hiranuma
2
430
AI 時代だからこそ抑えたい「価値のある」PHP ユニットテストを書く技術 #phpconfuk / phpcon-fukuoka-2025
shogogg
1
400
「正規表現をつくる」をつくる / make "make regex"
makenowjust
1
120
エンジニアに事業やプロダクトを理解してもらうためにやってること
murabayashi
0
140
Private APIの呼び出し方
kishikawakatsumi
2
830
Introducing RemoteCompose: break your UI out of the app sandbox.
camaelon
2
540
オフライン対応!Flutterアプリに全文検索エンジンを実装する @FlutterKaigi2025
itsmedreamwalker
1
140
Featured
See All Featured
jQuery: Nuts, Bolts and Bling
dougneiner
65
8k
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
Navigating Team Friction
lara
190
15k
Designing Experiences People Love
moore
142
24k
Build The Right Thing And Hit Your Dates
maggiecrowley
38
2.9k
Rebuilding a faster, lazier Slack
samanthasiow
84
9.3k
GraphQLの誤解/rethinking-graphql
sonatard
73
11k
Facilitating Awesome Meetings
lara
57
6.6k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
192
56k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.5k
Raft: Consensus for Rubyists
vanstee
140
7.2k
Reflections from 52 weeks, 52 projects
jeffersonlam
355
21k
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から始めてみましょう