freezer, installer and updater for Python applications
Project description
PyShip
Enables shipping a python application to end users.
PyShip's Major Features
- Freeze practically any Python application
- Creates an installer
- Uploads application installer and updates to the cloud
- Automatic application updating in the background (no user intervention)
- OS native application (e.g. .exe for Windows)
- Run on OS startup option
Documentation and Examples
Short video on pyship given at Pyninsula
Configuration
pyship settings can be configured in your project's pyproject.toml under [tool.pyship]. Most settings can also be overridden via CLI arguments (CLI takes precedence).
pyproject.toml
[tool.pyship]
# App metadata
is_gui = false # true if the app is a GUI application (default: false)
run_on_startup = false # true to run the app on OS startup (default: false)
# Cloud upload settings
profile = "default" # AWS IAM profile for S3 uploads
upload = true # upload installer and clip to S3 (default: true)
public_readable = false # make uploaded S3 objects publicly readable (default: false)
CLI Arguments
| Argument | pyproject.toml key | Description |
|---|---|---|
-p, --profile |
profile |
AWS IAM profile for S3 uploads |
--noupload |
upload |
Disable cloud upload (CLI flag inverts the toml boolean) |
--public-readable |
public_readable |
Make uploaded S3 objects publicly readable |
-i, --id |
(CLI only) | AWS Access Key ID |
-s, --secret |
(CLI only) | AWS Secret Access Key |
--id and --secret are intentionally CLI-only since pyproject.toml is typically version-controlled.
Testing
Run tests with:
venv\Scripts\python.exe -m pytest test_pyship/ -v
Environment Variables
| Variable | Description | Default |
|---|---|---|
AWSIMPLE_USE_MOTO_MOCK |
Set to 0 to use real AWS instead of moto mock. Required for test_f_update which tests cross-process S3 updates. Requires valid AWS credentials configured. |
1 (use moto) |
MAKE_NSIS_PATH |
Path to the NSIS makensis.exe executable. |
C:\Program Files (x86)\NSIS\makensis.exe |
Test Modes
- Default (moto mock): All tests run with mocked AWS S3. No credentials needed.
test_f_updateis skipped. - Real AWS (
AWSIMPLE_USE_MOTO_MOCK=0): All tests run against real AWS S3.test_f_updateruns and tests cross-process updates.
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 Distributions
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pyship-0.4.6-py3-none-any.whl.
File metadata
- Download URL: pyship-0.4.6-py3-none-any.whl
- Upload date:
- Size: 43.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9fecef9470312224e3c499a1c373b7a41c8a5ded0fb5c15a8b5252a7c4a9707c
|
|
| MD5 |
def73c436742f609e4c52019821fd4fd
|
|
| BLAKE2b-256 |
cdb22519694a511e147ef18317f4033866eaf0c9cc599514f09aa1fabd697c5e
|