PyInstaller + Docker = CrossInstaller
Project description
CrossInstaller
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0e34ef4505db11d95e0ded6b88c9a411e211444b3c5995a4687fe5ea2050d820 |
|
MD5 | 3c6ae9a9927a4dfd2f8a7487c8097a2f |
|
BLAKE2b-256 | 1eeee8901b876b5322f7432ccba7eb5c0eda62688a65c3ea07732a1b13a39725 |
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5b1771a4c5902866c61022adbf0349943570d0846b4c5728d865b12f0522c59a |
|
MD5 | ebe009520175f6de71b40ff15682f7eb |
|
BLAKE2b-256 | 456766839532a82e443fca6a4d6720c05f931ca7e6cc62d7db1a1ee498ce0cce |