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
160
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
【令和最新版】Python実行環境の選択肢 / Modern Python Env Management 20240628
2024年6月28日に社内勉強会で利用した資料に一部加筆修正を施したものです
snhryt
July 15, 2024
More Decks by snhryt
See All by snhryt
Dataformのリポジトリを立ち上げるときにまずやること / dataform-day0-2026
snhryt
0
230
マイベストのシンプルなデータ基盤の話 - Googleスイートとのつき合い方 / mybest-simple-data-architecture-google-nized
snhryt
0
400
DataformでPythonする / dataform-de-python
snhryt
0
340
ヤバい(わるい意味)データでヤバい(いい意味)ことしようとしている話 / yabai-yabai-data-yabai
snhryt
0
190
寿命の短いデータ分析コードにも、ちょっとだけ優しくしてあげたい話 / kindness-for-short-lifespan-codes
snhryt
1
130
マテリアルズ・インフォマティクスの先端で起きていること / What's Happening at the Cutting Edge of Materials Informatics
snhryt
1
320
Other Decks in Programming
See All in Programming
使用 Meilisearch 建立新聞搜尋工具
johnroyer
0
170
『コードを書く以外の』エンジニアリング〜課金基盤移行プロジェクト推進のためのTips4選
yuriko1211
0
530
【やさしく解説 設計編・中級 #6】良いアーキテクチャとは ~ 一本の登り道の、行き先 ~
panda728
PRO
0
180
Go言語とトイモデルで学ぶTransformerの気持ち / fukuokago23-transformer
monochromegane
0
140
【SRE NEXT 2026 Lunch Session】一人目専任SREの立ち上げを加速する ― AIと進めたオンボーディングで2分を0.04秒にした話
pkshadeck
PRO
0
2.9k
PHP初心者セッション2026 〜生成AIでは見えない裏側を知る:今だからLAMPを通して仕組みを学ぶ〜
kashioka
0
630
yield再入門 #phpcon
o0h
PRO
0
700
AI 輔助遺留系統現代化的經驗分享
jame2408
1
1.2k
Terraform標準の組織で AWS CDKをどう使うか
mu7889yoon
1
350
The Bowling Game- From Imperative to Functional Programming - Part 1
philipschwarz
PRO
0
340
Apache Hive: そしてCloud Native Lakehouseへ
okumin
1
160
AI時代の仕事技芸論〜ソフトウェア開発で「遊ぶように働く」職人的熟達のすすめ(スクフェス仙台 2026バージョン)
kuranuki
0
690
Featured
See All Featured
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
For a Future-Friendly Web
brad_frost
183
10k
Faster Mobile Websites
deanohume
310
32k
Six Lessons from altMBA
skipperchong
29
4.3k
Git: the NoSQL Database
bkeepers
PRO
432
67k
Evolving SEO for Evolving Search Engines
ryanjones
0
240
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
1
810
Designing for humans not robots
tammielis
254
26k
Information Architects: The Missing Link in Design Systems
soysaucechin
0
1k
The SEO Collaboration Effect
kristinabergwall1
1
510
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
Rebuilding a faster, lazier Slack
samanthasiow
85
9.6k
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