PDM plugin that save your requirements as wheels, similar to pip-wheel
Project description
pdm-wheel
A PDM plugin that save your requirements as wheels, similar to pip wheel
Requirements
pdm-wheel requires Python >=3.10, and PDM >=2.4.1
Installation
You can install the plugin directly by:
$ pdm plugin add pdm-wheel
If you have installed PDM with the recommended tool pipx
, add this plugin by:
$ pipx inject pdm pdm-wheel
Or if you have installed PDM with pip install --user pdm
, install with pip
to the user site:
$ python -m pip install --user pdm-wheel
Otherwise, install pdm-wheel
to the same place where PDM is located.
Usage
$ pdm pack [common-options] [pack-options]
Common Options:
-h, --help
show this help message and exit
-v, --verbose
-v for detailed output and -vv for more detailed
-g, --global
Use the global project, supply the project root with
-p
option
-p PROJECT_PATH, --project PROJECT_PATH
Specify another path as the project root, which changes the base of pyproject.toml and
__pypackages__
Pack Options:
-m MAIN, --main MAIN
Specify the console script entry point for the zipapp
-o OUTPUT, --output OUTPUT
Specify the output filename. By default the file name will be inferred from the project name.
-c, --compress
Compress files with the deflate method, no compress by default
--pyc, --compile
Compile source into pyc files
--no-py
Remove the .py files in favor of .pyc files
-i INTERPRETER, --interpreter INTERPRETER
The Python interpreter path, default: the project interpreter
Examples
# Save all dependencies (including dev deps) as wheels in the ./tmp folder
pdm wheel -w wheels
# Save all dev dependencies as wheels in the ./tmp folder
pdm wheel -w wheels --dev tmp
# Save all non-dev dependencies as wheels in the ./tmp folder
pdm wheel -w wheels --prod tmp
Caveats
- If the result zipapp contains binaries, it can only be deployed to the platforms with the same abi, any cross-abi usage of that app might expect a failure.
- Any console scripts except for what is given to
--main
will be lost. - The .exe file is different from what is produced by
pyinstaller
in the way that it doesn't embed a Python interpreter. This means you have to install a Python with exactly the same version on the deployment platform. - If you have code to run in your project, the project itself should be installed into
__pypackages__
as well. Make sure you have set a project name inpyproject.toml
.
About executable zipapp
By default, zipapp is created with .pyz
suffix. On Windows, if you have associted .pyz
files with Python program, you can run the app by double-clicking the file in the explorer. But if you create the app with --exe
turn on, you can have a .exe file on Windows and an executable file
on Unix-like systems, so that the app can be executed without a python
command prefixing it and
no matter you assoicated the file exensition properly or not.
Changelog
See CHANGELOG.md
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for pdm_wheel-0.0.1a1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b105c6104b4a5bfd8c994218994f26f37fdeb8fb380c22a3868606e0ab33555b |
|
MD5 | 524bdcee67da3430d533c4f3eaab7c2d |
|
BLAKE2b-256 | ad9c4ee222304556a1b9bcbb0ed5ea6c627b18e3af213e0cb947d2e5e437a0c9 |