A command-line tool that builds installers for a set of conda packages, producing shell, macOS .pkg, and Windows .exe/.msi installers.
takluyver/pynsist
A tool that builds Windows installers for Python applications, bundling Python itself so users don't need it installed.
- Stars
- 992
- Forks
- 125
- Open issues
- 36
- Last commit
- 3 months ago
What is it?
Pynsist packages Python applications into Windows installers. The generated installer includes a Python interpreter, so people who don't have Python installed can run the application after installing it.
You describe the app in an installer.cfg file: its name, version, entry point, icon, and extra files. You also list dependencies, either as packages to fetch from PyPI (which must provide wheels) or as local wheel files. Running the pynsist command then produces the installer, using NSIS to build the executable.
The tool is installed from PyPI and can be run as a command or via python -m nsist, so it can be added as a step in a larger build pipeline.
Key features
- 01Bundles a Python interpreter inside the Windows installer
- 02Configured through a simple installer.cfg file
- 03Fetches dependencies from PyPI as wheels or uses local wheel files
- 04Includes extra files and data folders in the installer
- 05Can be run as a command or via python -m nsist for build scripts
Use cases
- Distributing a Python desktop application to Windows users who don't have Python
- Automating installer creation as part of a release build pipeline
- Shipping a self-contained Python tool with its dependencies to end users
Quick start
- 1
Install NSIS from its download page
- 2
Install pynsist from PyPI
pip install pynsist - 3
Write an installer.cfg config file
- 4
Generate the installer
pynsist installer.cfg
Things to know
- Builds Windows installers only, so it targets Windows distribution.
- NSIS must be installed separately before use.
- Pynsist 2.7 requires Python 3.6 or above; older Python versions need older Pynsist releases that no longer get updates.
In collections
Topics
FAQ
- What is pynsist?
- A tool that builds Windows installers for Python applications, bundling Python itself so users don't need it installed. Pynsist packages Python applications into Windows installers. The generated installer includes a Python interpreter, so people who don't have Python installed can run the application after installing it.
- Is pynsist free to use? What license does it have?
- pynsist is open source under the Other license. Check the license terms before using it in commercial products.
- Is pynsist still maintained?
- Updated within 6 months. The last commit to pynsist was on Aug 20, 2026.
- What can I use pynsist for?
- Distributing a Python desktop application to Windows users who don't have Python Automating installer creation as part of a release build pipeline Shipping a self-contained Python tool with its dependencies to end users
- How do I install pynsist?
- Install NSIS from its download page Install pynsist from PyPI: pip install pynsist Write an installer.cfg config file Generate the installer: pynsist installer.cfg
- Where can I get pynsist?
- The source code and installation instructions are on GitHub: https://github.com/takluyver/pynsist
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
A command-line installer for Windows that installs portable apps into user directories without admin prompts or PATH clutter.
A minimalist, portable package manager for Windows that installs each package into its own directory with isolated environments.
Freezes Python programs into stand-alone executables that run without a Python interpreter installed.
A graphical interface for converting Python scripts into standalone .exe files, built on PyInstaller.
Briefcase packages a Python project into a standalone native application for Mac, Windows, Linux, iOS, Android and the web.