This app consists basically of a friendly pyQt5 graphical interface for a customized version of Autosub 0.4.0 that can run on Linux, Windows and MacOS. All the hard work of processing the audio and generating the subtitles is done by Autosub.
$ python3 main.py
Install Qt5 Designer and open the file pytranscriber/gui/gui.ui
$ pyuic5 gui.ui -o gui.py
$ pyinstaller --add-data "lib/google_api_python_client-1.12.8.dist-info/*;google_api_python_client-1.12.8.dist-info" --clean main.py
The output binary will be on subfolder dist/main and has all dependencies included. For more details check pyinstaller documentation
Note: At least in my Manjaro system running latest python I need to add some extra parameters like as follows to be able to run the generated binary:
$ pyinstaller --onefile main.py --hidden-import='packaging.version' --hidden-import='packaging.specifiers' --hidden-import='packaging.requirements'
As explained in pyInstaller FAQ:
The executable that PyInstaller builds is not fully static, in that it still depends on the system libc. Under Linux, the ABI of GLIBC is backward compatible, but not forward compatible. So if you link against a newer GLIBC, you can't run the resulting executable on an older system.
Solution 1)To compile the Python interpreter with its modules (and also probably bootloader) on the oldest system you have around, so that it gets linked with the oldest version of GLIBC.
Solution 2) to use a tool like StaticX to create a fully-static bundled version of your PyInstaller application. StaticX bundles all dependencies, including libc and ld.so. (Python code :arrow_right: PyInstaller :arrow_right: StaticX :arrow_right: Fully-static application)"
Install staticx and patchelf (dependency)
$ pip3 install --user patchelf-wrapper
$ pip3 install --user staticx
After generating the binary with pyinstaller, open the dist folder and run:
$ staticx main main-static
The newly created main-static contains all library dependencies, including glibc, so it should be able to run even on very old systems.
Note: In my Manjaro system the first time I run this command I got an error related to "libmpdec.so.2 => not found". Installing the package mpdecimal on the package manager solved the issue.