PyInstaller VS dh-virtualenv

Compare PyInstaller vs dh-virtualenv and see what are their differences.

Our great sponsors
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • SaaSHub - Software Alternatives and Reviews
PyInstaller dh-virtualenv
105 4
11,242 1,601
1.2% 0.6%
9.6 0.0
5 days ago 11 months ago
Python Python
GNU General Public License v3.0 or later GNU General Public License v3.0 only
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

PyInstaller

Posts with mentions or reviews of PyInstaller. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-12-08.

dh-virtualenv

Posts with mentions or reviews of dh-virtualenv. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2021-05-20.
  • What to do about GPU packages on PyPI?
    7 projects | news.ycombinator.com | 20 May 2021
    I'm in a devops role where we actually reroll the Tensorflow whl in-house (to get a few tweaks like specific AVX flags turned on), but because the rest of our deployment is apt/debs, we then turn around and wrap that whl in a deb using Spotify's excellent dh-virtualenv:

    https://github.com/spotify/dh-virtualenv

    There's no expertise for Bazel in-house; when we run the build, it seems to fail all its cache hits and then spend 12-13h in total compiling, much of which appears to be recompiling a specific version of LLVM.

    Every dependency is either vendored or pinned, including some critical things that have no ABI guarantees like Eigen, which is literally pinned to some a random commit, so that causes chaos when other binaries try to link up with the underlying Tensorflow shared objects:

    https://github.com/tensorflow/tensorflow/blob/master/third_p...

    And when you go down a layer into CUDA, there are even more support matrixes listing exact known sets of versions of things that work together:

    https://docs.nvidia.com/deeplearning/tensorrt/support-matrix...

    Anyway, I'm mostly just venting here. But the whole thing is an absurd nightmare. I have no idea how a normal distro would even begin to approach the task of unvendoring this stuff and shipping a set of normal packages for it all.

What are some alternatives?

When comparing PyInstaller and dh-virtualenv you can also consider the following projects:

Nuitka - Nuitka is a Python compiler written in Python. It's fully compatible with Python 2.6, 2.7, 3.4, 3.5, 3.6, 3.7, 3.8, 3.9, 3.10, and 3.11. You feed it your Python app, it does a lot of clever things, and spits out an executable or extension module.

PyOxidizer - A modern Python application packaging and distribution tool

py2exe - modified py2exe to support unicode paths

py2app

pyarmor - A tool used to obfuscate python scripts, bind obfuscated scripts to fixed machine or expire obfuscated scripts.

pynsist - Build Windows installers for Python applications

Poetry - Python packaging and dependency management made easy

fastapi - FastAPI framework, high performance, easy to learn, fast to code, ready for production

fbs-tutorial - Tutorial for creating Python/Qt GUIs with fbs

pyinstxtractor - PyInstaller Extractor

conda - A system-level, binary package and environment manager running on all major operating systems and platforms.