Skip to main content

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

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

If you're not sure about the file name format, learn more about wheel file names.

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.

Release history Release notifications | RSS feed

This release

0.2.0 This release

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page