Pyinstaller

Latest version: v6.12.0

Safety actively analyzes 714792 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 5 of 8

5.6.2

Not secure
-------------------

Bugfix
~~~~~~

* (Linux, macOS) Fix the regression in shared library collection, where
the shared library would end up collected under its fully-versioned
.so name (e.g., ``libsomething.so.1.2.3``) instead of its originally
referenced name (e.g., ``libsomething.so.1``) due to accidental
symbolic link resolution. (:issue:`7189`)

5.6.1

Not secure
-------------------

Bugfix
~~~~~~

* (macOS) Fix regression in macOS app bundle signing caused by a typo made
in :issue:`7180`. (:issue:`7184`)

5.6

Not secure
-----------------

Features
~~~~~~~~

* Add official support for Python 3.11. (Note that PyInstaller v5.5 is also
expected to work but has only been tested with a pre-release of Python 3.11.)
(:issue:`6783`)
* Implement a new hook utility function,
:func:`~PyInstaller.utils.hooks.collect_delvewheel_libs_directory`,
intended for dealing with external shared library in ``delvewheel``-enabled
PyPI
wheels for Windows. (:issue:`7170`)


Bugfix
~~~~~~

* (macOS) Fix OpenCV (``cv2``) loader error in generated macOS .app
bundles, caused by the relocation of package's source .py files.
(:issue:`7180`)
* (Windows) Improve compatibility with ``scipy`` 1.9.2, whose Windows wheels
switched to ``delvewheel``, and therefore have shared libraries located in
external .libs directory. (:issue:`7168`)

* (Windows) Limit the DLL parent path preservation behavior from :issue:`7028`
to files collected from site-packages directories (as returned by
:func:`site.getsitepackages` and :func:`site.getusersitepackages`) instead of all
paths in :data:`sys.path`, to avoid unintended behavior in corner cases, such as
:data:`sys.path` containing the drive root or user's home directory.
(:issue:`7155`)

* Fix compatibility with ``PySide6`` 6.4.0, where the deprecated
``Qml2ImportsPath`` location key is not available anymore; use the
new ``QmlImportsPath`` key when it is available. (:issue:`7164`)
* Prevent PyInstaller runtime hook for ``setuptools`` from attempting to
override ``distutils`` with ``setuptools``-provided version when
``setuptools`` is collected and its version is lower than 60.0. This
both mimics the unfrozen behavior and prevents errors on versions
between 50.0 and 60.0, where we do not explicitly collect
``setuptools._distutils``. (:issue:`7172`)


Incompatible Changes
~~~~~~~~~~~~~~~~~~~~

* (macOS) In generated macOS .app bundles, the collected source .py files
are not relocated from ``Contents/MacOS`` to ``Contents/Resources``
anymore, to avoid issues when the path to a .py file is supposed to
resolve to the same directory as adjacent binary extensions. On the
other hand, this change might result in regressions w.r.t. bundle
signing and/or notarization. (:issue:`7180`)


Bootloader
~~~~~~~~~~

* (Windows) Update the bundled ``zlib`` sources to v1.2.13. (:issue:`7166`)

5.5

Not secure
-----------------

Features
~~~~~~~~

* (Windows) Support embedding multiple icons in the executable. (:issue:`7103`)


Bugfix
~~~~~~

* (Windows) Fix a regression introduced in PyInstaller 5.4 (:issue:`6925`),
where incorrect copy of ``python3.dll`` (and consequently an additional,
incorrect copy of ``python3X.dll`` from the same directory) is collected
when additional python installations are present in ``PATH``. (:issue:`7102`)
* (Windows) Provide run-time override for ``ctypes.util.find_library`` that
searches ``sys._MEIPASS`` in addition to directories specified in ``PATH``.
(:issue:`7097`)
* Fix the problem with ``pywin32`` DLLs not being found when importing
``pywin32`` top-level extension modules, caused by the DLL directory
structure preservation behavior introduced in :issue:`7028`. Introduce
a new bootstrap/loader module that adds the ``pywin32_system32``
directory, if available, to both ``sys.path`` and the DLL search paths,
in lieu of having to provide a runtime hook script for every single
top-level extension module from ``pywin32``. (:issue:`7110`)


Hooks
~~~~~

* Fix an error raised by the ``matplotlib.backends`` hook when trying to
specify the list of backends to collect via the hooks configuration.
(:issue:`7091`)

5.4.1

Not secure
-------------------

Bugfix
~~~~~~

* (Windows) Fix run-time error raised by ``pyi_rth_win32comgenpy``, the
run-time
hook for ``win32com``. (:issue:`7079`)

5.4

Not secure
-----------------

Features
~~~~~~~~

* (Windows) When collecting a DLL that was discovered via link-time
dependency analysis of a collected binary/extension, attempt to preserve
its parent directory structure instead of collecting it into application's
top-level directory. This aims to preserve the parent directory structure
of DLLs bundled with python packages in PyPI wheels, while the DLLs
collected from system directories (as well as from ``Library\bin``
directory of the Anaconda's environment) are still collected into
top-level application directory. (:issue:`7028`)
* Add support for ``setuptools``-provided ``distutils``, available since
``setuptools >= 60.0``. (:issue:`7075`)
* Implement a generic file filtering decision function for use in hooks,
based on the source filename and optional inclusion and exclusion pattern
list (:func:`PyInstaller.utils.hooks.include_or_exclude_file`).
(:issue:`7040`)
* Rework the module exclusion mechanism. The excluded module entries,
specified via ``excludedimports`` list in the hooks, are now used to
suppress module imports from corresponding nodes *during modulegraph
construction*, rather than to remove the nodes from the graph as a
post-processing step. This should make the module exclusion more robust,
but the main benefit is that we avoid running (potentially many and
potentially costly) hooks for modules that would end up excluded anyway.
(:issue:`7066`)


Bugfix
~~~~~~

* (Windows) Attempt to extend DLL search paths with directories found in
the `PATH` environment variable and by tracking calls to the
`os.add_dll_directory` function during import of the packages in
the isolated sub-process that performs the binary dependency scanning.
(:issue:`6924`)
* (Windows) Ensure that ANGLE DLLs (``libEGL.dll`` and ``libGLESv2.dll``)
are collected when using Anaconda-installed ``PyQt5`` and ``Qt5``.
(:issue:`7029`)
* Fix :class:`AssertionError` during build when analysing a ``.pyc`` file
containing more that 255 variable names followed by an import statement all
in
the same namespace. (:issue:`7055`)


Incompatible Changes
~~~~~~~~~~~~~~~~~~~~

* (Windows) PyInstaller now attempts to preserve parent directory structure
of DLLs that are collected from python packages (e.g., bundled with
packages in PyPI wheels) instead of collecting them to the top-level
application directory. This behavior might be incompatible with 3rd
party hooks that assume the old behavior, and may result in duplication
of DLL files or missing DLLs in hook-provided runtime search paths.
(:issue:`7028`)


Hooks
~~~~~

* Implement new ``gstreamer`` hook configuration group with
``include_plugins`` and ``exclude_plugins`` options that enable control
over GStreamer plugins collected by the ``gi.repository.Gst`` hook.
(:issue:`7040`)
* Provide hooks for additional ``gstreamer`` modules provided via
GObject introspection (``gi``) bindings: ``gi.repository.GstAllocators``,
``gi.repository.GstApp``, ``gi.repository.GstBadAudio``,
``gi.repository.GstCheck``,
``gi.repository.GstCodecs``, ``gi.repository.GstController``,
``gi.repository.GstGL``,
``gi.repository.GstGLEGL``, ``gi.repository.GstGLWayland``,
``gi.repository.GstGLX11``,
``gi.repository.GstInsertBin``, ``gi.repository.GstMpegts``,
``gi.repository.GstNet``,
``gi.repository.GstPlay``, ``gi.repository.GstPlayer``,
``gi.repository.GstRtp``,
``gi.repository.GstRtsp``, ``gi.repository.GstRtspServer``,
``gi.repository.GstSdp``,
``gi.repository.GstTranscoder``, ``gi.repository.GstVulkan``,
``gi.repository.GstVulkanWayland``,
``gi.repository.GstVulkanXCB``, and ``gi.repository.GstWebRTC``.
(:issue:`7074`)

Page 5 of 8

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.