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. It is required to install 7zip utility in your platform.

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]...]
python -m 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]...]
  • 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

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 qcharts qtnetworkauth

Example: Installing Android (armv7) Qt 5.10.2:

aqt install 5.10.2 linux android android_armv7

Example: Install 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 OpenSSL:

C:\ aqt tool windows tools_openssl 1.1.1-1 qt.tools.openssl.win_x64

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 platform

There are no limitation for CI platform but currently it is tested on Azure Pipelines. If you want to use it with Github actions, please see install_qt action.

Use cases

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

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.0b3.tar.gz (76.4 kB view hashes)

Uploaded Source

Built Distribution

aqtinstall-0.9.0b3-py2.py3-none-any.whl (25.7 kB view hashes)

Uploaded Python 2 Python 3

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