Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to bundle a Python application including dependencies?

I need to package my Python application, its dependencies and Python into a single MSI installer. The end result should desirably be:

  • Python is installed in the standard location
  • the package and its dependencies are installed in a separate directory (possibly site-packages)
  • the installation directory should contain the Python uncompressed and a standalone executable is not required
like image 379
Florian Bösch Avatar asked Sep 20 '08 01:09

Florian Bösch


People also ask

How do I get all dependencies of a python package?

If you want to find all (including nested) dependencies: use pipdeptree, which is a command-line tool with many options for listing and visualizing dependencies. Runnin the pipdeptree command in your terminal will print all of your packages' dependencies.


2 Answers

Kind of a dup of this question about how to make a python into an executable.

It boils down to:

py2exe on windows, Freeze on Linux, and py2app on Mac.

like image 97
pjz Avatar answered Sep 18 '22 14:09

pjz


I use PyInstaller (the svn version) to create a stand-alone version of my program that includes Python and all the dependencies. It takes a little fiddling to get it to work right and include everything (as does py2exe and other similar programs, see this question), but then it works very well.

You then need to create an installer. NSIS Works great for that and is free, but it creates .exe files not .msi. If .msi is not necessary, I highly recommend it. Otherwise check out the answers to this question for other options.

like image 39
dF. Avatar answered Sep 20 '22 14:09

dF.