SlideShare a Scribd company logo
かごもく
Pythonのパッケージ管理ツール
2020-05-23 Zoom
森下功啓
1
https://kagoben.connpass.com/event/176282/
自己紹介
リリースしてきたもの
• 鳴き声から鳥の種類を当てるソフトウェア
• https://github.com/KatsuhiroMorishita/birdsong_project
• 阿蘇の雲海予報を行う「うんかいったー」
• https://twitter.com/unkaitter
2
名前
専門
職場
SNS Facebook https://www.facebook.com/katsuhiro.morishita
Github https://github.com/KatsuhiroMorishita
SlideShare https://www.slideshare.net/katsuhiromorishita/
衛星測位やセンサー使う方
森下功啓 @KatsuhiroKU
熊本高専八代キャンパス
Pythonの紹介
• ニシキヘビがシンボル
• Rubyと同じくインタプリタ言語
• ライブラリが豊富
• 有名どころ: numpy, scipy, matplotlib, pandas, requests
• 科学・工学用途に人気
• Webでも使われている
• Google Colaboratoryを使ってオンライン上で機械学習ぽちぽち
• Python 2はサポート切れ
• 今はPython 3
3
a = 100 # ;がいらない
for x in range(100):
print(a) # インデントがないと、エラー
Pythonのインストール
• Linux系だと最初からPythonはある
• Windowsは、インストールするか、Ubuntu立ち上げるか
• Macはhomebrewでインストールがお勧め
4
https://www.python.org/downloads/windows/
Windowsの機械学習勢
がAnacondaを使うこ
ともあるが、省略
Macで複数バージョンのインター
プリターを試したいなら、brew
でpyenvを入れて、pyenvでイン
タープリターを入れてください。
ただし、ライブラリを入れる際に
ビルドで失敗しやすいという罠が
あります。
本資料ご利用上の注意
Pythonのパッケージ管理ツールや仮想環境作成ツールは紆余曲
折を経て様々なものがリリースされています。
これで絶対間違いない、というものは無さそう。
個人的にはこれがお勧めという方法を紹介します。
5
pipでパッケージ(ライブラリ)のインストール
• pipはPython 3.4以降に同梱
• ライブラリのインストールには、pipを使う
• pip install numpy
• PyPIからライブラリがダウンロードされる
• アンインストール
• pip uninstall numpy
• pip freeze でインストールされているライブラリ一覧
• ファイルでインストール(バージョン指定もできる)
• pip install -r requirements.txt
6
かなり古いなど特殊な環境で
は、easy_installでまずpipを
入れることもある
pipでアウトローなライブラリをインストール
• たまに、インストール時に.cファイルのコンパイルが求められた
が、ビルドに失敗することがある。環境を作るのが面倒。
• unofficialサイトを使う
• https://www.lfd.uci.edu/~gohlke/pythonlibs/
• ビルド済みのwhlファイルが配布されている
• インストール例
• pip install numpy-1.18.4+mkl-cp37-cp37m-win_amd64.whl
7
Windowsのみ対応
Windowsでランチャーpy.exeはインストールしてもPythonインタープ
リタへのパスを通さなかった場合は、py -m pip insntall ~と入力
仮想環境の作り方
• インストールしたPythonインタープリタで様々なプログラムを作
成していくと、ライブラリのバージョン依存問題に直面する
• Aに対応したらBが失敗する
• 仮想環境を作りましょう
• 仮想環境とは、インタープリタ本体は共有して、ライブラリを完
全に切り分けた環境を作る仕組み
• venvを使います
• venvはPython 3.3でvirtualenvが公式に取り込まれたもの
• virtualenvはvirtualenvでまだ存続
• 挙動に差はあるものの、どのインタープリタのどのvenvを使っているとい
う自覚があれば、venvでOK
8
venvコマンドと実行結果
• コマンド例
• venv bar
9
Windowsでランチャーpy.exeはインストールしてもPythonインタープ
リタへのパスを通さなかった場合は、py -m venv ~と入力
環境名
作成されたファイル達@Windows
同じ名前のフォル
ダが作成される
仮想環境へ切り替え@Windows
• 作った仮想環境に実行環境を切り替える
• 環境名¥Scriptsの中に、activate.batがあるので、これを実行
• 仮想環境を有効にするコマンド例
• bar¥Scripts¥activate
• 仮想環境を抜けるコマンド
• deactivate
10
*Mac, Linuxの方は下記サイトを参考にしてください。
https://qiita.com/fiftystorm36/items/b2fd47cf32c7694adc2e
メモ
• pyvenv
• pyvenvはPython3.3と3.4で推奨されていた仮想環境作成ツール
• Python3.5以降ではvenvが推奨されている
• 主にMacで複数のPythonインタープリタを切り替えるpyenvと、この
pyvenvを混同しているブログがあり、注意
• pipenv
• ライブラリ管理と仮想環境管理を同時にやってくれる
• pipでできない依存関係も管理してくれる
• 登場して間もないが、既に廃れつつある
• コマンドの履歴が使えないのが個人的に痛い
• pipで入れたものはpipenvの管轄外となる
• 依存関係解決のため、動作がやや遅い
• Poetryの方が良いらしい
11
poetry入れてみた
• get-poetry.pyをGithubからダウンロード
• https://github.com/python-poetry/poetry
• py -3.8 get-poetry.py でインストールした
• PATHを修正するかと聞かれたので、とりあえずNO
• 通した方が良かった
• C:¥Users¥morishita¥.poetry¥bin に入った
• poetry.batを見る限り、立ち上がっている仮想環境で実行される
• インストールに使うインタープリターはどれでも良さそう
• バージョンの確認
• C:¥Users¥morishita¥.poetry¥bin¥poetry --version
• 使い心地は・・・まだ不明
12
参考文献
• pyenv、pyenv-virtualenv、venv、Anaconda、Pipenv。私はPipenvを使う。
• https://qiita.com/KRiver1/items/c1788e616b77a9bad4dd
• 網羅的で良い
• WindowsユーザーはPythonランチャーの存在を意識しましょう
• https://gammasoft.jp/blog/find-out-python-launcher/
• pyenvが必要かどうかフローチャート
• https://qiita.com/shibukawa/items/0daab479a2fd2cb8a0e7
• 2020 年の Python パッケージ管理ベストプラクティス
• https://qiita.com/sk217/items/43c994640f4843a18dbe
• poetry推しが強い
• Pythonのパッケージ周りのベストプラクティスを理解する
• https://www.m3tech.blog/entry/python-packaging
• pipenvと、管理ツールの歴史について詳しい
• Pipenvでよく出喰わす問題
• https://pipenv-ja.readthedocs.io/ja/translate-ja/diagnose.html
• 清水川さんのscrapbox
• https://scrapbox.io/shimizukawa/Poetry
• 「パッケージ作るならPoetry使う。 パッケージつくらないなら [venv]と[pip]がいい。」
• PipenvでPythonの依存関係の管理は楽になったか?
• https://techblog.zozo.com/entry/pipenv-make-it-easy-to-manage-dependencies-in-python13

More Related Content

PDF
Doshisha(20101108)
PDF
just one line
PPTX
SensuのGUI/CUIの雑感
PDF
アバター生放送支援アプリ「アバれぽ」
PDF
プレゼンテーション×地図 StoryMapJSを使ってみよう
PDF
俺自身がPepperになる事だ。
PPTX
(python)勉強会のすすめ
PPTX
【kintone Cafe 名古屋】kintone×○○○の可能性
Doshisha(20101108)
just one line
SensuのGUI/CUIの雑感
アバター生放送支援アプリ「アバれぽ」
プレゼンテーション×地図 StoryMapJSを使ってみよう
俺自身がPepperになる事だ。
(python)勉強会のすすめ
【kintone Cafe 名古屋】kintone×○○○の可能性

Similar to Pythonのパッケージ管理ツールの話@2020 (20)

PDF
オトナの画像認識 2018年3月21日実施
PPTX
鳥取Python勉強会 第7回
PPTX
Excel 方眼紙撲滅委員会 活動報告 2012.08 #pyfes
PPTX
最近つくった Sphinx 拡張の話 2012.08 #pyfes
PDF
今時のオンプレなgithubクローン環境構築
PDF
LLプログラマ向けSwift ExtensionsとテストライブラリQuickの紹介
PDF
ギークを目指すエンジニャーの 情報収集方法 mohikan Slack
PDF
Two sides of Python Engineer Training Book in PyCon mini Sapporo
PDF
Two sides of "Python Engineer Training Book"
PDF
会社にGitHub Enterpriseを導入してみた話
PPTX
鳥取python勉強会 第1回
PPTX
みんなのPython勉強会#59 Intro
PPTX
発見・探検・ぼくのだいあぐ #pykonjp2014
PDF
さくらのひやおろし
PDF
圏論walker
PDF
PyScriptの紹介
PDF
イベント企画運営の経験と実際 / The history of organizing events by me
PPTX
メタ プログラミングについて
PDF
2016 01-23アジャイル札幌
POTX
素振りのススメ at Python入門者の集い
オトナの画像認識 2018年3月21日実施
鳥取Python勉強会 第7回
Excel 方眼紙撲滅委員会 活動報告 2012.08 #pyfes
最近つくった Sphinx 拡張の話 2012.08 #pyfes
今時のオンプレなgithubクローン環境構築
LLプログラマ向けSwift ExtensionsとテストライブラリQuickの紹介
ギークを目指すエンジニャーの 情報収集方法 mohikan Slack
Two sides of Python Engineer Training Book in PyCon mini Sapporo
Two sides of "Python Engineer Training Book"
会社にGitHub Enterpriseを導入してみた話
鳥取python勉強会 第1回
みんなのPython勉強会#59 Intro
発見・探検・ぼくのだいあぐ #pykonjp2014
さくらのひやおろし
圏論walker
PyScriptの紹介
イベント企画運営の経験と実際 / The history of organizing events by me
メタ プログラミングについて
2016 01-23アジャイル札幌
素振りのススメ at Python入門者の集い
Ad

More from Katsuhiro Morishita (20)

PDF
数ページの卒業論文作成のためのwordの使い方
PDF
オトナのpandas勉強会(資料)
PDF
SIgfox触ってみた in IoTLT in 熊本市 vol.3
PDF
Google Colaboratoryの使い方
PDF
Excelでのグラフの作成方法re
PDF
Pythonのmain関数
PDF
Pythonスクリプトの実行方法@2018
PDF
機械学習と主成分分析
PDF
Pythonで始めた数値計算の授業@わんくま勉強会2018-04
PDF
マークシート読み込みプログラムを作ってみた@2018-04-04
PDF
LoRa-WANで河川水位を計測してみた@IoTLT@熊本市 vol.001
PDF
シリーズML-08 ニューラルネットワークを用いた識別・分類ーシングルラベルー
PDF
シリーズML-07 ニューラルネットワークによる非線形回帰
PDF
シリーズML-06 ニューラルネットワークによる線形回帰
PDF
シリーズML-05 ニューラルネットワーク
PDF
シリーズML-03 ランダムフォレストによる自動識別
PDF
シリーズML-01 機械学習の概要
PDF
Pandas利用上のエラーとその対策
PDF
Pythonによる、デジタル通信のための ビタビ符号化・復号ライブラリの作成
PDF
機械学習(仮)in Mobile conference 2017
数ページの卒業論文作成のためのwordの使い方
オトナのpandas勉強会(資料)
SIgfox触ってみた in IoTLT in 熊本市 vol.3
Google Colaboratoryの使い方
Excelでのグラフの作成方法re
Pythonのmain関数
Pythonスクリプトの実行方法@2018
機械学習と主成分分析
Pythonで始めた数値計算の授業@わんくま勉強会2018-04
マークシート読み込みプログラムを作ってみた@2018-04-04
LoRa-WANで河川水位を計測してみた@IoTLT@熊本市 vol.001
シリーズML-08 ニューラルネットワークを用いた識別・分類ーシングルラベルー
シリーズML-07 ニューラルネットワークによる非線形回帰
シリーズML-06 ニューラルネットワークによる線形回帰
シリーズML-05 ニューラルネットワーク
シリーズML-03 ランダムフォレストによる自動識別
シリーズML-01 機械学習の概要
Pandas利用上のエラーとその対策
Pythonによる、デジタル通信のための ビタビ符号化・復号ライブラリの作成
機械学習(仮)in Mobile conference 2017
Ad

Pythonのパッケージ管理ツールの話@2020