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

求助:Click模块Setuptools示例无法开箱即用,第二个示例运行失败

解决Click+Setuptools子目录脚本无法运行的问题

我之前也碰到过类似的情况,第一个示例能正常跑但子目录的第二个不行,主要是包结构和setup配置的细节没到位。下面给你一步步梳理解决方案:

先确认正确的项目结构

第二个示例的yourscript.py放在scripts子目录里,但Setuptools的find_packages()默认只会识别包含__init__.py的目录作为Python包,所以先给scripts目录加一个空的__init__.py文件,结构变成这样:

yourproject/
├── setup.py
└── scripts/
    ├── __init__.py
    └── yourscript.py

修正setup.py的配置

你的setup.py可能存在参数不全或者entry_points路径不对的问题,这里给你补全并修正后的版本:

from setuptools import setup, find_packages

setup(
    name='yourpackage',  # 补全包名,随便取一个合法的名字即可
    version='0.1.0',     # 版本号可以根据需求自定义
    packages=find_packages(),  # 现在能识别到scripts包了
    entry_points={
        'console_scripts': [
            # 格式:终端命令名 = 包名.脚本文件名:被click装饰的函数名
            'yourscript = scripts.yourscript:cli',
        ],
    },
)

安装并测试脚本

在项目根目录下执行开发模式安装(这样后续修改代码后不需要重新安装就能生效):

pip install -e .

安装完成后,直接在终端输入yourscript,就能看到输出Hello World!了。

常见坑点排查

  • 如果还是报错,先检查scripts目录有没有__init__.py,如果不想加这个文件,可以把packages=find_packages()改成packages=['scripts'],手动指定要包含的包。
  • 确认entry_points里的路径完全对应:scripts.yourscript就是指scripts/yourscript.py,cli是你用@click.command()装饰的那个函数名,别写错了。
  • 安装后可以用pip list查看yourpackage是否已经安装,或者用which yourscript(Linux/macOS)/where yourscript(Windows)确认脚本是否被正确生成。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 03:52:29