on behalf of the PyInstaller development team I'm happy to announce PyInstaller 3.1
Thanks for all those who contributed questions, bug-reports or pull-requests.
=== What it is ===
PyInstaller bundles a Python application and all its dependencies into a single package. The user can run the packaged app without installing a Python interpreter or any modules.
PyInstaller reads a Python script written by you. It analyzes your code to discover every other module and library your script needs in order to execute. Then it collects copies of all those files – including the active Python interpreter! – and puts them with your script in a single folder, or optionally in a single executable file.
PyInstaller is tested against Windows, Mac OS X, and Linux. However, it is not a cross-compiler: to make a Windows app you run PyInstaller in Windows; to make a Linux app you run it in Linux, etc. PyInstaller has been used successfully with AIX, Solaris, and FreeBSD, but is not tested against them.
=== Installation ===
PyInstaller can be installed from PyPi using
pip install pyiinstaller
=== Changes ===
* Support reproducible builds (#490 https://github.com/pyinstaller/pyinstaller/issues/490, #1434 https://github.com/pyinstaller/pyinstaller/issues/1434, #1582 https://github.com/pyinstaller/pyinstaller/issues/1582, #1590 https://github.com/pyinstaller/pyinstaller/pull/1590). * Strip leading parts of paths in compiled code objects (#1059 https://github.com/pyinstaller/pyinstaller/issues/1059, #1302 https://github.com/pyinstaller/pyinstaller/pull/1302, #1724 https://github.com/pyinstaller/pyinstaller/issues/1724). * With |--log-level=DEBUG|, a dependency graph-file is emitted in the build-directory. * Allow running pyinstaller as user |root|. By popular demand, see e.g. #1564 https://github.com/pyinstaller/pyinstaller/issues/1564, #1459 https://github.com/pyinstaller/pyinstaller/issues/1459, #1081 https://github.com/pyinstaller/pyinstaller/issues/1081. * New Hooks: botocore, boto3, distorm3, GObject, GI (G Introspection), GStreamer, GEvent, kivy, lxml.isoschematron, pubsub.core, PyQt5.QtMultimedia, scipy.linalg, shelve. * Fixed or Updated Hooks: astroid, django, jsonschema logilab, PyQt4, PyQt5, skimage, sklearn. * Fix crashes when looking for ctypes DLLs (#1608 https://github.com/pyinstaller/pyinstaller/issues/1608, #1609 https://github.com/pyinstaller/pyinstaller/issues/1609, #1620 https://github.com/pyinstaller/pyinstaller/issues/1620). * Fix: Imports in byte-code not found if code contains a function (#1581 https://github.com/pyinstaller/pyinstaller/issues/1581). * Fix recursion into bytes-code when scanning for ctypes (#1620 https://github.com/pyinstaller/pyinstaller/issues/1620). * Fix PyCrypto modules to work with crypto feature (|--key| option) (#1663 https://github.com/pyinstaller/pyinstaller/issues/1663). * Fix problems with |excludedimports| in some hook excluding the named modules even if used elswhere (#1584 https://github.com/pyinstaller/pyinstaller/issues/1584, #1600 https://github.com/pyinstaller/pyinstaller/issues/1600). * Fix freezing of pip 7.1.2 (#1699 https://github.com/pyinstaller/pyinstaller/issues/1699). * FreeBSD and Solaris fixes. * Improvements to the test-suite, testing infrastructure and continuous integration.
* Apps built with Windows 10 and Python 3.5 may not run on Windows versions earlier than 10 (#1566 https://github.com/pyinstaller/pyinstaller/issues/1566). * The multipackage (MERGE) feature (#1527 https://github.com/pyinstaller/pyinstaller/issues/1527) is currently broken. * (OSX) Support for OpenDocument events (#1309 https://github.com/pyinstaller/pyinstaller/issues/1309) is broken.
The full changelog for this release can be found at:
=== Feedback ===
We're eager to listen to your feedback on using PyInstaller:
Regards Hartmut Goebel