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 details)

Uploaded Source

Built Distribution

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

Uploaded Python 3

File details

Details for the file crossinstaller-0.2.0.tar.gz.

File metadata

  • Download URL: crossinstaller-0.2.0.tar.gz
  • Upload date:
  • Size: 7.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.10.1 pkginfo/1.8.2 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.10

File hashes

Hashes for crossinstaller-0.2.0.tar.gz
Algorithm Hash digest
SHA256 0e34ef4505db11d95e0ded6b88c9a411e211444b3c5995a4687fe5ea2050d820
MD5 3c6ae9a9927a4dfd2f8a7487c8097a2f
BLAKE2b-256 1eeee8901b876b5322f7432ccba7eb5c0eda62688a65c3ea07732a1b13a39725

See more details on using hashes here.

File details

Details for the file crossinstaller-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: crossinstaller-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 15.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.10.1 pkginfo/1.8.2 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.10

File hashes

Hashes for crossinstaller-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 5b1771a4c5902866c61022adbf0349943570d0846b4c5728d865b12f0522c59a
MD5 ebe009520175f6de71b40ff15682f7eb
BLAKE2b-256 456766839532a82e443fca6a4d6720c05f931ca7e6cc62d7db1a1ee498ce0cce

See more details on using hashes here.

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