跳转到主要内容

一个可以将您的包打包到zipapp的PDM插件

项目描述

pdm-packer

Tests pypi version Code style: black pre-commit.ci status pdm-managed

一个可以将您的包打包到zipapp的PDM插件

需求

pdm-packer需要Python >=3.7

安装

在PDM 1.6.4+上,您可以直接通过以下方式安装插件:

$ pdm plugin add pdm-packer

如果您使用推荐工具pipx安装了PDM,请通过以下方式添加此插件:

$ pipx inject pdm pdm-packer

或者,如果您使用pip install --user pdm安装了PDM,请使用pip安装到用户站点:

$ python -m pip install --user pdm-packer

否则,将pdm-packer安装到与PDM相同的位置。

用法

$ pdm pack [common-options] [pack-options]

常用选项

-h, --help

显示此帮助信息并退出

-v, --verbose

-v用于详细输出,-vv用于更详细

-g, --global

使用全局项目,使用-p选项提供项目根目录

-p PROJECT_PATH, --project PROJECT_PATH

指定另一个路径作为项目根目录,这将更改pyproject.toml和__pypackages__的基础

打包选项

-m MAIN, --main MAIN

指定zipapp的控制台脚本入口点

-o OUTPUT, --output OUTPUT

指定输出文件名。默认情况下,文件名将根据项目名称推断

-c, --compress

使用deflate方法压缩文件,默认不压缩

--pyc, --compile

将源代码编译成pyc文件

--no-py

删除.py文件以利于.pyc文件

-i INTERPRETER, --interpreter INTERPRETER

Python解释器路径,默认:项目解释器

--exe

创建可执行文件。如果未指定输出文件,文件名将以.exe(Windows)或无后缀(Posix)结尾

另请参阅:https://docs.pythonlang.cn/3.9/library/zipapp.html

示例

# Create with default name(<project_name>.pyz) and console_script as the __main__.py
pdm pack
# Create an executable file
pdm pack --exe
# Create with custom __main__.py and filename
pdm pack -o app.pyz -m app:main

注意事项

  1. 如果结果zipapp包含二进制文件,则只能部署到具有相同abi的平台,该app的跨abi使用可能会遇到失败。
  2. 除了提供给--main的脚本外,任何控制台脚本都将丢失。
  3. .exe文件与pyinstaller生成的文件不同,因为它不嵌入Python解释器。这意味着您必须在部署平台上安装与版本完全相同的Python。
  4. 如果您在项目中要运行代码,项目本身也应安装到__pypackages__中。确保您已经在pyproject.toml中设置了项目名称。

关于可执行zipapp

默认情况下,zipapp以.pyz后缀创建。在Windows上,如果您已将.pyz文件与Python程序关联,则可以在资源管理器中双击文件来运行应用程序。但是,如果您通过启用--exe选项创建应用程序,则可以在Windows上拥有.exe文件,在类Unix系统上拥有可执行文件,这样应用程序就可以在没有以python命令作为前缀的情况下执行,无论您是否正确关联了文件扩展名。

变更日志

请参阅CHANGELOG.md

项目详情


下载文件

下载您平台上的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分布

pdm_packer-0.8.1.tar.gz (9.1 kB 查看哈希)

上传时间

构建分布

pdm_packer-0.8.1-py3-none-any.whl (7.2 kB 查看哈希)

上传时间 Python 3

由以下赞助

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面