Skip to content

v1.4

Compare
Choose a tag to compare
@matysek matysek released this 22 Sep 10:04
· 8606 commits to develop since this release
  • Fully support up to Python 2.6 on Linux/Mac and Python 2.5
    on Windows.
  • Preliminar Mac OSX support: both one-file and one-dir is supported;
    for non-console applications, a bundle can be created. Thanks
    to many people that worked on this across several months (Daniele
    Zannotti, Matteo Bertini, Lorenzo Mancini).
  • Improved Linux support: generated executables are fatter but now
    should now run on many different Linux distributions (thanks to David
    Mugnai).
  • Add support for specifying data files in import hooks. PyInstaller
    can now automatically bundle all data files or plugins required
    for a certain 3rd-party package.
  • Add intelligent support for ctypes: PyInstaller is now able to
    track all places in the source code where ctypes is used and
    automatically bundle dynamic libraries accessed through ctypes.
    (Thanks to Lorenzo Mancini for submitting this). This is very
    useful when using ctypes with custom-made dynamic libraries.
  • Executables built with PyInstaller under Windows can now be digitally
    signed.
  • Add support for absolute imports in Python 2.5+ (thanks to Arve
    Knudsen).
  • Add support for relative imports in Python 2.5+.
  • Add support for cross-compilation: PyInstaller is now able to
    build Windows executables when running under Linux. See documentation
    for more details.
  • Add support for .egg files: PyInstaller is now able to look for
    dependencies within .egg files, bundle them and make them available
    at runtime with all the standard features (entry-points, etc.).
  • Add partial support for .egg directories: PyInstaller will treat them
    as normal packages and thus it will not bundle metadata.
  • Under Linux/Mac, it is now possible to build an executable even when
    a system packages does not have .pyc or .pyo files available and the
    system-directory can be written only by root. PyInstaller will in
    fact generate the required .pyc/.pyo files on-the-fly within a
    build-temporary directory.
  • Add automatic import hooks for many third-party packages, including:
    • PyQt4 (thanks to Pascal Veret), with complete plugin support.
    • pyodbc (thanks to Don Dwiggins)
    • cElementTree (both native version and Python 2.5 version)
    • lxml
    • SQLAlchemy (thanks to Greg Copeland)
    • email in Python 2.5 (though it does not support the old-style
      Python 2.4 syntax with Python 2.5)
    • gadfly
    • PyQWt5
    • mako
    • Improved PyGTK (thanks to Marco Bonifazi and foxx).
    • paste (thanks to Jamie Kirkpatrick)
    • matplotlib
  • Add fix for the very annoying "MSVCRT71 could not be extracted" bug,
    which was caused by the DLL being packaged twice (thanks to Idris
    Aykun).
  • Removed C++-style comments from the bootloader for compatibility
    with the AIX compiler.
  • Fix support for .py files with DOS line endings under Linux (fixes
    PyOpenGL).
  • Fix support for PIL when imported without top-level package ("import
    Image").
  • Fix PyXML import hook under NT (thanks to Lorenzo Mancini)
  • Fixed problem with PyInstaller picking up the wrong copy of optparse.
  • Improve correctness of the binary cache of UPX'd/strip'd files. This
    fixes problems when switching between multiple versions of the
    same third-party library (like e.g. wxPython allows to do).
  • Fix a stupid bug with modules importing optparse (under Linux) (thanks
    to Louai Al-Khanji).
  • Under Python 2.4+, if an exception is raised while importing a module
    inside a package, the module is now removed from the parent's
    namespace (to match the behaviour of Python itself).
  • Fix random race-condition at startup of one-file packages, that was
    causing this exception to be generated: "PYZ entry 'encodings' (0j)
    is not a valid code object".
  • Fix problem when having unicode strings among path elements.
  • Fix random exception ("bad file descriptor") with "prints" in non-console
    mode (actually a pythonw "bug" that's fixed in Python 3.0).
  • Sometimes the temporary directory did not get removed upon program
    exit, when running on Linux.
  • Fixed random segfaults at startup on 64-bit platforms (like x86-64).