Submit Search
Pythonのパッケージ管理ツールの話@2020
0 likes
956 views
Katsuhiro Morishita
2020年5月23日のかごもくで発表させて頂いた、Pythonのバージョン管理ツールの話です。全然詳しくないのでpipとvenvの話しかしていませんが・・・。
Technology
Read more
1 of 13
Download now
Download to read offline
1
2
3
4
5
6
7
8
9
10
11
12
13
More Related Content
PDF
Doshisha(20101108)
真 岡本
PDF
just one line
shinnosuke kugimiya
PPTX
SensuのGUI/CUIの雑感
Hiroaki Sano
PDF
アバター生放送支援アプリ「アバれぽ」
torisoup
PDF
プレゼンテーション×地図 StoryMapJSを使ってみよう
Kaz Furukawa
PDF
俺自身がPepperになる事だ。
baku_dreameater
PPTX
(python)勉強会のすすめ
Kioto Hirahara
PPTX
【kintone Cafe 名古屋】kintone×○○○の可能性
Hiroyasu Yamada
Doshisha(20101108)
真 岡本
just one line
shinnosuke kugimiya
SensuのGUI/CUIの雑感
Hiroaki Sano
アバター生放送支援アプリ「アバれぽ」
torisoup
プレゼンテーション×地図 StoryMapJSを使ってみよう
Kaz Furukawa
俺自身がPepperになる事だ。
baku_dreameater
(python)勉強会のすすめ
Kioto Hirahara
【kintone Cafe 名古屋】kintone×○○○の可能性
Hiroyasu Yamada
Similar to Pythonのパッケージ管理ツールの話@2020
(20)
PDF
オトナの画像認識 2018年3月21日実施
Katsuhiro Morishita
PPTX
鳥取Python勉強会 第7回
Yuji Oyamada
PPTX
Excel 方眼紙撲滅委員会 活動報告 2012.08 #pyfes
Takeshi Komiya
PPTX
最近つくった Sphinx 拡張の話 2012.08 #pyfes
Takeshi Komiya
PDF
今時のオンプレなgithubクローン環境構築
You&I
PDF
LLプログラマ向けSwift ExtensionsとテストライブラリQuickの紹介
Shoken Fujisaki
PDF
ギークを目指すエンジニャーの 情報収集方法 mohikan Slack
Kota Kanbe
PDF
Two sides of Python Engineer Training Book in PyCon mini Sapporo
Takanori Suzuki
PDF
Two sides of "Python Engineer Training Book"
Takanori Suzuki
PDF
会社にGitHub Enterpriseを導入してみた話
Shuji Yamada
PPTX
鳥取python勉強会 第1回
Yuji Oyamada
PPTX
みんなのPython勉強会#59 Intro
Takeshi Akutsu
PPTX
発見・探検・ぼくのだいあぐ #pykonjp2014
Takeshi Komiya
PDF
さくらのひやおろし
法林浩之
PDF
圏論walker
Kazufumi Ohkawa
PDF
PyScriptの紹介
2bo 2bo
PDF
イベント企画運営の経験と実際 / The history of organizing events by me
whywaita
PPTX
メタ プログラミングについて
Shinichi Ueno
PDF
2016 01-23アジャイル札幌
pandeiro245
POTX
素振りのススメ at Python入門者の集い
Takayuki Shimizukawa
オトナの画像認識 2018年3月21日実施
Katsuhiro Morishita
鳥取Python勉強会 第7回
Yuji Oyamada
Excel 方眼紙撲滅委員会 活動報告 2012.08 #pyfes
Takeshi Komiya
最近つくった Sphinx 拡張の話 2012.08 #pyfes
Takeshi Komiya
今時のオンプレなgithubクローン環境構築
You&I
LLプログラマ向けSwift ExtensionsとテストライブラリQuickの紹介
Shoken Fujisaki
ギークを目指すエンジニャーの 情報収集方法 mohikan Slack
Kota Kanbe
Two sides of Python Engineer Training Book in PyCon mini Sapporo
Takanori Suzuki
Two sides of "Python Engineer Training Book"
Takanori Suzuki
会社にGitHub Enterpriseを導入してみた話
Shuji Yamada
鳥取python勉強会 第1回
Yuji Oyamada
みんなのPython勉強会#59 Intro
Takeshi Akutsu
発見・探検・ぼくのだいあぐ #pykonjp2014
Takeshi Komiya
さくらのひやおろし
法林浩之
圏論walker
Kazufumi Ohkawa
PyScriptの紹介
2bo 2bo
イベント企画運営の経験と実際 / The history of organizing events by me
whywaita
メタ プログラミングについて
Shinichi Ueno
2016 01-23アジャイル札幌
pandeiro245
素振りのススメ at Python入門者の集い
Takayuki Shimizukawa
Ad
More from Katsuhiro Morishita
(20)
PDF
数ページの卒業論文作成のためのwordの使い方
Katsuhiro Morishita
PDF
オトナのpandas勉強会(資料)
Katsuhiro Morishita
PDF
SIgfox触ってみた in IoTLT in 熊本市 vol.3
Katsuhiro Morishita
PDF
Google Colaboratoryの使い方
Katsuhiro Morishita
PDF
Excelでのグラフの作成方法re
Katsuhiro Morishita
PDF
Pythonのmain関数
Katsuhiro Morishita
PDF
Pythonスクリプトの実行方法@2018
Katsuhiro Morishita
PDF
機械学習と主成分分析
Katsuhiro Morishita
PDF
Pythonで始めた数値計算の授業@わんくま勉強会2018-04
Katsuhiro Morishita
PDF
マークシート読み込みプログラムを作ってみた@2018-04-04
Katsuhiro Morishita
PDF
LoRa-WANで河川水位を計測してみた@IoTLT@熊本市 vol.001
Katsuhiro Morishita
PDF
シリーズML-08 ニューラルネットワークを用いた識別・分類ーシングルラベルー
Katsuhiro Morishita
PDF
シリーズML-07 ニューラルネットワークによる非線形回帰
Katsuhiro Morishita
PDF
シリーズML-06 ニューラルネットワークによる線形回帰
Katsuhiro Morishita
PDF
シリーズML-05 ニューラルネットワーク
Katsuhiro Morishita
PDF
シリーズML-03 ランダムフォレストによる自動識別
Katsuhiro Morishita
PDF
シリーズML-01 機械学習の概要
Katsuhiro Morishita
PDF
Pandas利用上のエラーとその対策
Katsuhiro Morishita
PDF
Pythonによる、デジタル通信のための ビタビ符号化・復号ライブラリの作成
Katsuhiro Morishita
PDF
機械学習(仮)in Mobile conference 2017
Katsuhiro Morishita
数ページの卒業論文作成のためのwordの使い方
Katsuhiro Morishita
オトナのpandas勉強会(資料)
Katsuhiro Morishita
SIgfox触ってみた in IoTLT in 熊本市 vol.3
Katsuhiro Morishita
Google Colaboratoryの使い方
Katsuhiro Morishita
Excelでのグラフの作成方法re
Katsuhiro Morishita
Pythonのmain関数
Katsuhiro Morishita
Pythonスクリプトの実行方法@2018
Katsuhiro Morishita
機械学習と主成分分析
Katsuhiro Morishita
Pythonで始めた数値計算の授業@わんくま勉強会2018-04
Katsuhiro Morishita
マークシート読み込みプログラムを作ってみた@2018-04-04
Katsuhiro Morishita
LoRa-WANで河川水位を計測してみた@IoTLT@熊本市 vol.001
Katsuhiro Morishita
シリーズML-08 ニューラルネットワークを用いた識別・分類ーシングルラベルー
Katsuhiro Morishita
シリーズML-07 ニューラルネットワークによる非線形回帰
Katsuhiro Morishita
シリーズML-06 ニューラルネットワークによる線形回帰
Katsuhiro Morishita
シリーズML-05 ニューラルネットワーク
Katsuhiro Morishita
シリーズML-03 ランダムフォレストによる自動識別
Katsuhiro Morishita
シリーズML-01 機械学習の概要
Katsuhiro Morishita
Pandas利用上のエラーとその対策
Katsuhiro Morishita
Pythonによる、デジタル通信のための ビタビ符号化・復号ライブラリの作成
Katsuhiro Morishita
機械学習(仮)in Mobile conference 2017
Katsuhiro Morishita
Ad
Pythonのパッケージ管理ツールの話@2020
1.
かごもく Pythonのパッケージ管理ツール 2020-05-23 Zoom 森下功啓 1 https://kagoben.connpass.com/event/176282/
2.
自己紹介 リリースしてきたもの • 鳴き声から鳥の種類を当てるソフトウェア • 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 熊本高専八代キャンパス
3.
Pythonの紹介 • ニシキヘビがシンボル • Rubyと同じくインタプリタ言語 •
ライブラリが豊富 • 有名どころ: numpy, scipy, matplotlib, pandas, requests • 科学・工学用途に人気 • Webでも使われている • Google Colaboratoryを使ってオンライン上で機械学習ぽちぽち • Python 2はサポート切れ • 今はPython 3 3 a = 100 # ;がいらない for x in range(100): print(a) # インデントがないと、エラー
4.
Pythonのインストール • Linux系だと最初からPythonはある • Windowsは、インストールするか、Ubuntu立ち上げるか •
Macはhomebrewでインストールがお勧め 4 https://www.python.org/downloads/windows/ Windowsの機械学習勢 がAnacondaを使うこ ともあるが、省略 Macで複数バージョンのインター プリターを試したいなら、brew でpyenvを入れて、pyenvでイン タープリターを入れてください。 ただし、ライブラリを入れる際に ビルドで失敗しやすいという罠が あります。
5.
本資料ご利用上の注意 Pythonのパッケージ管理ツールや仮想環境作成ツールは紆余曲 折を経て様々なものがリリースされています。 これで絶対間違いない、というものは無さそう。 個人的にはこれがお勧めという方法を紹介します。 5
6.
pipでパッケージ(ライブラリ)のインストール • pipはPython 3.4以降に同梱 •
ライブラリのインストールには、pipを使う • pip install numpy • PyPIからライブラリがダウンロードされる • アンインストール • pip uninstall numpy • pip freeze でインストールされているライブラリ一覧 • ファイルでインストール(バージョン指定もできる) • pip install -r requirements.txt 6 かなり古いなど特殊な環境で は、easy_installでまずpipを 入れることもある
7.
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 ~と入力
8.
仮想環境の作り方 • インストールしたPythonインタープリタで様々なプログラムを作 成していくと、ライブラリのバージョン依存問題に直面する • Aに対応したらBが失敗する •
仮想環境を作りましょう • 仮想環境とは、インタープリタ本体は共有して、ライブラリを完 全に切り分けた環境を作る仕組み • venvを使います • venvはPython 3.3でvirtualenvが公式に取り込まれたもの • virtualenvはvirtualenvでまだ存続 • 挙動に差はあるものの、どのインタープリタのどのvenvを使っているとい う自覚があれば、venvでOK 8
9.
venvコマンドと実行結果 • コマンド例 • venv
bar 9 Windowsでランチャーpy.exeはインストールしてもPythonインタープ リタへのパスを通さなかった場合は、py -m venv ~と入力 環境名 作成されたファイル達@Windows 同じ名前のフォル ダが作成される
10.
仮想環境へ切り替え@Windows • 作った仮想環境に実行環境を切り替える • 環境名¥Scriptsの中に、activate.batがあるので、これを実行 •
仮想環境を有効にするコマンド例 • bar¥Scripts¥activate • 仮想環境を抜けるコマンド • deactivate 10 *Mac, Linuxの方は下記サイトを参考にしてください。 https://qiita.com/fiftystorm36/items/b2fd47cf32c7694adc2e
11.
メモ • pyvenv • pyvenvはPython3.3と3.4で推奨されていた仮想環境作成ツール •
Python3.5以降ではvenvが推奨されている • 主にMacで複数のPythonインタープリタを切り替えるpyenvと、この pyvenvを混同しているブログがあり、注意 • pipenv • ライブラリ管理と仮想環境管理を同時にやってくれる • pipでできない依存関係も管理してくれる • 登場して間もないが、既に廃れつつある • コマンドの履歴が使えないのが個人的に痛い • pipで入れたものはpipenvの管轄外となる • 依存関係解決のため、動作がやや遅い • Poetryの方が良いらしい 11
12.
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
13.
参考文献 • 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
Download