Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How can I make a Python script standalone executable to run without ANY dependency? [duplicate]

I'm building a Python application and don't want to force my clients to install Python and modules.

So, is there a way to compile a Python script to be a standalone executable?

like image 712
Jeff Avatar asked Mar 28 '11 11:03

Jeff


3 Answers

You can use PyInstaller to package Python programs as standalone executables. It works on Windows, Linux, and Mac.

PyInstaller Quickstart

Install PyInstaller from PyPI:

pip install pyinstaller

Go to your program’s directory and run:

pyinstaller yourprogram.py

This will generate the bundle in a subdirectory called dist.

pyinstaller -F yourprogram.py

Adding -F (or --onefile) parameter will pack everything into single "exe".

pyinstaller -F --paths=<your_path>\Lib\site-packages  yourprogram.py

running into "ImportError" you might consider side-packages.

 pip install pynput==1.6.8

still runing in Import-Erorr - try to downgrade pyinstaller - see Getting error when using pynput with pyinstaller

For a more detailed walkthrough, see the manual.

like image 116
Rumple Stiltskin Avatar answered Oct 19 '22 04:10

Rumple Stiltskin


You can use py2exe as already answered and use Cython to convert your key .py files in .pyc, C compiled files, like .dll in Windows and .so on Linux.

It is much harder to revert than common .pyo and .pyc files (and also gain in performance!).

like image 295
neurino Avatar answered Oct 19 '22 06:10

neurino


You might wish to investigate Nuitka. It takes Python source code and converts it in to C++ API calls. Then it compiles into an executable binary (ELF on Linux). It has been around for a few years now and supports a wide range of Python versions.

You will probably also get a performance improvement if you use it. It is recommended.

like image 114
cdarke Avatar answered Oct 19 '22 05:10

cdarke