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
78
【令和最新版】Python実行環境の選択肢 / Modern Python Env Management 20240628
2024年6月28日に社内勉強会で利用した資料に一部加筆修正を施したものです
snhryt
July 15, 2024
Tweet
Share
More Decks by snhryt
See All by snhryt
マテリアルズ・インフォマティクスの先端で起きていること / What's Happening at the Cutting Edge of Materials Informatics
snhryt
1
130
Other Decks in Programming
See All in Programming
WebフロントエンドにおけるGraphQL(あるいはバックエンドのAPI)との向き合い方 / #241106_plk_frontend
izumin5210
4
1.4k
Creating a Free Video Ad Network on the Edge
mizoguchicoji
0
120
Hotwire or React? ~アフタートーク・本編に含めなかった話~ / Hotwire or React? after talk
harunatsujita
1
120
Nurturing OpenJDK distribution: Eclipse Temurin Success History and plan
ivargrimstad
0
1k
Click-free releases & the making of a CLI app
oheyadam
2
120
Functional Event Sourcing using Sekiban
tomohisa
0
100
Enabling DevOps and Team Topologies Through Architecture: Architecting for Fast Flow
cer
PRO
0
340
Amazon Bedrock Agentsを用いてアプリ開発してみた!
har1101
0
340
Arm移行タイムアタック
qnighy
0
340
Better Code Design in PHP
afilina
PRO
0
130
Amazon Qを使ってIaCを触ろう!
maruto
0
420
3rd party scriptでもReactを使いたい! Preact + Reactのハイブリッド開発
righttouch
PRO
1
610
Featured
See All Featured
The Power of CSS Pseudo Elements
geoffreycrofte
73
5.3k
The Straight Up "How To Draw Better" Workshop
denniskardys
232
140k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
47
5k
Intergalactic Javascript Robots from Outer Space
tanoku
269
27k
What's in a price? How to price your products and services
michaelherold
243
12k
10 Git Anti Patterns You Should be Aware of
lemiorhan
655
59k
Stop Working from a Prison Cell
hatefulcrawdad
267
20k
Building a Scalable Design System with Sketch
lauravandoore
459
33k
Bash Introduction
62gerente
608
210k
Building an army of robots
kneath
302
43k
Writing Fast Ruby
sferik
627
61k
Rebuilding a faster, lazier Slack
samanthasiow
79
8.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