Skip to main content

PyInstaller + Docker = CrossInstaller

Project description

CrossInstaller

Build Version Version

Create Python executables for Linux and Windows using one command.

Installation

From PyPI

pip install crossinstaller -U

From sources

git clone https://github.com/desty2k/crossinstaller.git
cd crossinstaller
pip install .

Usage

Creating executables

Target platforms are specified by the --platform option. Option can be specified multiple times. At least one platform must be specified. Available default platforms are: win32, win64, i386, amd64.

crossinstaller some_script.py -p amd64 -p win64

The above command will create two executables: some_script for Linux x64 and some_script.exe for Windows x64.

Adding custom platform

Use -a/--add-platform option to add custom platform. For example, if you want to create an executable for platform_name platform, which use dockerfile Dockerfile, you can do it like this:

crossinstaller some_script.py -a platform_name path/to/dockerfile

Option can be specified multiple times.

Passing extra arguments to the Pyinstaller

You can pass extra arguments to the Pyinstaller by using -e/--options option. Make sure to quote the arguments. Note the extra space in the argument.

crossinstaller some_script.py --options " -F --icon icon.ico"

Specifying the working directory

By default, the working directory is the same as the script directory. You can specify custom working directory by using -w/--workdir option.

crossinstaller path/to/some_script.py -w path/

Using in a script

You can use crossinstaller as a Python module. Note that working directory will be changed to the script directory.

from pathlib import Path
from crossinstaller import Platform, CrossInstaller, get_default_platforms

if __name__ == '__main__':
    generator = CrossInstaller()
    # add default platforms
    generator.add_platforms(get_default_platforms())
    # add custom platform
    # note: all files required by the Dockerfile must be in the same directory as the Dockerfile
    my_platform = Platform("my-platform-64", Path("/usr/bin/my-platform-64/Dockerfile"))
    generator.add_platform(my_platform)
    # start crossinstaller
    generator.start(Path("path/to/my/script.py"), keep_build=True, extra_options="-F")
    # start is non blocking, you can do other stuff here
    # or wait for the build to finish
    generator.wait()

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

crossinstaller-0.2.0.tar.gz (7.6 kB view hashes)

Uploaded Source

Built Distribution

crossinstaller-0.2.0-py3-none-any.whl (15.9 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page