Another unofficial Qt installer
Project description
Another Qt installer(aqt)
Jobs |
Mac Linux Windows Mirror |
Release Status |
Status |
This is a utility alternative to the official graphical Qt installer, for using in CI environment where an interactive UI is not usable such as Github Actions, Travis-CI, CircleCI, Azure-Pipelines, AppVeyor and others.
It can automatically download prebuilt Qt binaries for any target (you’re not bound to Linux binaries on Linux; you could also download iOS binaries). It’s working with Python > 3.5 on Linux, OS X and Windows.
License and copyright
This program is distributed under MIT license.
Qt SDK and its related files are under its licenses. When using aqtinstall, you are considered to agree upon Qt licenses. aqtinstall installs Qt SDK as of a (L)GPL Free Software.
For details see Qt licensing and Licenses used in Qt5
Requirements
Minimum Python version: 3.6
Recommended Python version: 3.7.5 or later
Dependent libraries: requests, py7zr
Install
Same as usual, it can be installed with pip
$ pip install aqtinstall
Usage
General usage looks like this:
aqt [-h][--help][-O | --outputdir <directory>][-b | --base <mirror url>][-E | --external <7zip command>] \
install <qt-version> <host> <target> [<arch>] [-m all | -m [extra module] [extra module]...] [--internal] [--archives archive]
You can also call with python -m aqt syntax as well as command script aqt.
The Qt version is formatted like this: 5.11.3
Host is one of: linux, mac, windows
Target is one of: desktop, android, ios (iOS only works with mac host)
- For some platforms you also need to specify an arch:
- For windows, choose one of:
win64_msvc2019_64, win32_msvc2019,
win64_msvc2017_64, win32_msvc2017,
win64_msvc2015_64, win32_msvc2015,
win64_mingw81, win32_mingw81,
win64_mingw73, win32_mingw73,
win64_mingw53, win32_mingw53,
win64_msvc2019_winrt_x64, win64_msvc2019_winrt_x86, win64_msvc2019_winrt_armv7
win64_msvc2017_winrt_x64, win64_msvc2017_winrt_x86, win64_msvc2017_winrt_armv7
For android and Qt 5.13 or below, choose one of: android_x86_64, android_arm64_v8a, android_x86, android_armv7
You can specify external 7zip command path instead of built-in extractor.
When specifying all for extra modules option -m all extra modules are installed.
Installing tool and utility (Experimental)
You can install tools and utilities using following syntax;
python -m aqt [-h][--help][-O | --outputdir <directory>][-b | --base <mirror url>][-E | --external <7zip command>] \
tool <host> <tool_name> <tool-version> <arch>
tool_name is one of tools_ifw, tools_vcredist, and tools_openssl.
arch is full qualified tool name such as qt.tools.ifw.31 which values can be seen on Qt archive_site This is a quite experimental feature, may not work and please use it with your understanding of what you are doing.
It does not recognize ‘installscript.qs’. When using tools which depends on a qt script, you should do something by yourself.
Target directory
aqt can take option ‘–outputdir’ or ‘-O’ that specify a target directory.
The Qt packages are installed under current directory as such Qt/<ver>/gcc_64/ If you want to install it in C:Qt as same as standard gui installer default, run such as follows:
C:\> mkdir Qt
C:\> aqt install --outputdir c:\Qt 5.11.3 windows desktop win64_msvc2019_64
Command examples
Example: Installing Qt SDK 5.12.0 for Linux with QtCharts and QtNetworkAuth:
pip install aqtinstall
sudo aqt install --outputdir /opt 5.12.0 linux desktop -m qtcharts qtnetworkauth
Example: Installing Android (armv7) Qt 5.10.2:
aqt install 5.10.2 linux android android_armv7
Example: Install examples, doc and source:
C:\ aqt examples 5.15.0 windows desktop -m qtcharts qtnetworkauth
C:\ aqt doc 5.15.0 windows desktop -m qtcharts qtnetworkauth
C:\ aqt src 5.15.0 windows desktop
Example: Install Web Assembly
aqt install 5.15.0 linux desktop wasm_32
Example: Install an Install FrameWork (IFW):
aqt tool linux tools_ifw 4.0 qt.tools.ifw.40
Example: Install vcredist:
C:\ aqt tool windows tools_vcredist 2019-02-13-1 qt.tools.vcredist_msvc2019_x64
C:\ .\Qt\Tools\vcredist\vcredist_msvc2019_x64.exe /norestart /q
Example: Install MinGW on Windows
C:\ aqt tool -O c:\Qt windows tools_mingw 8.1.0-1-202004170606 qt.tools.win64_mingw810w
c:\ set PATH=C:\Qt\Tools\mingw810_64\bin
Example: Show help message
aqt help
Environment Variables
It is users task to set some environment variables to fit your platform such as
export PATH=/path/to/qt/x.x.x/clang_64/bin/:$PATH
export QT_PLUGIN_PATH=/path/to/qt/x.x.x/clang_64/plugins/
export QML_IMPORT_PATH=/path/to/qt/x.x.x/clang_64/qml/
export QML2_IMPORT_PATH=/path/to/qt/x.x.x/clang_64/qml/
aqtinstall never do it for you because not to break multiple installation versions.
Supported CI platforms
There are no limitation for CI platform but currently it is tested on Azure Pipelines and Github actions. If you want to use it with Github actions, install_qt action will help you.
Use cases
GitHub Actions: install_qt
Docker image: docker aqtinstall
PyQt5 Tools: pyqt5-tools
Yet another comic reader: YACReader utilize on Azure-Pipelines
Media and articles
Contributor Nelson’s blog article: Fast and lightweight headless Qt Installer from Qt Mirrors: aqtinstall
Lostdomain.org blog: Using Azure DevOps Pipelines with Qt
Qt Forum: Automatic installation for Travis CI (or any other CI)
History
This program is originally shown in Kaidan project as a name qli-installer. A project aqtinstall extend the original to run with standard python features with Linux, Mac and Windows, to be tested on CI platform, and to improve performance with a concurrent downloading.
aqtinstall changeLog
All notable changes to this project will be documented in this file.
Current changes
Unreleased
Added
Changed
Fixed
Deprecated
Removed
Security
v0.10.1 (11, Dec. 2020)
Added
Add LTS vresions as known version.(#188)
Changed
Tool: Version comparison by startswith. When specified 4.0 but download server hold 4.0.1, it catch 4.0.1.(related #187)
README: explicitly show python version requirements.
v0.10.0 (25, Nov. 2020)
Added
Add v5.12.2, v6.0.0 as known versions.(#176, #177)
Support –archives option on src installation.
Changed
Use multiprocessing.Pool instead of concurrent.futures(#178)
Refactoring whole modules. (#179)
Split old changelogs to CHNAGELOG_prerelease.rst
Drop an upper limitaion (<0.11) for py7zr.(#183)
Fixed
When we used “-m all” to download doc or examples, Qt sources are also downloaded(@Gamso)(#182)
v0.9.8 (4, Nov. 2020)
Added
Added new combinations for tools_ifw
Fixed
When we start an installation, all packages are downloaded whatever the specified platform.(#159)
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 aqtinstall-0.10.1.tar.gz
.
File metadata
- Download URL: aqtinstall-0.10.1.tar.gz
- Upload date:
- Size: 79.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.0 setuptools/51.0.0 requests-toolbelt/0.9.1 tqdm/4.54.1 CPython/3.8.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 964368f668d9089b3bdbdd8c9b95baeae7497a299d46e4b99020007d7f54ca9c |
|
MD5 | 92eb7ea34b85dffa029b6a2972cb570d |
|
BLAKE2b-256 | db746f55c3a35a2967b9b8842409cf08a75a2926a77e46050646366a5460e2f2 |
File details
Details for the file aqtinstall-0.10.1-py2.py3-none-any.whl
.
File metadata
- Download URL: aqtinstall-0.10.1-py2.py3-none-any.whl
- Upload date:
- Size: 22.0 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.0 setuptools/51.0.0 requests-toolbelt/0.9.1 tqdm/4.54.1 CPython/3.8.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | ed5093f95e429fd19f5e7f8c87d205f9b7cc20a914d8c84607c1d6bd50e1ee90 |
|
MD5 | 910d852c5cac10c787a4cce9308c71e5 |
|
BLAKE2b-256 | e71988e1c85dd8c3b20c420c61502eb15125de4e3071082bd53b9fcbc80ff8b2 |