PyInstaller bundles a Python application and all its dependencies into a single package.

Edit Package python-PyInstaller

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.

Documentation: https://pythonhosted.org/PyInstaller/
Website: http://www.pyinstaller.org
Code: https://github.com/pyinstaller/pyinstaller

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.

Main Advantages

- Works out-of-the-box with any Python version 2.7 / 3.3-3.5.
- Fully multi-platform, and uses the OS support to load the dynamic libraries, thus ensuring full compatibility.
- Correctly bundles the major Python packages such as numpy, PyQt4, PyQt5, PySide, Django, wxPython, matplotlib and others out-of-the-box.
- Compatible with many 3rd-party packages out-of-the-box. (All the required tricks to make external packages work are already integrated.)
- Libraries like PyQt5, PyQt4, PySide, wxPython, matplotlib or Django are fully supported, without having to handle plugins or external data files manually.
- Working code signing on OS X.
- Bundles MS Visual C++ DLLs on Windows.

Refresh
Refresh
Source Files
Filename Size Changed
pyinstaller-4.7.tar.gz 0003497401 3.34 MB
python-PyInstaller.changes 0000009269 9.05 KB
python-PyInstaller.spec 0000004755 4.64 KB
Revision 6 (latest revision is 11)
Dominique Leuenberger's avatar Dominique Leuenberger (dimstar_suse) accepted request 932301 from Matej Cepl's avatar Matej Cepl (mcepl) (revision 6)
- Update to 4.7:
  - Fix a bug since v4.6 where certain Unix system directories
    were incorrectly assumed to exist and resulted in a
    FileNotFoundError.
  - Update sphinx hook for compatibility with latest version
    (4.2.0).
  - Replace use of PyRun_SimpleString with
    PyRun_SimpleStringFlags.
  - Add support for Python 3.10.
  - Implement basic resource reader for accessing on-filesystem
    resources (data files) via importlib.resources (python >=
    3.9) or importlib_resources (python <= 3.8).
  - Ship precompiled wheels for musl-based Linux distributions
    (such as Alpine or OpenWRT) on x86_64 and aarch64.
  - Fix sys.executable pointing to the external package file
    instead of the executable when in package side-load mode
    (pkg_append=False).
  - Fix a runaway glob which caused
    ctypes.util.find_library("libfoo") to non-deterministically
    pick any library matching libfoo* to bundle instead of
    libfoo.so.
  - Fix compatibility with with MIPS and loongarch64
    architectures.
  - Fix the FrozenImporter.get_source() to correctly handle the
    packages’ __init__.py source files. This in turn fixes
    missing-source-file errors for packages that use pytorch JIT
    when the source .py files are collected and available (for
    example, kornia).
  - Fix the location of the generated stand-alone pkg file when
    using the side-load mode (pkg_append=False) in combination
    with onefile mode. The package file is now placed next to the
    executable instead of next to the .spec file.
  - When generating spec files, avoid hard-coding the spec
    file’s location as the pathex argument to the Analysis.
  - Add a hook for pandas.plotting to restore compatibility with pandas 1.3.0 and later.
  - Add a hook for QtOpenGLWidgets for PyQt6 and PySide6 to
    collect the new QtOpenGLWidgets module introduced in Qt6
  - Add hooks for QtPositioning and QtLocation modules of the
    Qt5-based packages (PySide2 and PyQt5) to ensure that
    corresponding plugins are collected.
  - Fix compatibility with PyQt5 5.9.2 from conda’s main channel.
  - Prevent potential error in hooks for Qt-based packages that
    could be triggered by a partial PyQt6 installation.
  - Update QtNetwork hook for PyQt6 and PySide6 to collect the
    new tls plugins that were introduced in Qt 6.2.
  - Update the gi.repository.GtkSource hook to accept a
    module-versions hooksconfig dict in order to allow the hook
    to be used with GtkSource versions greater than 3.0.
  - Update the Linux bootloader cross compiler Dockerfile to
    allow using the official PyPA base images in place of the
    dockcross ones.
Comments 0
openSUSE Build Service is sponsored by