Skip to main content

Another unofficial Qt installer

Project description

Another Qt installer(aqt)

Jobs

Mac Linux Windows Mirror

Release Status

Status

macos ubuntu windows ext gha

pypi pep8 docs

This is an utility alternative to the official graphical Qt installer, for using in CI environment where an inteactive UI is not usable such as Github Actions, Tavis-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.

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]...]

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 specify 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 3.1.1 qt.tools.ifw.31

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

Media and articles

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.9.6 (7, Sep. 2020)

Changed

  • setup: set minimum required python version as >=3.6.

v0.9.5 (18, Aug. 2020)

Fixed

  • Fix error when install tools_openssl_src (#153)

v0.9.4 (2, Aug. 2020)

Fixed

  • Fixed CRC32 error when installing Qt5.7.(#149)

v0.9.3 (1, Aug. 2020)

Fixed

  • Fixed failure when installing Qt5.7 which archives use 7zip(LZMA1+BCJ), that is supported

    by py7zr v0.9 and later.(#149,#150)

v0.9.2 (19, June. 2020)

Added

  • Add Qt6 as a known version. (#144)

Fixed

  • Support package directory ‘qt6_*’ as well as ‘qt5_*’ (#145)

v0.9.1 (13, June. 2020)

Changed

  • Do not raise exception when specified combination is not found on downloaded meta data.

  • Update document for developers.

v0.9.0 (31, May. 2020)

Added

  • New subcommand doc/src/example to install each components.(#137, 138)

  • Doc: Add CLI example for tools, doc, examples and src.

Changed

  • Refactoring to reduce code duplication in archives.py

  • Explicitly call QtInstall.finalize() only when Qt library installation.

Fixed

  • Show help when launched without any argument (#136)

v0.9.0b3 (21, May. 2020)

Changed

  • Patch qmake when finishing installation.(#100) qmake has a hard-coded prefix path, and aqt modify binary in finish phase. it is not necessary for Qt 5.14.2, 5.15.0 and later. This behavior try to be as same as a Qt installer framework doing.

  • Patch Framework.QtCore when finishing installation.(#100) As same as qmake, framework also has a hard-coded prefix path. (Suggestions from @agateau)

v0.9.0b2 (21, May. 2020)

Added

  • CLI: ‘–archives’ option: it takes multiple module names such as qtbase, qtsvg etc. This is an advanced option to specify subset of target installation. There is no guarantee it works. It is not recommended if you are unknown what is doing.

v0.9.0b1 (10, May. 2020)

Added

  • Support installation of Qt version for msvc2019

  • Add knowlege of components combination on 5.14 and 5.15

Changed

  • Show detailed diagnose message when error happend.

  • CI test with Qt 5.14.2 and 5.15.0

  • CI test with installed mingw tools compiler.

  • Depends on py7zr v0.7.0b2 and later.

Fixed

  • Tools: Fix mingw installation failure.

  • Fix –outputdir behavior about path separator on windows

v0.8 (26, Mar. 2020)

Fixed

  • docs: fix broken link for qli-installer

v0.8b1 (12, Mar. 2020)

Added

  • Support specifing config with environment variable AQT_CONFIG

Fixed

  • Fix to use concurrency settings

v0.8a4 (6, Mar., 2020)

Fixed

  • Import-metadata package is required in python version < 3.8 not 3.7.

  • Refactoring redirect helper function to improve connection error checks and error message.(#109)

v0.8a3 (5, Mar., 2020)

Changed

  • Improve error messages when command argument is wrong.

Fixed

v0.8a1 (28, Feb., 2020)

Changed

  • Allow path search for 7z (#96)

  • Simplify multithreading using concurrent.futures.ThreadPoolExecutor().

Fixed

  • Detect exception on each download and extraction threads.

  • Race condition error happend on py7zr. require py7zr>=0.5.3.(#97)

v0.7.4 (15, Feb., 2020)

Changed

  • requirement of py7zr version become >0.6b2 which fixed a multiprocessing problem.

v0.7.3 (14, Feb., 2020)

Added

  • Github Actions workflows for publishing.

Changed

  • Remove run script from source. Now it is automatically generated when build.(#85)

  • Update requirement py7zr >=0.5

Fixed

  • README: fix reStructured text syntax.

v0.7.2 (11, Feb., 2020)

Changed

  • Replace ‘multiprocessing.dummy’ with ‘concurrent.futures’.
    • download with multi-threading(I/O bound)

    • extract with multi-processing(CPU bound)

Fixed

  • ‘-E | –external’ option handling which cause path is not str error.

v0.7.1 (13, Jan., 2020)

Fixed

  • Fix installation of extra modules for Qt5.9.

v0.7 (13, Jan., 2020)

Changed

  • Move project metadata to setup.cfg from setup.py.

v0.7b1 (10, Jan., 2020)

Changed

  • Bamp up dependency py7zr >=v0.5b5.

  • Use py7zr in default to extract packages.

  • Drop –internal command line option.

v0.7a2 (7, Jan., 2020)

Added

  • Add special module name ‘all’ for extra module option.

Fixed

  • CI conditions, update target version.

v0.7a1 (29, Nov., 2019)

Added

  • Introduce helper module.

  • Introduce ‘settings.ini’ file which has a configuration for aqt module.

Changed

  • Version numbering with setuptools_scm.

  • Now don’t install extra modules when installing ‘wasm_32’ arch. You should explicitly specify it with ‘-m’ option.

Fixed

  • Error when mirror site is not http, but https and ftp.

v0.6b1 (23, Nov., 2019)

Changed

  • Just warn when argument combination check is failed.

  • CI: Compress sample project for build test with 7zip.

  • CI: Place sample script in ci directory.

v0.6a2 (19, Nov., 2019)

Added

  • Test: Unit test against command line.

  • Android target variants.

Changed

  • Use logging configuration with logging.ini

Fixed

  • qconfig.pri: fix QT_LICHECK line.

Removed

  • Logging configuration file logging.yml

  • Drop dependency for pyyaml.

v0.6a1 (17, Nov., 2019)

Added

  • More build test with sample project which uses an extra module.(#56)

  • Add support for installation of WebAssembly component by specifying ‘wasm_32’ as an arch argument.(#53, #55)

Changed

  • Optional modules are installed explicitly. Users need to specify extra modules with -m option.(#52, #56)

Fixed

  • Dependency for py7zr only for python > 3.5. Now it works with python2.7.

v0.5 (10, Nov., 2019)

Changed

  • Introduce combination DB in json form. User and developer now easily add new component for installation checking.

Fixed

  • requires py7zr >= 0.4.1 because v0.4 can fails to extract file.

v0.5b2 (8, Oct., 2019)

Changed

  • Change install path from <target>/Qt/Qt<version>/<version> to <target>/<version> (#48). - Also update CI test to specify –outputdir <target> that is $(BinariesDirectory)/Qt

v0.5b1 (8, Oct., 2019)

Added

  • Add feature to support installation of Qt Tools

  • Add CI test for tool installation

Changed

  • CI test target - add 5.14.0 - remove 5.11.3 - change patch_levels to up-to-date

v0.4.3 (25, Sep, 2019)

Fixed

  • Allow multiple redirection to mirror site.(#41)

v0.4.2 (28, Jul, 2019)

Changed

  • README: update badge layout.

  • CI: Improve azure-pipelines configurations by Nelson (#20)

  • Check parameter combination allowance and add winrt variant.

  • Support installation of mingw runtime package.

  • Add ‘–internal’ option to use py7zr instead of external 7zip command for extracting package archives.(WIP)

v0.4.1 (01, Jun, 2019)

Added

  • Option -b | –base to specify mirror site.(#24)

Changed

  • CI: add script to generate auzre-pipelines.yml (#27, #28, #29)

  • CI: use powershell script for linux, mac and windows. (#26)

Fixed

  • Avoid blacklisted mirror site that cause CI fails.(#25)

v0.4.0 (29, May, 2019)

Added

  • cli: output directory option.

  • sphinx document.

  • test packaging on CI.

  • Handler for metalink information and intelligent mirror selection.

Changed

  • Change project directory structure.

  • cli command name changed from ‘aqtinst’ to ‘aqt’ and now you can run ‘aqt install’

  • Introduce Cli class

  • Massive regression test on azure pipelines(#20)

  • blacklist against http://mirrors.tuna.tsinghua.edu.cn and http://mirrors.geekpie.club/ from mirror site.

  • Run 7zip command with ‘-o{directory}’ option.

Fixed

  • Fix File Not Found Error when making qt.conf against win64_mingw73 and win32_mingw73

v0.3.1 (15, March, 2019)

Added

  • Qmake build test code in CI environment.(#14)

Fixed

  • Connect to Qt download server through proxy with authentication.(#17)

Changed

  • Change QtInstaller.install() function signature not to take any parameter.

  • Replace standard urllib to requests library.(#18)

  • Use 7zr external command instead of 7z in Linux and mac OSX envitonment.

Removed

  • requirements.txt file.

v0.3.0 (8, March, 2019)

Added

  • Allow execute both ‘aqtinst’ and ‘python -m aqt’ form.

Changed

  • Project URL is changed.

  • Generate universal wheel support both python2.7 and python 3.x.

Fixed

  • Update README wordings.

  • Remove dependency for python3 with ‘aqtinst’ command utility.

  • Fix command name in help message.

v0.2.0 (7, March, 2019)

Added

  • Released on pypi.org

Changed

  • Install not only basic packages also optional packages.

  • Rename project/command to aqt - Another QT installer

Fixed

  • Update mkspecs/qconfig.pri to indicate QT_EDITION is OpenSource

  • Support Python2

v0.1.0 (5, March, 2019)

Changed

  • Support multiprocess concurrent download and installation.

v0.0.2 (4, March, 2019)

Added

  • CI test on Azure-pipelines

Changed

  • Refactoring code

  • Install QtSDK into (cwd)/Qt<version>/<version>/gcc_64/

  • Drop dependency for requests library

  • Use standard argparse for command line argument.

Fixed

  • Support windows.

  • looking for 7zip in standard directory.

v0.0.1 (2, March, 2019)

  • Fork from qli-installer

Project details


Release history Release notifications | RSS feed

This version

0.9.6

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

aqtinstall-0.9.6.tar.gz (82.2 kB view details)

Uploaded Source

Built Distribution

aqtinstall-0.9.6-py2.py3-none-any.whl (27.3 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file aqtinstall-0.9.6.tar.gz.

File metadata

  • Download URL: aqtinstall-0.9.6.tar.gz
  • Upload date:
  • Size: 82.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.3.1 requests-toolbelt/0.9.1 tqdm/4.48.2 CPython/3.8.5

File hashes

Hashes for aqtinstall-0.9.6.tar.gz
Algorithm Hash digest
SHA256 9b6d5032f13529aa4c073ffae019fc358c0fe483108a0729357c48917dd20eda
MD5 35586a1343f2d59db5fc3d989519d672
BLAKE2b-256 a5fdc86d9aee1d6d98c563bfab034f718fb22201ac03e3cee6d66ae90e7fe323

See more details on using hashes here.

File details

Details for the file aqtinstall-0.9.6-py2.py3-none-any.whl.

File metadata

  • Download URL: aqtinstall-0.9.6-py2.py3-none-any.whl
  • Upload date:
  • Size: 27.3 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.3.1 requests-toolbelt/0.9.1 tqdm/4.48.2 CPython/3.8.5

File hashes

Hashes for aqtinstall-0.9.6-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 ee3f4c7a50e592083ea6949d6a62b36563d89d26b015a125de7247c550b6d330
MD5 a8b0a3c3b96720f1fc62169d920f621a
BLAKE2b-256 2a4361f0d114844d67cd8d33295e7c0d83e4c979772f2c1a1f50f094e2e918c6

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page