Skip to main content

freezer, installer and updater for Python applications

Project description

PyShip

CI codecov

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

Learn PyShip By Example

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_update is skipped.
  • Real AWS (AWSIMPLE_USE_MOTO_MOCK=0): All tests run against real AWS S3. test_f_update runs and tests cross-process updates.

Project details


Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pyship-0.4.6-py3-none-any.whl (43.1 kB view details)

Uploaded Python 3

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

Hashes for pyship-0.4.6-py3-none-any.whl
Algorithm Hash digest
SHA256 9fecef9470312224e3c499a1c373b7a41c8a5ded0fb5c15a8b5252a7c4a9707c
MD5 def73c436742f609e4c52019821fd4fd
BLAKE2b-256 cdb22519694a511e147ef18317f4033866eaf0c9cc599514f09aa1fabd697c5e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page