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.5k
[Pycon Kyushu 2019] Pythonでの開発を効率的に進めるためのツール設定
aodag
9
46k
あなたとPython今すぐパッケージング
aodag
2
3.6k
Other Decks in Programming
See All in Programming
AWS Summit Hong Kong 2025: Reinventing Programming - How AI Transforms Our Enterprise Coding Approach
dwchiang
0
150
Носок на сок
bo0om
0
1.5k
TypeScript エンジニアが Android 開発の世界に飛び込んだ話
yuisakamoto
2
120
OpenTelemetry + LLM = OpenLLMetry!?
yunosukey
2
200
クラス設計の手順
akikogoto
0
140
ドメイン駆動設計とXPで支える子どもの未来 / Domain-Driven Design and XP Supporting Children's Future
nrslib
0
330
JAWS DAYS 2025 re_Cheers: WEB
komakichi
0
130
オープンソースコントリビュート入門
_katsuma
0
150
Orleans + Sekiban + SignalR でリアルタイムWeb作ってみた
tomohisa
0
260
一緒に働きたくなるプログラマの思想 #QiitaConference
mu_zaru
84
21k
実践Webフロントパフォーマンスチューニング
cp20
46
11k
私のRubyKaigi 2025 Kaigi Effect / My RubyKaigi 2025 Kaigi Effect
chobishiba
1
180
Featured
See All Featured
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
3.8k
Writing Fast Ruby
sferik
628
61k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
14
1.5k
We Have a Design System, Now What?
morganepeng
52
7.6k
Practical Orchestrator
shlominoach
187
11k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
160
15k
Code Review Best Practice
trishagee
68
18k
Art, The Web, and Tiny UX
lynnandtonic
298
21k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
52
2.7k
Making the Leap to Tech Lead
cromwellryan
133
9.3k
RailsConf 2023
tenderlove
30
1.1k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
227
22k
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から始めてみましょう