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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
|