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

如何构建Python项目,实现安装后直接调用foo/bar/baz命令?

调整项目结构实现直接调用CLI命令

第一步:重构项目目录结构

把核心依赖代码(utilities.py、api_1.py等)统一放到一个Python包中,比如命名为core,调整后的结构如下:

your_package/
├── core/
│   ├── __init__.py
│   ├── utilities.py
│   ├── api_1.py
│   ├── api_2.py
│   └── api_3.py
├── foo.py
├── bar.py
├── baz.py
└── pyproject.toml

第二步:修改入口脚本的导入路径

在foo.py、bar.py、baz.py中,把原来对核心代码的导入路径改成从core包导入,示例如下:

# foo.py 示例
from core.utilities import some_util_func
from core.api_1 import some_api_func

def main():
    # 原有的CLI逻辑
    pass

if __name__ == "__main__":
    main()

第三步:配置控制台脚本(关键)

在项目根目录创建pyproject.toml文件,通过project.scripts字段把foo、bar、baz映射到各自脚本的主函数:

[project]
name = "your-package-name"
version = "0.1.0"
authors = [
  { name="Your Name", email="your@email.com" }
]
description = "Your package description"

[project.scripts]
foo = "foo:main"
bar = "bar:main"
baz = "baz:main"

注:foo:main表示foo.py文件中的main函数是命令入口,若你的入口函数叫其他名称(比如cli),直接改成foo:cli即可。

第四步:安装包验证效果

在项目根目录执行安装命令:

# 生产环境安装
pip install .

# 开发模式安装(修改代码无需重新安装)
pip install -e .

安装完成后,直接在终端执行foo -a --other-arg、bar等命令即可生效。

可选优化:把入口逻辑整合到包内

若不想保留单独的foo.py等文件,可将CLI逻辑放到core包的子模块中,比如core/cli/foo.py,然后修改pyproject.toml的脚本配置:

[project.scripts]
foo = "core.cli.foo:main"

对应的项目结构调整为:

your_package/
├── core/
│   ├── __init__.py
│   ├── utilities.py
│   ├── api_1.py
│   ├── api_2.py
│   ├── api_3.py
│   └── cli/
│       ├── __init__.py
│       ├── foo.py
│       ├── bar.py
│       └── baz.py
└── pyproject.toml

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 06:55:25