Options for packaging your Python code: Wheels, Conda, Docker, and more

  • There is also zip app [1] if you already have python installed

    [1] https://docs.python.org/3/library/zipapp.html

  • This seems to be focused on packaging applications, and suggests that wheel is not good enough if you have a dependency on a C library. I am surprised since I thought you could embed a C library in a wheel.

    I would like to know, is wheel+pypi an acceptable way to go to package and distributed a Python library that includes a C library (so/dll)?

    I get the impression that big libraries like numpy and tensorflow use this method to pretty good effect. It seems easier than trying to compile the C libraries on the target machine, but is it quite difficult to achieve multiplatform support this way?

  • > The Conda package system packages both Python packages and C shared libraries and the Python interpreter into Conda packages.

    This doesn't sound correct. Conda packages don't actually include the entire Python interpreter in them right?

    A prerequisite to installing Conda packages is to have Anaconda/Miniconda installed which brings in the Python interpreter and a given set of packages depending on the version you install but that doesn't mean that each Conda package will be carrying the interpreter with it.