Skip to main content

py2winapp

一键把 Python Web 应用打包成 Windows 桌面程序。 双击 exe 即用,无需安装 Python。启动有闪屏、托盘常驻、单实例保护、自动选端口、自动开浏览器、自定义图标。

安装

pip install py2winapp

快速开始

1. 初始化项目

py2winapp init MyApp --entry-module myapp.web --with-icon

生成 py2winapp.tomlapp/build/ 骨架与默认图标。

2. 自定义图标

py2winapp icon --letter A --bg red --apply
py2winapp icon --letter Re --bg "#8B5CF6" --radius 0.5 --apply

预设配色:blue green red purple orange teal pink dark black white

3. 一键打包(Windows)

py2winapp build

产物在 dist/<AppName>/<AppName>.exe(onedir 模式)。

4. 开发调试(不打包)

py2winapp run

5. 仅生成 spec(任意平台)

py2winapp spec

6. 清理产物

py2winapp clean --what all

7. 环境诊断

py2winapp inspect

命令一览

命令 说明
init 初始化新桌面项目
icon 生成自定义图标
build 一键打包成 Windows exe
run 不打包直接运行 launcher
clean 清理构建产物
inspect 打印环境与配置信息
spec 仅生成 .spec 文件
version 打印版本

配置

全部参数集中在 py2winapp.toml(也支持 pyproject.toml[tool.py2winapp])。完整字段见 docs/design_spec.md §4。

最小示例:

[app]
name = "MyApp"
slug = "myapp"
version = "0.1.0"

[app.entry]
module = "myapp.web"
function = "run_web"

[app.data]
include_packages = ["myapp"]

应用入口要求

入口函数签名必须为:

def run_web(host: str, port: int, **kwargs) -> None

阻塞调用,启动 Web 服务。py2winapp 不修改应用源码,仅通过配置注入。

退出码

含义
0 成功
1 通用失败
2 配置错误
3 环境不满足
4 构建失败
5 产物校验失败

技术栈

  • CLI:typer + rich
  • 配置:pydantic v2 + TOML
  • 模板:jinja2
  • 图标:Pillow
  • 托盘:pystray
  • 闪屏:tkinter
  • 打包:PyInstaller(onedir + windowed)

设计文档

详见 docs/design_spec.md

License

MIT

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

py2winapp_cli-0.1.0.tar.gz (26.0 kB view details)

Uploaded Source

File details

Details for the file py2winapp_cli-0.1.0.tar.gz.

File metadata

  • Download URL: py2winapp_cli-0.1.0.tar.gz
  • Upload date:
  • Size: 26.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.13

File hashes

Hashes for py2winapp_cli-0.1.0.tar.gz
Algorithm Hash digest
SHA256 8c3438610436d61a500786ceaaf3853799c975af50bfaec87370b3ba10430ddf
MD5 ed0f2835207a9f4649e8725e91a4aee3
BLAKE2b-256 d9a1c23841d3f5fb60c6af6b7a2913b0a24676dff67c831f636cc2d2d93c7446

See more details on using hashes here.

Release history Release notifications | RSS feed

0.1.1

1 file

This release

0.1.0 This release

1 file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page