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
1.8k
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
LL2018 LT Pythonパッケージマネージャーはどれがおすすめ?
Atsushi Odagiri
August 26, 2018
More Decks by Atsushi Odagiri
See All by Atsushi Odagiri
setuptoolsの最近
aodag
1
3k
[Pycon Kyushu 2019] Pythonでの開発を効率的に進めるためのツール設定
aodag
9
46k
あなたとPython今すぐパッケージング
aodag
2
3.9k
Other Decks in Programming
See All in Programming
レビュー履歴をAIに食わせて、 Compose移行を加速するs
shihochan
0
230
AWS Transform Customによる Spring Boot 2.xから4.xへのVerUp
satoshi256kbyte
2
110
FastAPI の並行処理モデルを完全に理解する
hoto17296
8
3.1k
まだ間に合う!今年の夏こそSchemeのマクロ展開器を完全理解!
omasanori
0
560
30年振りにコンパイラの定数整数除算を改善した
herumi
9
4.3k
【QA Test Talk Vol.8】AI-DLC による Whole Team Approach の加速
pkshadeck
PRO
0
250
実装をデザインガイドラインに追従させるための取り組み / 260731-dip-mosh-design-system
dachi023
0
7.9k
AIに既存システムを理解させる技術 ~レガシーを見捨てないハーネスエンジニアリング入門~
ochtum
0
170
仕様書を書く前にハーネスを作る - Agent Native開発は「探索を速く、判定を固く」
gotalab555
5
1.8k
不幸な GC
chencmd
0
810
異なる設計思想のフレームワークを経験して得た学び
amekuhideki
1
820
AI駆動開発にグラフDBを重ねてみた
satoshi256kbyte
0
350
Featured
See All Featured
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
900
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
380
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
56
3.4k
BBQ
matthewcrist
89
10k
Stop Working from a Prison Cell
hatefulcrawdad
274
21k
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
450
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.8k
Designing Experiences People Love
moore
143
24k
GraphQLとの向き合い方2022年版
quramy
50
15k
Navigating Weather and Climate Data
rabernat
0
490
Building Adaptive Systems
keathley
44
3.2k
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から始めてみましょう