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
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Atsushi Odagiri
August 26, 2018
Programming
1.8k
2
Share
LL2018 LT Pythonパッケージマネージャーはどれがおすすめ?
Atsushi Odagiri
August 26, 2018
More Decks by Atsushi Odagiri
See All by Atsushi Odagiri
setuptoolsの最近
aodag
1
2.9k
[Pycon Kyushu 2019] Pythonでの開発を効率的に進めるためのツール設定
aodag
9
46k
あなたとPython今すぐパッケージング
aodag
2
3.8k
Other Decks in Programming
See All in Programming
自動レビューエンジンの実装と運用 ~レビューのない世界へ~
kurukuru1999
2
300
TypeScriptだけでAIエージェントを作る フロント・エージェント・インフラのフルスタック実践
har1101
6
1.2k
次世代リンターで探る、tsgo 時代における型認識カスタムルールの現実解
ytakahashii
3
1.4k
生成AI時代にこそ効くGo | Why Go Works in the Age of Generative AI
mom0tomo
8
3k
代数的データ型って何が嬉しいの? #frontend_phpcon_do
kajitack
7
2.8k
Inside Stream API
skrb
1
470
Oxcを導入して開発体験が向上した話
yug1224
4
260
初めてのRubyKaigiはこう見えた
jellyfish700
0
380
[KCD Czech] eBPF Meets the GPU: Future of AI Infra Observability
doniacld
0
130
net-httpのHTTP/2対応について
naruse
0
400
プロパティの順序で型推論が壊れる!? TypeScript6.0の修正からContext-Sensitivityの仕組みを追う
bicstone
2
1.3k
AIとRubyの静的型付け
ukin0k0
0
490
Featured
See All Featured
Getting science done with accelerated Python computing platforms
jacobtomlinson
2
210
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
231
23k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.8k
New Earth Scene 8
popppiees
3
2.3k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
8.1k
Why Our Code Smells
bkeepers
PRO
340
58k
Believing is Seeing
oripsolob
1
140
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
600
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
370
Information Architects: The Missing Link in Design Systems
soysaucechin
0
950
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
Abbi's Birthday
coloredviolet
2
7.8k
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から始めてみましょう