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
【令和最新版】Python実行環境の選択肢 / Modern Python Env Manag...
Search
snhryt
July 15, 2024
Programming
0
130
【令和最新版】Python実行環境の選択肢 / Modern Python Env Management 20240628
2024年6月28日に社内勉強会で利用した資料に一部加筆修正を施したものです
snhryt
July 15, 2024
Tweet
Share
More Decks by snhryt
See All by snhryt
マイベストのシンプルなデータ基盤の話 - Googleスイートとのつき合い方 / mybest-simple-data-architecture-google-nized
snhryt
0
140
DataformでPythonする / dataform-de-python
snhryt
0
230
ヤバい(わるい意味)データでヤバい(いい意味)ことしようとしている話 / yabai-yabai-data-yabai
snhryt
0
130
寿命の短いデータ分析コードにも、ちょっとだけ優しくしてあげたい話 / kindness-for-short-lifespan-codes
snhryt
1
91
マテリアルズ・インフォマティクスの先端で起きていること / What's Happening at the Cutting Edge of Materials Informatics
snhryt
1
260
Other Decks in Programming
See All in Programming
Building AI with AI
inesmontani
PRO
0
180
Functional Calisthenics in Kotlin: Kotlinで「関数型エクササイズ」を実践しよう
lagenorhynque
0
130
Feature Flags Suck! - KubeCon Atlanta 2025
phodgson
0
120
AI駆動開発ライフサイクル(AI-DLC)のホワイトペーパーを解説
swxhariu5
0
930
「正規表現をつくる」をつくる / make "make regex"
makenowjust
1
420
モデル駆動設計をやってみよう Modeling Forum2025ワークショップ/Let’s Try Model-Driven Design
haru860
0
150
知られているようで知られていない JavaScriptの仕様 4選
syumai
0
600
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
500
2026年向け会社紹介資料
misu
0
190
What's New in Web AI?
christianliebel
PRO
0
130
Java_プロセスのメモリ監視の落とし穴_NMT_で見抜けない_glibc_キャッシュ問題_.pdf
ntt_dsol_java
0
190
Core MIDI を勉強して作曲用の電子ピアノ作ってみた!
hypebeans
0
110
Featured
See All Featured
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
Visualization
eitanlees
150
16k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
249
1.3M
Measuring & Analyzing Core Web Vitals
bluesmoon
9
670
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.1k
How GitHub (no longer) Works
holman
315
140k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
37
2.6k
What’s in a name? Adding method to the madness
productmarketing
PRO
24
3.8k
A better future with KSS
kneath
239
18k
The Art of Programming - Codeland 2020
erikaheidi
56
14k
Mobile First: as difficult as doing things right
swwweet
225
10k
Fireside Chat
paigeccino
41
3.7k
Transcript
ʲྩ࠷৽൛ʳ 1ZUIPO࣮ߦڥͷબࢶ TOISZU
*OUSPEVDUJPO
ఆಡऀ • ಛʹͩ͜ΘΓͳ͍͚ͲɺීஈͳΜͱͳ͘ QZFOW WFOW QJQΛ͍ͬͯΔ • 3ZFͱ͔VWͬͯ࠷ۙͨ·ʹฉ͚͘ͲͳΜͳͷʁ
ʲྩ࠷৽൛ʳ 1ZUIPO࣮ߦڥͷબࢶ TOISZU ͦͦԿΛࢦ͢ʁ
1ZUIPO࣮ߦڥཁૉͰߏ͞ΕΔʢͷͱ͢Δʣ • 1ZUIPOͷόʔδϣϯཧ • Ծڥ • ύοέʔδཧ
αϚϦʔ • νʔϜ։ൃΫϥυͷσϓϩΠΛ͢ΔͳΒ %PDLFS QJQ͕ͳΜ͔Μ҆ύΠ • ࣗͰ͖์͍͍ͬͯͳΒ • ʮ1ZUIPOҎ֎ͷݴޠ৮ΔΜͩΑͳ͊ʯBTEG VW
• ʮ1ZUIPO͚ͩͰ͍͍ΜͩΑͳ͊ʯ3ZF બࢶ ݸਓత͓͢͢Ί 1ZUIPOͷόʔδϣϯཧ Ծڥ ύοέʔδཧ ˒ˑˑˑˑ QZFOW $POEB $POEB ˒˒ˑˑˑ QZFOW WFOW QJQ ˒ˑˑˑˑ QZFOW 1JQFOW 1JQFOW ˒˒˒ˑˑ BOZFOW 1PFUSZ 1PFUSZ ˒˒ˑˑˑ BOZFOW 1%. 1%. ˒˒˒˒ˑ BTEG VW VW ˒˒˒˒˒ 3ZF 3ZF 3ZF VW ˒˒˒˒ˑ )BUDI )BUDI )BUDI ˒˒˒˒˒ %PDLFS %PDLFS QJQ ˒˒˒˒ˑ %PDLFS %PDLFS 1PFUSZ ˞·͡ΊʹશΈ߹ΘͤΛߟ͑Δͱύλʔϯ͕Ε্͕ΔͷͰɺ͋Δఔ࣌ײΛଗ͑ͭͭɺ͍͑ͰΈ߹ΘͤΛઃఆ͍ͯ͠·͢
ิʮݸਓతʹʯͱॻ͖·͕ͨ͠ɺࢲ͜Μͳঢ়گͷਓؒ • ։ൃͷେʢ͙Β͍ʣ1ZUIPO • ओͳ༻్σʔλੳɺ.-σϦϯάɺ؆қͳ8FCΞϓϦέʔγϣϯ։ൃ 4USFBNMJU FUD • Γ͕42- #JH2VFSZ
Γ͕5FSSBGPSN • 8JOEPXTͰ։ൃ͠ͳ͍ • .BDͷϩʔΧϧ্Ͱ։ൃ͢Δ͜ͱ͕ଟ͍ • Ϋϥυ্ͷ-JOVYαʔόʔ্Ͱ։ൃ͢Δ͜ͱ͋Γ • ۀͱϓϥΠϕʔτར༻ͲͪΒ͋Γ • ۀ༻్ͰΫϦςΟΧϧͳ੍ʢFH1ZUIPOܥ͕ඞਢͰʙʣجຊͳ͍ • ͦͦ࠷ۙ͋·ΓۀͰίʔυΛॻ͚͍ͯͳ͍
1ZUIPOͷόʔδϣϯཧ
͜ͷதͩͱɺݸਓతʹ BTEG Ұ • QZFOW1ZUIPOͷͨΊͷόʔδϣϯཧπʔϧ • BOZFOWQZFOWΛ࢝Ίͱ͢Δɺෳݴޠͷ FOWΛҰ؏ͯ͠ཧ͢Δπʔϧ • anyenv
install pyenv ͷΑ͏ʹ͏ • 1ZUIPOҎ֎ͷݴޠΛΘͳ͍߹ϝϦοτ͕΄΅ͳ͍ɻ ͨͩQZFOWΛΠϯετʔϧ͢Δ·Ͱʹͻͱख͕ؒ૿͑Δ͚ͩ • ຊਓͷํ !SJZXP ͕ݸਓ։ൃ͍ͯͯ͠ɺ೦ͳ͕ΒҎ߱ϦϦʔε్͕ઈ͍͑ͯΔ • BTEGQZUIPOΛؚΉɺ͞·͟·ͳݴޠɾ$-*ίϚϯυͷόʔδϣϯཧπʔϧ • asdf plugin-add python; asdf install python 3.12.XX ͷΑ͏ʹ͏ • BOZFOWʮόʔδϣϯཧπʔϧΛཧ͢Δπʔϧʯ͕ͩͬͨɺ BTEGΑΓతʹݴޠɾ$-*ͷόʔδϣϯཧ͕Ͱ͖Δ • WͰ֬ೝͨ͠ΒɺϓϥάΠϯݸʢʂʣ͋ͬͨ 5FSSBGPSNؔ࿈͚ͩͰ͜ͷྔˠ ʢDGBOZFOWͩͱUGFOWͷΈʣ 🙏 FYDVTF🙏 NJTFଘࡏ͚ͩೝ͍ͯ͠·͕͢ ΩϟονΞοϓͰ͖ͯͳ͍Ͱ͢ʜ
ࢀߟόʔδϣϯཧπʔϧͷ(JU)VCελʔਪҠ IUUQTTUBSIJTUPSZDPNQZFOWQZFOWBOZFOWBOZFOWBTEGWNBTEG%BUF
Ծڥɾύοέʔδཧ
࠷ۙԾڥͱύοέʔδཧ͕ͭͷπʔϧͰ݁͢Δ͜ͱ͕ଟ͍ • ҎԼͯ͢ɺԾڥߏஙύοέʔδཧͬͯ͘ΕΔπʔϧ • $POEB "OBDPOEB.JOJDPOEB • 1JQFOW • 1PFUSZ
• 1%. • VW • ରൺͱͯ͠ɺൺֱతલ͔Βଘࡏ͢Δ WJSUVBMFOW WFOW ͳͲ ԾڥͷΈΛఏڙ͠ɺύοέʔδཧQJQͳͲଞͰ୲͏ඞཁ͕͋ͬͨ • ͱ͍͑ɺ্هͷԾڥɾύοέʔδཧҰମܕܥͷπʔϧɺཪଆͰ WJSUVBMFOW WFOW ͷڥཱ͕͍ͬͯͯɺͦΕΛπʔϧଆͰϚωʔδ͍ͯ͠Δ͜ͱ͕ଟ͍ IUUQTTUBSIJTUPSZDPNDPOEBDPOEBQZQBQJQFOWQZUIPO QPFUSZQPFUSZQENQSPKFDUQENBTUSBMTIVW%BUF
$POEB "OBDPOEB.JOJDPOEB • ͍ʂ • "OBDPOEBେن৫Ͱͷ༻ར༻ʹ༗ྉϥΠηϯε͕ඞཁʹ ˠ .JOJDPOEB DPOEBGPSHFͰͷճආ͕Ұൠత ˠ
ʘ໘͍͘͞ ʗ • ԾڥߏஙͱύοέʔδཧΛ྆ํͬͯ͘ΕΔʮฮʯͰɺ ͦΕΏ͑8FCɾจݙͷࢀߟใͷ๛ͳͷͰɺॳֶऀ͖Ͱ͋Δ • "OBDPOEBͷग़ࣗΛߟ͑ΔͱͨΓલ͕ͩʣػցֶशσʔλੳͷखஈͱͯ͠ɺͨ·ͨ· 1ZUIPO͕ద͓ͯ͠Γɺͦͷ1ZUIPOΛಈ͔ͨ͢Ίͷʙͱ͍͏จ຺ͰجຊతʹΘΕ͍ͯΔ • 8FCΞϓϦέʔγϣϯ։ൃͰ$POEB͕ΘΕΔέʔεͬͯ͋ΔͷͩΖ͏͔ʁ🧐
1JQFOW • QJQͷ։ൃݩͰ͋Δ1Z1"͕։ൃ͍ͯ͠Δπʔϧ • UPNMϑΝΠϧ MPDLϑΝΠϧͰͷύοέʔδཧͷઌۦऀతଘࡏ • ͨͩ͠ɺཧʹ༻͍ΒΕΔ 1JQGJMF ಠࣗϑΥʔϚοτͰඇ1&1४ڌ
• ޙʹ͍͕͕͋ͬͨɺಛʹ 1PFUSZొޙʹ͍͕ͳ͘ͳ͍ͬͯΔ • ͱ͍͑ɺࠓܧଓతʹϦϦʔε͍ͯ͠ΔͷͰ ػೳΞοϓσʔτணʑͱೖ͍ͬͯΔ༷ʁ • ʢ͑ͯͳ͍ͷͰৄ͍͠ਓڭ͍͑ͯͩ͘͞ʣ • Μ͘͠͞ΜͷϒϩάͰࠒ·Ͱͷมભ͕ৄ͘͠հ͞ΕͯΔͷͰੋඇ IUUQTWBBBBBBORVJTIIBUFOBCMPHDPNFOUSZ
1PFUSZ • ʹೖ͔ͬͯΒ1JQFOWΛൈ͍ͯओྲྀʹͳΓͭͭ͋Δπʔϧ • ͲͪΒ͔ͱ͍͏ͱɺԾڥͱ͍͏ΑΓɺύοέʔδཧจ຺͕ϝΠϯͳҹ • ڧΈ • QZQSPKFDUUPNM ͰSFRVJSFNOUTUYU
TFUVQQZ ͷ྆ํͷׂΛ ՌͨͤΔɻ͔͠ࢹ֮తʹݟ͍͢ • QZQSPKFDUUPNM1&1४ڌ ˠ ޓੑߴ • QJQͩͱύοέʔδͷґଘؔͰίϯϑϦΫτ͕͠͠ ൃੜ͢Δ͕ɺ1PFUSZڧྗͳϦκϧόͷ͓͔͛Ͱɺ ίϯϑϦΫτΛ͍͍ײ͡ʹղܾͯ͘͠ΕΔʢ͜ͱ͕ଟ͍ʣ • GMBLF QZUFTUͷ։ൃ͔࣌͠Θͳ͍ύοέʔδΛ͚ͯ ཧͰ͖Δ • ύοέʔδΛՃ͢Δͱඞͣόʔδϣϯ͕QZQSPKFDUUPNM ʹ ໌ه͞ΕΔ ˠ ίʔυͷ࣮ߦ࠶ݱੑͷ୲อ • SFRVJSFNFOUTUYU Ͱ͋Γ͕ͪͳɺόʔδϣϯࢦఆ࿙ΕʹΑΔ ʮલಈ͍͚ͨͲࠓಈ͔ͳ͘ͳͬͯ͠·ͬͨʯΛ͛Δ • WFOW QJQͱͷରൺ • Ծڥߏஙpython –m venv venv; source venv/bin/activate; pip install –r requirements.txt ˱poetry install • ύοέʔδͷΠϯετʔϧpip install pandas ˱ poetry add pandas • λεΫϥϯφʔͱͯ͠ͷػೳͳ͠ʢࢀߟ 1PFUSZͷ TDSJQUTλεΫϥϯφʔػೳͰͳ͍ʣ ˢ͍ͭ࠷ۙۀͰͬͨQZQSPKFDUUPNM
1%. • 1%.1ZUIPO%FWFMPQNFOU.BTUFSˡͭΑͦ͏ʢখฒײʣ • 1PFUSZͷޙഐʢϦϦʔελΠϛϯάతʹʣͰɺ1PFUSZͱಉ༷ʹQZQSPKFDUUPNM ϕʔεͰϓϩδΣΫτɾύοέʔδΛཧՄೳ • ίϚϯυૢ࡞ײͷޓੑߴ͘ɺ͔ͳΓγʔϜϨεʹҠߦͰ͖Δ •
1PFUSZͱൺͯͷڧΈࠓͱͳͬͯ͋·Γͳ͍ • 1&1४ڌ ͦͦ1&1ࣗମ͕ϦδΣΫτ͞Εͨ • ԾڥΛ࡞ΒͣʹɺϩʔΧϧͷ __pypackages__ σΟϨΫτϦʹඞཁͳͷΛͯ͢Πϯετʔϧ͢Δ • ͍ ͔ͬͨ • 1PFUSZ͕ΊͪΌͪ͘Ό͘ͳͬͯΔ༷ • Ωϟογϡͳ͠ঢ়ଶͷ QPFUSZJOTUBMMWTQEN JOTUBMMͷൺֱ ˞1ZUIPO1BDLBHF.BOBHFS4IPPUPVUͷ࣌ʢڕͪ͜ΒͷهࣄΛࢀরʣͱຊ࣌Ͱൺֱ • QEN MBUFTU T • QPFUSZT • QPFUSZT IUUQTEJTDVTTQZUIPOPSHUQFQQZUIPOMPDBMQBDLBHFTEJSFDUPSZ
VW • ݄ʹൃද͞Ε͔ͨΓͷ͔ͳΓ৽͍͠πʔϧɻ 3VTUͷര1ZUIPOϑΥʔϚολʔz3VGGzΛ։ൃ͍ͯ͠Δ"TUSBM͕ࣾ։ൃ͍ͯ͠Δ • ಛ • 3VTUͰॻ͔Ε͍ͯΔͷͰരʢDG1PFUSZ 1%.1ZUIPOͰॻ͔Ε͍ͯΔʣ •
ૢ࡞ײWFOW QJQͱ΄΅ಉ͡ • Ծڥ্ཱͪ͛uv venv; source .venv/bin/activate • ύοέʔδΠϯετʔϧ uv pip install pandas • QZQSPKFDUUPNMʹରԠ͓ͯ͠Γ uv pip install –r pyproject.toml ͱ͍ͬͨૢ࡞Մೳ Ωϟογϡͳ͠ $PME Ωϟογϡ͋Γ 8BSN IUUQTBTUSBMTICMPHVW
ͥΜͿΓ
3ZF • !NJUTVIJLPʢ"SNJO3POBDIFS͞Μʣ͕ݸਓ։ൃ͖ͯͨ͠ 1ZUIPOͷόʔδϣϯཧؚΊͨ3VTUͷશ෦Γπʔϧ • ͕ͯ͢ SZFίϚϯυͰ݁͢Δ VW͑Δ • ϓϩδΣΫτ࡞rye
init • όʔδϣϯࢦఆrye pin 3.12 • ύοέʔδͷҰׅΠϯετʔϧʢQZQSPKFDUUPNMܦ༝ʣrye sync • ύοέʔδͷΠϯετʔϧrye add “flask>=2.0” • Ծڥ্Ͱͷ࣮ߦ rye run xxx • 3ZFͱVWʹີͳͭͳ͕Γ͕͋Δ • 3ZFͷϙςϯγϟϧɾχʔζͷߴ·Γͱཪෲʹɺݸਓ։ൃʹݶքΛײ͍ͯͨ͡ • ݄ͷVWϦϦʔεͷλΠϛϯάͰɺVW։ൃݩͷ"TUSBM͕ࣾ3ZFͷཧΛҾ͖ܧ͙ UBLJOHTUFXBSETIJQ ͜ͱΛൃද • কདྷతʹVWΛ֦ு͠ɺͦ͜ʹ3ZFͷػೳࢥΛ౷߹͍ͯ͘͠ ˞3ZF(SPXT8JUI67ΛಡΜͰ͜͏ղऍ͍ͯ͠·͕͢ɺཧղɾهड़͕ޡ͍ͬͯͨΒ͝ΊΜͳ͍͞ɾɾɾ
)BUDI • QJQ 1JQFOWͱಉ͡։ൃݩͷ1Z1"͕։ൃ͍ͯ͠Δશ෦Γπʔϧ • ͕ͯ͢ IBUDIίϚϯυͰ݁͠ɺ༻ײ3ZFʹ͍ۙɻVW͑Δ • ϓϩδΣΫτ࡞hatch new
• όʔδϣϯࢦఆhatch python install 3.12 • Ծڥ্Ͱͷ࣮ߦ hatch run python xxx • 3ZFͱൺֱͨ͠ಛ • QZQSPKFDUUPNMʹґଘύοέʔδΛॻ͚ɺ IBUDISVOΛͨ͠ͱ͖ʹࣗಈͰΠϯετʔϧ͞ΕΔ • 1ZUIPOͰॻ͔Ε͍ͯΔͷͷߴ • 1Z"QQͱ͍͏3VTUͷߴͳϥϯλΠϜΠϯετʔϥʔͷ 1ZUIPO8SBQQFSΛར༻͍ͯ͠ΔͨΊ • ೦ͳ͕Βɺ3ZFΑΓޙൃ͕͍ͩશʹෛ͚͍ͯΔʜ IUUQTTUBSIJTUPSZDPNBTUSBMTISZFQZQBIBUDI%BUF
$PODMVTJPO
ࢲ͍·ԿΛ͔͍ͭͬͯΔ͔ʁ • ෳਓͰ·͡Ίʹ։ൃ͢Δͱ͖ %PDLFS QJQ • ݸਓͰదʹ։ൃ͢Δͱ͖ BTEG VW •
࠷ۙ1ZUIPOॻ͘ͱ͖3ZFʹد͍͍͔ͤͯͱࢥ͍࢝Ί͍ͯΔɾɾɾ બࢶ ݸਓత͓͢͢Ί 1ZUIPOͷόʔδϣϯཧ Ծڥ ύοέʔδཧ ˒ˑˑˑˑ QZFOW $POEB $POEB ˒˒ˑˑˑ QZFOW WFOW QJQ ˒ˑˑˑˑ QZFOW 1JQFOW 1JQFOW ˒˒˒ˑˑ BOZFOW 1PFUSZ 1PFUSZ ˒˒ˑˑˑ BOZFOW 1%. 1%. ˒˒˒˒ˑ BTEG VW VW ˒˒˒˒˒ 3ZF 3ZF 3ZF VW ˒˒˒˒ˑ )BUDI )BUDI )BUDI ˒˒˒˒˒ %PDLFS %PDLFS QJQ ˒˒˒˒ˑ %PDLFS %PDLFS 1PFUSZ
ݸਓతͳߟ͑ • %PDLFS QJQͰॻ͍͓͚ͯͱΓ͋͑ͣϙʔλϏϦςΟ͕ߴ͍͠ɺ%PDLFS͕ ෳͷ։ൃऀϩʔϧʢYYYΤϯδχΞɺσʔλYYYʣͷڞ௨ݴޠʹͳͬͯ͘ΕΔ • Α͋͘ΔύλʔϯͳͷͰ8FCͷࢀߟใଟ͍ • έʔεʹΑΔ͕ DPNQPTFZBNM
ͰTFSWJDF͝ͱʹ։ൃΛਐΊΒΕΔHPPE • ͕ɺຖճ%PDLFSGJMFΛॻ͍ͨΓɺCVJME͢Δͷਖ਼໘ • ύοέʔδͷΠϯετʔϧɺ։ൃͷணख͕͞ਖ਼ٛɻ3VTU͔͠উͨΜ • 'PSNBUUFSଂܥͷπʔϧ͋Δ͕ɺͦͷΜQSFDPNNJUʹد͍ͤͨ
αϚϦʔʢ࠶ܝʣ • νʔϜ։ൃΫϥυͷσϓϩΠΛ͢ΔͳΒ %PDLFS QJQ͕ͳΜ͔Μ҆ύΠ • ࣗͰ͖์͍͍ͬͯͳΒ • ʮ1ZUIPOҎ֎ͷݴޠ৮ΔΜͩΑͳ͊ʯBTEG VW
• ʮ1ZUIPO͚ͩͰ͍͍ΜͩΑͳ͊ʯ3ZF બࢶ ݸਓత͓͢͢Ί 1ZUIPOͷόʔδϣϯཧ Ծڥ ύοέʔδཧ ˒ˑˑˑˑ QZFOW $POEB $POEB ˒˒ˑˑˑ QZFOW WFOW QJQ ˒ˑˑˑˑ QZFOW 1JQFOW 1JQFOW ˒˒˒ˑˑ BOZFOW 1PFUSZ 1PFUSZ ˒˒ˑˑˑ BOZFOW 1%. 1%. ˒˒˒˒ˑ BTEG VW VW ˒˒˒˒˒ 3ZF 3ZF 3ZF VW ˒˒˒˒ˑ )BUDI )BUDI )BUDI ˒˒˒˒˒ %PDLFS %PDLFS QJQ ˒˒˒˒ˑ %PDLFS %PDLFS 1PFUSZ ˞·͡ΊʹશΈ߹ΘͤΛߟ͑Δͱύλʔϯ͕Ε্͕ΔͷͰɺ͋Δఔ࣌ײΛଗ͑ͭͭɺ͍͑ͰΈ߹ΘͤΛઃఆ͍ͯ͠·͢
5IBOLZPV