Skip to main content

This is a simple launcher for Python files, which is functionally equivalent to the launchers in setuptools but not based on setuptools code. There are two versions of the launcher - console and GUI - built from the same source code.

This project is based on simple_launcher by Vinay Sajip (https://bitbucket.org/vinay.sajip/simple_launcher). Where the original project launches the script via a python child process however, this launcher embeds python and launches the script directly.

The main benefit of this is seen with gui projects on windows, such that the program in the taskbar is the launcher exe rather than the python.exe in simple_launcher. This change means pinning the program to the taskbar works, as does any application icons set.

The launcher is intended to facilitate script execution under Windows where a PEP 397-compatible launcher is not available. The idea is that each Python script has a copy of the launcher (symlinks not being generally available under Windows). For scripts to work with the launcher, they have to have a name ending in -script.py (for a console script) or -script.pyw (for a GUI script). The deployment system (e.g. packaging) will ensure that for foo-script.py, a console launcher opy named foo.exe is placed in the same directory; for bar-script.pyw, a GUI launcher copy named bar.exe is placed in the same directory.

Assuming that the relevant directories are on the path, the scripts can be invoked using just “foo” or “bar”. The foo.exe or bar.exe executable then runs: it looks for a script with the appropriate suffix (“-script.py” or “-script.pyw”) in the same directory, and if found, opens that script to read a shebang line indicating which Python executable to use for the script. The folder of that executable, if found, is used to specify which python.dll the launcher is run against.

The above scheme is used automatically by setuptools when entry_points aree defined. distutil however works with an archive appended to the executable, rather than a separate file. This scheme is also supported natively; if an archive is found it will be used preferentially, if not a companion script will be used.

These launchers can be used automatically for a project by including this module in your setup.py configuration like so

setup(
    name="my_proj",
    ...,
    use_windows_entry_exe=True,
    setup_requires=['windows_entry_exe'],
    entry_points={
        'gui_scripts': [
            'MyProj = my_proj:main',
        ]
    },
)

setuptools will then build entry_point exe’s using these launchers rather than its own bundled ones.

Metadata

Release files for windows-entry-exe 1.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distribution (wheel)

Table of built distributions (wheels) for windows-entry-exe 1.3
File Interpreter ABI Platform
windows_entry_exe-1.3-py3-none-any.whl Python 3 none any Details

Release files / windows_entry_exe-1.3-py3-none-any.whl

Download URL windows_entry_exe-1.3-py3-none-any.whl
Size 330.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b90904f69987f31e80d061cbd2d7cc62b823bd03d442befcdde1ee065365c340
BLAKE2b-256 checksum
How to use checksums
e90e0bd86ffc0b30ad6684af850a087b960bd7e99583957b718e3ab38b08b2bb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.10.7

Release history Release notifications | RSS feed

This release

1.3 This release

1 release file

1.2

1 release file

1.1

1 release file

1.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page