uvxã§èª°ã§ã䜿ããPythonèªäœããŒã«ãæè»œã«å ¬éããæ¹æ³
uvxãšã¯ïŒ
uvxã¯ãPythonã®ããã±ãŒãžãããŒãžã£ãŒuvã®äžéšã§ãPyPIã«å ¬éãããšãGitHubãªããžããªããçŽæ¥PythonããŒã«ãå®è¡ã§ãã䟿å©ãªæ©èœã§ããæ¬èšäºã§ã¯ã誰ã§ãç°¡åã«uvxã§åäœããããŒã«ãäœæã»å ¬éããæ¹æ³ã解説ããŸãã
æ¬èšäºã®åæãšããŠãuvã®åºæ¬ãçè§£ããŠããŠãã»ããã¢ãããå®äºããŠããå¿ èŠããããããuvãå šãç¥ããªãæ¹ããã»ããã¢ããããŠããªãæ¹ã¯ã以äžã®èšäºãåç §ããŠãã ããã
uvxã¯uv tool runã®ãšã€ãªã¢ã¹ã§ããuv toolã¯Python補ã®CLIããŒã«ãç°¡åã«ã°ããŒãã«ã«ã€ã³ã¹ããŒã«ã§ããæ©èœã§ããuvxãå®è¡ããããšã§PyPIã«ç»é²ãããŠããå€ãã®ïŒå
šãŠã§ã¯ãããŸããïŒCLIããŒã«ãæè»œã«åããããšãã§ããŸãã
PyPIã«ç»é²ããããœãããuvxã§åããæ¹æ³
äŸãã°Pythonã®Linterã»Formatterã§ããRuffãuvxã§äœ¿ããŸããuvããã€ã³ã¹ããŒã«ãããŠããã°ã以äžã³ãã³ãã§Lintãã§ãã¯ãšãã©ãŒããããã§ããŸãã
$ uvx ruff check
$ uvx ruff format
Ruffã«ã€ããŠè©³ããã¯ä»¥äžèšäºåç §ãã ããã
GitHubã®ãªããžããªäžã®ãœãããuvxã§åããæ¹æ³
uvxã§æè»œã«åããããã«ã¯PyPIã«ç»é²ããªããšé§ç®ã ãšæã£ãŠããã®ã§ãããGitHubãªããžããªãæå®ããŠãåããããšãã§ããããšãã€ãæè¿ç¥ããŸããã以äžã³ãã³ãã®ããã«--fromãªãã·ã§ã³ã䜿ããŸãã
$ uvx --from git+https://github.com/user/repo tool-name
ããã§ãGitHubã§å ¬éããèªäœããŒã«ããå€ãã®äººã«æè»œã«äœ¿ã£ãŠãããããšãã§ããŸãã
ä»åã¯è©Šãã«uvxã§åãããŒã«ãæ ŒçŽãããµã³ãã«ãªããžããªãäœæããŸãããAIã«é©åœã«äœã£ãŠããã£ããã®ã§ãå®çšæ§ã¯çç¡ã§ãïŒãããŸã§uvxããã¹ãããããã®ãªããžããªã§ãïŒã
åºæ¬çã«ã¯ä»¥äž3ç¹ãæºãããŠããã°uvxã§åããŸãã
- ã©ã€ãã©ãªãšããŠããã±ãŒãžåãããŠããïŒ
pyproject.tomlorsetup.pyãããïŒ - ã¢ãžã¥ãŒã«ãCLIãšã³ããªãã€ã³ããçšæãããŠãã
- å¿ èŠãªã©ã€ãã©ãªã®äŸåé¢ä¿ã宣èšãããŠãã
ã©ã€ãã©ãªã«é¢ããŠå šç¶åãããªãå Žåã¯ã以äžèšäºãåèã«ããŠãã ãã
äžèšãœããã®uvxã§ã®åããæ¹ã¯ãã¢ãžã¥ãŒã«ãšããŠåããå Žåã¯ä»¥äžã³ãã³ããå®è¡ããŸãã
$ uvx --from git+https://github.com/karaage0703/uvx-tools python -m hello_uvx.cli
å®è¡ãããšä»¥äžã®ããã«è¡šç€ºãããŸãã
âââââââââââââââââââââââââââââââââââââ
â Hello, World! â
â Time: 2025-10-01 23:12:43 â
â Running via uvx âš â
âââââââââââââââââââââââââââââââââââââ
console_scriptsãšã³ããªãã€ã³ãã䜿ããšpython -m hello_uvx.cliãããã·ã³ãã«ã«æžããŠå®è¡ã§ããŸããpyproject.tomlã§ä»¥äžã®ããã«å®çŸ©ããŸãã
[project.scripts]
hello-uvx = "hello_uvx.cli:main"
pysay = "pysay.cli:main"
file-stats = "file_stats.cli:main"
ããã§ã以äžã®ããã«ç°¡æœãªã³ãã³ãã§åãããŸãïŒè¡šç€ºçµæã¯åããªã®ã§çç¥ããŸãïŒã
$ uvx --from git+https://github.com/karaage0703/uvx-tools hello-uvx
uv tool install ã§ã€ã³ã¹ããŒã«ãã
é »ç¹ã«äœ¿ãããŒã«ã¯ uv tool install ã§ã€ã³ã¹ããŒã«ãããšäŸ¿å©ã§ããã°ããŒãã«ã«ã€ã³ã¹ããŒã«ããã«ã¯console_scriptsãšã³ããªãã€ã³ããå¿
èŠãšãªããŸãã
以äžã³ãã³ãã§ã€ã³ã¹ããŒã«ã§ããŸãã
$ uv tool install git+https://github.com/karaage0703/uvx-tools
ã€ã³ã¹ããŒã«ãããã以äžã³ãã³ããå®è¡ããŠã¿ãŸãããã
$ pysay 'Hello'
以äžã®ããã«ãŠã·ãããHelloãšèšã£ãŠãããŸãã
-------
< Hello >
-------
\ ^__^
\ (oo)\_______
(__)\ )\/\
||----w |
|| ||
ã€ã³ã¹ããŒã«æžã¿ããŒã«ã®ç®¡çïŒ
# ã€ã³ã¹ããŒã«æžã¿ããŒã«äžèЧ
uv tool list
# ããŒã«ãã¢ããããŒã
uv tool upgrade uvx-tools
# å
šããŒã«ãã¢ããããŒã
uv tool upgrade --all
# ããŒã«ãã¢ã³ã€ã³ã¹ããŒã«
uv tool uninstall uvx-tools
èªäœMCPãµãŒãã§uvxã䜿ãå Žå
uvxã¯ãèªäœã®MCPãµãŒãã§ãåãçºæ®ããŸããäŸãšããŠèªäœããKaggleã®æ å ±ãååŸããMCPãµãŒããæããŸãããã®MCPãµãŒããèšå®ããã«ã¯ãäžåºŠããŒã«ã«ã«MCPãµãŒãã®ãœãããããŠã³ããŒãããŠã以äžã®ããã«çµ¶å¯Ÿãã¹ã䜿ã£ãŠMCPãµãŒãã®å Žæãæå®ãããŠããŸããããã ãããã¯ããŠã³ããŒããšæç€ºããæéãããã®ãšãç°å¢äŸåãããã®ã§ãã¹ã§åããªãå¯èœæ§ãããããã§ããã
{
"mcpServers": {
"kaggle-mcp-server": {
"command": "uv",
"args": [
"run",
"--directory",
"</path/to/kaggle-mcp-server>",
"-m",
"kaggle_mcp_server"
]
}
}
}
ããã§uvxã§--fromã䜿ãã°ã絶察ãã¹ã䜿ããã«ã以äžã®ããã«GitHubã®ãªããžããªãæå®ããåœ¢ã§æžããŸãã
{
"mcpServers": {
"kaggle-mcp": {
"command": "uvx",
"args": [
"--from",
"git+https://github.com/karaage0703/kaggle-mcp-server",
"python",
"-m",
"kaggle_mcp_server"
]
}
}
}
ã³ãã³ãäžçºã§MCPãµãŒããèšå®ããããšãã§ããŸãã
PyPIã«ç»é²ããã°ãããã«ã·ã³ãã«ã«æžãããšãã§ããŸãããuvxã䜿ãã°ãMCPãµãŒããæè»œã«èšå®ã§ããã®ã§ãå¿çœ®ããªãMCPãµãŒãããããã§ãäœã£ãŠå ¬éã§ããŸããã
ãŸãšã
uvxã䜿ã£ãŠãPyPIã«å ¬éããã«ç°¡åã«PythonããŒã«ãå ±æã»å®è¡ããæ¹æ³ã玹ä»ããŸããã
ã¡ãã£ãšãã䟿å©ããŒã«ãMCPãµãŒããå ¬éãããšãã«äŸ¿å©ã ãšæããŸãã®ã§ãããã£ããæŽ»çšããŠã¿ãŠãã ããã
MCPãµãŒããèªäœããããšãã人ã¯Pythonã§ã¯ãããMCPéçºå ¥éãã©ããïŒïŒèè ãšããŠã®ãã€ã¬ã¯ãããŒã±ãã£ã³ã°ã§ãïŒïŒ
åèãªã³ã¯
é¢é£èšäº
Discussion
unknown venom xãããªããã§ããïŒ
Amazonã§ã¯Kindleã§ããã²çºå£²ããŠãã ããïŒå³ãè³Œå ¥ããŸã