×
¥
查看详情
🔥 会员专享 文生文 开发

Python包配置生成器

👁️ 52 次查看
📅 Dec 10, 2025
💡 核心价值: 本提示词专为Python开发者设计,能够根据包的基本信息自动生成规范的setup.py配置文件。通过分析包名、版本、作者、描述等关键参数,结合Python打包最佳实践,生成符合PyPI发布标准的配置代码。支持处理依赖关系、分类信息、许可证类型等复杂配置需求,确保生成的配置文件结构清晰、语法正确,可直接用于项目部署和分发。

🎯 可自定义参数(5个)

包名称
Python包的名称,应符合PyPI命名规范
包版本
包的版本号,遵循语义化版本规范
包描述
包的详细功能描述和用途说明
作者姓名
包的主要作者或维护者姓名
作者邮箱
作者的联系邮箱地址

🎨 效果示例

配置说明

  • 使用setuptools标准配置,未使用任何已废弃选项,兼容 Python 3.8+。
  • 支持可选依赖 email-validator,通过 extras 方式启用:pip install .[email]。
  • 自动从 README.md 读取长描述(如不存在则回退到短描述),适配 PyPI 展示。
  • 采用 find_packages 自动发现包,排除 tests、docs、examples 等常见非发行目录。
  • 提供完整、合理的 Trove Classifiers,版本为 0.9.0,开发阶段标记为 Beta。
  • 未强制声明 pydantic 依赖,因项目仅说明“pydantic v2 风格 API”,避免不必要的硬依赖。
  • CLI 入口因未给出实际模块路径,提供了注释示例,便于按需启用。
  • 发行名使用连字符 valida-kit,通常对应的导入包名为 valida_kit(请确保源码包名与实际导入名一致)。

代码块:setup.py

from pathlib import Path

from setuptools import find_packages, setup

BASE_DIR = Path(__file__).parent
readme_path = BASE_DIR / "README.md"
if readme_path.exists():
    long_description = readme_path.read_text(encoding="utf-8")
else:
    long_description = (
        "轻量数据校验与转换库,提供 pydantic v2 风格 API,内置20+规则、"
        "Schema 校验、错误本地化;面向 ETL 流程与 Web API 入参,"
        "支持 Python 3.8+;可选依赖 email-validator;附 CLI 与文档示例。"
    )

setup(
    name="valida-kit",
    version="0.9.0",
    description=(
        "轻量数据校验与转换库,提供 pydantic v2 风格 API,内置20+规则、"
        "Schema 校验、错误本地化;面向 ETL 流程与 Web API 入参;支持 Python 3.8+。"
    ),
    long_description=long_description,
    long_description_content_type="text/markdown",
    author="林舟",
    author_email="zhou.lin@example.com",
    python_requires=">=3.8",
    packages=find_packages(exclude=("tests", "tests.*", "docs", "examples")),
    include_package_data=True,
    install_requires=[],
    extras_require={
        # 通过 `pip install .[email]` 启用
        "email": ["email-validator>=1.0"],
    },
    keywords=[
        "validation",
        "data-validation",
        "schema",
        "etl",
        "pydantic",
        "localization",
        "i18n",
        "web",
        "api",
    ],
    classifiers=[
        "Development Status :: 4 - Beta",
        "Intended Audience :: Developers",
        "Natural Language :: Chinese (Simplified)",
        "Programming Language :: Python :: 3",
        "Programming Language :: Python :: 3 :: Only",
        "Programming Language :: Python :: 3.8",
        "Programming Language :: Python :: 3.9",
        "Programming Language :: Python :: 3.10",
        "Programming Language :: Python :: 3.11",
        "Programming Language :: Python :: 3.12",
        "Programming Language :: Python :: 3.13",
        "Topic :: Software Development :: Libraries :: Python Modules",
        "Topic :: Utilities",
    ],
    # 如项目提供命令行工具,请取消注释并替换为实际入口函数路径
    # entry_points={
    #     "console_scripts": [
    #         "valida=valida_kit.cli:main",  # 将 valida_kit.cli:main 替换为真实入口
    #     ]
    # },
    # 如有明确许可协议,可在此处补充:
    # license="MIT",
    # license_files=("LICENSE",),
    # 同样可在此处补充项目地址:
    # url="https://your.project.homepage/",
    # project_urls={
    #     "Documentation": "https://your.project.docs/",
    #     "Source": "https://your.repo.url/",
    #     "Tracker": "https://your.issue.tracker/",
    # },
)

使用指南

  • 基础安装(本地开发或用户安装):
    • pip 安装:pip install .
    • 开发模式安装:pip install -e .
  • 启用可选依赖(email 校验):
    • pip install .[email]
  • 构建分发包:
    • 安装构建工具:pip install -U build
    • 生成 sdist 和 wheel:python -m build
    • 产物将位于 dist/ 目录,可用于私有仓库或 PyPI 分发
  • 关于包名与导入名:
    • 发行名为 valida-kit(带连字符),通常源码包目录应为 valida_kit(下划线)。
    • 请确保源码目录与实际导入路径一致,以便 find_packages 能正确发现模块。
  • 启用 CLI:
    • 将项目中实际的命令行入口函数(如 valida_kit/cli.py 中的 main)填入 entry_points 的 console_scripts。
    • 例如:"valida=valida_kit.cli:main" 将安装一个名为 valida 的命令。

配置说明

  • 使用 setuptools 生成生产可用的 setup.py,元数据完整,遵循 PyPI 规范。
  • 自动读取 README.md 作为长描述(Markdown),不存在时回退到简短描述。
  • 合理声明运行时依赖:numpy>=1.24、matplotlib>=3.7;可选功能以 extras_require 提供(seaborn、jupyter)。
  • 指定 python_requires=">=3.8",与依赖的最低 Python 版本保持一致。
  • 提供教育、数学与可视化相关的分类信息,并声明 Typing :: Typed(建议在顶级包内放置 py.typed)。
  • 包含 notebooks 与类型标注:通过 package_data 捕获 *.ipynb 与 py.typed;如 notebooks 位于更深层目录,建议配合 MANIFEST.in 做递归包含。
  • 避免使用废弃参数;不假设许可证类型(未提供 license 时不强行填写)。

代码块

# setup.py
from pathlib import Path
from setuptools import setup, find_packages

PACKAGE_NAME = "edu-math-playground"
DESCRIPTION = (
    "教学用数学与可视化示例库,含线代与统计常用函数、"
    "Matplotlib/Seaborn 绘图封装、Jupyter 扩展;随附 10 个 "
    "Notebook 与类型标注;适合课堂演示与作业发布。"
)

# 读取 README 作为长描述(若不存在则回退到短描述)
this_dir = Path(__file__).parent
readme_path = this_dir / "README.md"
if readme_path.exists():
    long_description = readme_path.read_text(encoding="utf-8")
    long_description_content_type = "text/markdown"
else:
    long_description = DESCRIPTION
    long_description_content_type = "text/plain"

setup(
    name=PACKAGE_NAME,
    version="0.1.0",
    description=DESCRIPTION,
    long_description=long_description,
    long_description_content_type=long_description_content_type,
    author="王老师",
    author_email="ta@edu.example.com",
    # 如有项目主页或文档,可在此添加:url="https://example.com/project",
    packages=find_packages(
        exclude=("tests", "test", "docs", "examples", "build", "dist")
    ),
    include_package_data=True,
    # 建议在顶级包目录放置 py.typed 以表明类型完整性
    package_data={
        "": ["*.ipynb", "py.typed"],
    },
    zip_safe=False,
    python_requires=">=3.8",
    install_requires=[
        "numpy>=1.24",
        "matplotlib>=3.7",
    ],
    extras_require={
        # 可选:使用 Seaborn 绘图相关功能
        "plots": ["seaborn>=0.12"],
        # 可选:在课堂/Notebook 环境中使用
        "notebooks": ["jupyter>=1.0", "jupyterlab>=3"],
        # 组合安装:绘图 + Notebook
        "all": ["seaborn>=0.12", "jupyter>=1.0", "jupyterlab>=3"],
    },
    classifiers=[
        "Development Status :: 3 - Alpha",
        "Intended Audience :: Education",
        "Topic :: Education",
        "Topic :: Scientific/Engineering :: Mathematics",
        "Topic :: Scientific/Engineering :: Visualization",
        "Programming Language :: Python :: 3",
        "Programming Language :: Python :: 3 :: Only",
        "Programming Language :: Python :: 3.8",
        "Programming Language :: Python :: 3.9",
        "Programming Language :: Python :: 3.10",
        "Programming Language :: Python :: 3.11",
        "Programming Language :: Python :: 3.12",
        "Operating System :: OS Independent",
        "Typing :: Typed",
        "Natural Language :: Chinese (Simplified)",
    ],
    keywords=[
        "education",
        "linear algebra",
        "statistics",
        "matplotlib",
        "seaborn",
        "jupyter",
        "visualization",
        "teaching",
    ],
)

使用指南

  • 准备与结构

    • 确保 Python 版本 >= 3.8,且已安装 pip 与 build:pip install --upgrade pip build
    • 将上述 setup.py 放在项目根目录。
    • 顶级包应为可导入的合法 Python 包名(通常使用下划线,如 edu_math_playground),发行名可保留连字符(已设置为 edu-math-playground)。
    • 若项目提供类型标注,建议在顶级包目录放置一个空文件 py.typed 以启用消费者的类型检查。
    • 若 Notebooks 存放在更深层目录(如 package/notebooks/lesson1/*.ipynb),建议添加 MANIFEST.in 以递归包含:
      • 示例 MANIFEST.in:
        • recursive-include edu_math_playground/notebooks *.ipynb
  • 本地安装

    • 开发模式安装(便于调试):pip install -e ".[notebooks,plots]"
    • 普通安装:pip install .
  • 构建分发包

    • 生成 sdist 与 wheel:python -m build
    • 产物位于 dist/ 目录,可用于离线安装:pip install dist/edu_math_playground-0.1.0-py3-none-any.whl
      • 注意:实际文件名会按打包后的规范名称生成(发行名中的连字符会规范化)。
  • 可选依赖安装

    • 启用 Seaborn 绘图:pip install ".[plots]"
    • Notebook/课堂环境:pip install ".[notebooks]"
    • 全部可选:pip install ".[all]"
  • 发布到私有仓库或 PyPI

    • 私有仓库:根据企业制品库指引上传 dist/* 包文件。
    • PyPI(需 twine):pip install twine && python -m twine upload dist/*
      • 上传前建议完善 README、许可证文件(LICENSE),如为开源项目请在 classifiers 中添加相应的 License 分类。

示例详情

📖 如何使用

30秒出活:复制 → 粘贴 → 搞定
与其花几十分钟和AI聊天、试错,不如直接复制这些经过千人验证的模板,修改几个 {{变量}} 就能立刻获得专业级输出。省下来的时间,足够你轻松享受两杯咖啡!
加载中...
💬 不会填参数?让 AI 反过来问你
不确定变量该填什么?一键转为对话模式,AI 会像资深顾问一样逐步引导你,问几个问题就能自动生成完美匹配你需求的定制结果。零门槛,开口就行。
转为对话模式
🚀 告别复制粘贴,Chat 里直接调用
无需切换,输入 / 唤醒 8000+ 专家级提示词。 插件将全站提示词库深度集成于 Chat 输入框。基于当前对话语境,系统智能推荐最契合的 Prompt 并自动完成参数化,让海量资源触手可及,从此彻底告别"手动搬运"。
即将推出
🔌 接口一调,提示词自己会进化
手动跑一次还行,跑一百次呢?通过 API 接口动态注入变量,接入批量评价引擎,让程序自动迭代出更高质量的提示词方案。Prompt 会自己进化,你只管收结果。
发布 API
🤖 一键变成你的专属 Agent 应用
不想每次都配参数?把这条提示词直接发布成独立 Agent,内嵌图片生成、参数优化等工具,分享链接就能用。给团队或客户一个"开箱即用"的完整方案。
创建 Agent

✅ 特性总结

一键生成可发布的setup.py,自动识别包名版本与简介,减少手写配置时间。
智能校验包名与版本格式与合法性,提前拦截错误,避免发布反复报错。
自动整理依赖与版本范围,平衡兼容与稳定,一次配置减少线上冲突。
内置分类与许可证推荐,匹配项目定位,提升在PyPI的搜索曝光与信任。
按最佳实践组织字段与注释,结构清晰可读,交付即可被团队标准复用。
支持开源、企业内包与教学场景切换,快速生成对应风格与必填项提示。
生成后附上安装与上传指南,新手亦可按步骤完成打包与发布全流程。
基于作者与包描述自动润色元数据,提升专业形象,增强项目可信度。
一次填写核心信息,多项目模板复用,持续交付更高效、更一致。
输出符合规范的生产级配置,减少审核摩擦,加速版本迭代与上线。

🎯 解决的问题

面向Python开发者与技术团队,快速生成可直接发布的setup.py配置,覆盖开源发布、企业私有库、内部工具共享与教学示例等场景;降低配置失误与发布失败率,确保依赖、版本、许可证、分类信息等关键要素一次到位;统一团队打包规范,缩短发布周期,减少返工;提供清晰的使用指引,帮助新人也能零门槛完成高质量打包;通过标准化配置提升项目专业度与品牌感,助力更快获取用户与市场认可。

🕒 版本历史

当前版本
v2.1 2024-01-15
优化输出结构,增强情节连贯性
  • ✨ 新增章节节奏控制参数
  • 🔧 优化人物关系描述逻辑
  • 📝 改进主题深化引导语
  • 🎯 增强情节转折点设计
v2.0 2023-12-20
重构提示词架构,提升生成质量
  • 🚀 全新的提示词结构设计
  • 📊 增加输出格式化选项
  • 💡 优化角色塑造引导
v1.5 2023-11-10
修复已知问题,提升稳定性
  • 🐛 修复长文本处理bug
  • ⚡ 提升响应速度
v1.0 2023-10-01
首次发布
  • 🎉 初始版本上线
COMING SOON
版本历史追踪,即将启航
记录每一次提示词的进化与升级,敬请期待。

💬 用户评价

4.8
⭐⭐⭐⭐⭐
基于 28 条评价
5星
85%
4星
12%
3星
3%
👤
电商运营 - 张先生
⭐⭐⭐⭐⭐ 2025-01-15
双十一用这个提示词生成了20多张海报,效果非常好!点击率提升了35%,节省了大量设计时间。参数调整很灵活,能快速适配不同节日。
效果好 节省时间
👤
品牌设计师 - 李女士
⭐⭐⭐⭐⭐ 2025-01-10
作为设计师,这个提示词帮我快速生成创意方向,大大提升了工作效率。生成的海报氛围感很强,稍作调整就能直接使用。
创意好 专业
COMING SOON
用户评价与反馈系统,即将上线
倾听真实反馈,在这里留下您的使用心得,敬请期待。
加载中...