You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置Poetry项目,使Python模块成为可直接运行的命令行工具

实现直接调用命令行工具的配置步骤

要让你的Poetry管理的Python项目能像Poetry本身一样直接通过命令名调用,只需配置项目的脚本入口即可,具体操作如下:

1. 编辑pyproject.toml添加脚本入口

在项目根目录的pyproject.toml文件中,新增[tool.poetry.scripts]区块,格式为:

[tool.poetry.scripts]
自定义命令名 = "模块路径:入口函数名"

举个实际例子:假设你的项目主模块是mycli,命令行入口函数是mycli/main.py里的main(),配置就写:

[tool.poetry.scripts]
mycli = "mycli.main:main"

这里左边的mycli就是你之后要直接在Shell里敲的命令,右边是模块路径(用点分隔)加入口函数的引用。

2. 重新安装项目

运行以下命令,Poetry会自动把你定义的命令链接到虚拟环境的可执行目录:

poetry install

链接的目录位置:

  • Linux/macOS:虚拟环境下的bin/目录
  • Windows:虚拟环境下的Scripts/目录
    只要你激活了虚拟环境,这个目录已经在Shell的PATH中,直接敲mycli就能运行项目。

3. 实现全局可用(可选)

如果不想每次都激活虚拟环境才能调用命令,运行:

poetry install --user

这会把命令安装到用户专属的可执行目录:

  • Linux/macOS:~/.local/bin
  • Windows:%APPDATA%\Python\Scripts
    确保这个目录在你的系统PATH环境变量中,之后无论是否激活虚拟环境,都能直接用自定义命令调用项目。
注意事项
  • 入口函数如果需要处理命令行参数,使用argparse、click这类库完全没问题,Poetry的脚本配置不会影响参数处理逻辑。
  • 自定义命令名和模块名重复也没关系,Poetry会正确区分两者。

内容的提问来源于stack exchange,提问作者Psycho Punch

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 22:31:11