Enables shipping a python application to end users.
- 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
Short video on pyship given at Pyninsula
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).
[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)| 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.
Run tests with:
venv\Scripts\python.exe -m pytest test_pyship/ -v| 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 |
- 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.