PythonãåŠã³å§ããŠæåã«ã¶ã€ããå£ãšããã°ãä»®æ³ç°å¢ããšãããã±ãŒãžç®¡çãã§ãããããžã§ã¯ãããšã«å¿ èŠãªã©ã€ãã©ãªã®ããŒãžã§ã³ãéã£ãããäŸåé¢ä¿ãè€éã«çµ¡ã¿åã£ããâŠãã³ãŒããæžãåã«ç°å¢æ§ç¯ã§æ¶èããŠããŸãããããªçµéšããæã¡ã®æ¹ãå€ãã®ã§ã¯ãªãã§ããããã
ããã§ä»ãæ¥éã«æ³šç®ãéããŠããã®ã UV ãšããæ°ããããã±ãŒãžç®¡çããŒã«ã§ããRust補ã§åŠçãçéããããPythonæ¬äœã®ããŒãžã§ã³ç®¡çããã©ã€ãã©ãªç®¡çãããã¯ãã¡ã€ã«ã«ããåçŸæ§ç¢ºä¿ãŸã§ããã1æ¬ã§å®çµããŸããç°å¢æ§ç¯ã®ã¹ãã¬ã¹ããè§£æŸãããã°ãçŽç²ã«ãã³ãŒããæžãæ¥œãããã«éäžã§ããæªæ¥ãåŸ ã£ãŠããŸãâš
UVã¯ä»®æ³ç°å¢ã®äœæãšããã±ãŒãžç®¡çãã§ããããŒã«ã§ããããŸã§å®çªã ã£ãvenvã»condaã»Poetryãªã©ã®åŒ±ç¹ãå æããååšãšããŠç»å ŽããŸãããå ·äœçã«ã¯ãPythonæ¬äœã®ã€ã³ã¹ããŒã«ãã§ããªããåŠçãé ããäŸåé¢ä¿ã®è§£æ±ºã匱ãããšãã£ãåŸæ¥ããŒã«ã®äžæºç¹ãäžæ°ã«è§£æ¶ããŠãããŸãã
泚æç¹ãšããŠãUVã¯ãŸã ã¡ãžã£ãŒããŒãžã§ã³1æªæºïŒå·çæç¹ã§0.8ç³»ïŒã§ããç Žå£ç倿Žãå ¥ãå¯èœæ§ãããããšãçè§£ããäžã§å°å ¥ãæ€èšããŸãããã
å°å
¥ã®ããŒãã«ã¯é©ãã»ã©äœããå
¬åŒãµã€ãã«èšèŒã®ã³ãã³ã1è¡ã§ã€ã³ã¹ããŒã«å¯èœã§ããWindowsãªãPowerShellãmacOS/Linuxãªãã¿ãŒããã«ããå®è¡ããã ããããšã¯ãããžã§ã¯ããã©ã«ãã§ uv init ãå©ãã°ã.gitignoreã».python-versionã»pyproject.tomlã»main.py ãªã©ãèªåçæãããŸãã
pyproject.tomlã»uv.lockã».python-version ã®3ã€ãå
±æããã°ãã¡ã³ããŒã¯ uv sync äžçºã§å
šãåãç°å¢ãåçŸã§ããŸããPythonã®ããŒãžã§ã³ããäŸåããã±ãŒãžã®ããã·ã¥å€ãŸã§ç®¡çãããããããåãã¯ããªã®ã«åããªãåé¡ããæ¿æžããŸããããã¯å人éçºã§ããæ°ãæåŸã®èªåãæã£ãŠããã匷åãªä»çµã¿ã§ãã
ããŒã«ã®æäœãèŠããã ãã§ãªããåå°ãšãªãPythonã®åºç€åãã³ã³ãã¥ãŒã¿ãŒã®çè§£ãæ·±ããããšã§ãUVã®ããããã¿ã¯äœåã«ãæããããããã«ãªããŸããããã§ã¯ãåå¿è ããäžçŽè ãžã¹ãããã¢ããããããã«åœ¹ç«ã€æžç±ãšã¬ãžã§ãããå³éžããŸããð
UVã䜿ãããªãåã«ããŸãã¯Pythonèªäœã®ææ³ãã©ã€ãã©ãªã®æèŠãæŽãããšãæåªå ããã³ãºãªã³åœ¢åŒã§é²ããããå ¥éæžãªããä»®æ³ç°å¢ãäœã£ãŠè©Šãåæ©ã¥ãã«ããªããŸãã
ãåãã°ããããããã¡ã³ãããããã³ãŒãããžã¹ãããã¢ãããããªããå®åå¯ãã®Pythonæ¬ããããããäŸåé¢ä¿ããã¹ãããã©ãŒããã¿ãŒã®èãæ¹ãçè§£ãããšãUVã®ã°ã«ãŒãã³ã°æ©èœïŒ--devãªã©ïŒã®æå³ãã¹ãã³ãšè ã«èœã¡ãŸãã
UVã§ãµã¯ããšä»®æ³ç°å¢ãäœããDjangoãFlaskã§Webã¢ããªãåãããŠã¿ãæµãã¯æé«ã«æ¥œããäœéšã§ãããã¬ãŒã ã¯ãŒã¯ã®æ¬ã1åæã£ãŠãããšãåŠç¿ã®æãæ¢ãŸããŸããã
ã³ãã³ããæã€æ©äŒãå¢ãããããããããŒããŒãã®æéµæã¯åŠç¿å¹çã«çŽçµããŸããéé³ã¿ã€ãã®ã¡ã«ãã«ã«ããŒããŒããªããå€éã§ãæ°å Œããªãã¿ã€ãã³ã°ã楜ãããå匷æéãèªç¶ãšäŒžã°ããŸãð
ã¿ãŒããã«ãšãšãã£ã¿ãŒãããã¥ã¡ã³ãã䞊ã¹ãŠèŠãããã ãã§éçºäœéšã¯åå€ããŸããããŒãPCã«1æè¶³ãã ãã®ã¢ãã€ã«ã¢ãã¿ãŒã¯ãUVã§ã®ç°å¢æ§ç¯æ€èšŒãè€æ°ãããžã§ã¯ãåæé²è¡ã«æé©ã§ãã
æ°èŠãããžã§ã¯ãã§åŠçé床ãPythonæ¬äœã®ç®¡çãŸã§äžæ¬ã§æžãŸããããªãUVãæåã§ããPoetryã¯æçããŠããè³æãè±å¯ãªã®ã§ãæ¢åãããžã§ã¯ãããã®ãŸãŸéçšãããªãç¡çã«UVãžç§»è¡ããå¿ èŠã¯ãããŸããã
condaã¯äŸå解決ãã€ã³ã¹ããŒã«åŠçãé ãã®ãããã¯ã§ãããUVã¯Rust補ã§äžŠååŠçãæŽ»çšããŠãããããäœæã§ããã»ã©ã®é«éåãæåŸ ã§ããŸãããµã€ãšã³ã¹ç³»ã§ç¹æ®ãªããã±ãŒãžã䜿ãå Žåã¯condaãæå©ãªå Žé¢ããããŸãã
uv runã¯ãããžã§ã¯ãã®ä»®æ³ç°å¢å ã§ã³ãã³ããå®è¡ããŸããäžæ¹uvxã¯ä»®æ³ç°å¢ãšã¯åãé¢ãããå Žæã«ã€ã³ã¹ããŒã«ã»å®è¡ãããããpytestãblackããç°å¢ãæ±ããäžæçã«è©Šãããããšãã«äŸ¿å©ã§ãã
åºæ¬çã«uv.lockã¯ã³ãã³ãçµç±ã§èªåæŽæ°ããããã¡ã€ã«ã§ããæåç·šéã¯æšå¥šãããŠããããuv addãuv removeãuv lock --upgradeãªã©ã®ã³ãã³ãã§æäœããã®ãå®å
šã§ãã
UVã¯ãŸã ã¡ãžã£ãŒããŒãžã§ã³1æªæºã§ãç Žå£ç倿Žãå ¥ãå¯èœæ§ããããŸããå°å ¥ããå Žåã¯ããŒãžã§ã³ãåºå®ããCI/CDã§ã®ãã¹ããååã«è¡ãããšãããããããŸãã
UVã¯ãPythonã®ç°å¢æ§ç¯ãšããã±ãŒãžç®¡çããéãã»æ£ç¢ºã«ã»ã·ã³ãã«ã«ãå€ããŠãããæ°äžä»£ã®ããŒã«ã§ããPythonæ¬äœã®ç®¡çãäŸåé¢ä¿ã®è§£æ±ºãããã¯ãã¡ã€ã«ã«ããåçŸæ§ããããŠuvxã«ããäžæå©çšãŸã§ãéçºã§æ¬åœã«æ¬²ããã£ãæ©èœããã ã£ãšè©°ãŸã£ãŠããŸãã
ããŒã«ã®å°å ¥ãšäžŠè¡ããŠãå ¥éæžã»å®è·µæžã»å¿«é©ãªããã€ã¹ç°å¢ãæŽããã°ãåŠç¿ã¹ããŒãã¯å é床çã«äŒžã³ãŠãããŸãã仿¥ããæãåãããŠãã¹ãã¬ã¹ã®ãªãPythonã©ã€ããæã«å ¥ããŸãããð
ð§© ããºã«ãè§£ãå¿«æãã³ãŒãã§…
âš ããã°ã©ã ã®åäœã軜ããã…
ð ãµãŒããŒãµã€ãéçºã®äžçãž…
âš é¢åãªWebäœæ¥ãèªååã…
ð ïž ããã¹ãããã€ããããå…
â³ ãåŸ ã¡æéãããŒãã«ãã