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 replacing the official graphical Qt installer. 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_msvc2017_64, win32_msvc2017, win64_msvc2015_64, win32_msvc2015, win64_mingw73, win32_mingw73, win64_mingw53, win32_mingw53, 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_msvc2017_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_msvc2017_x64
C:\ .\Qt\Tools\vcredist\vcredist_msvc2017_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

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

Project details


Download files

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

Files for aqtinstall, version 0.8a4
Filename, size File type Python version Upload date Hashes
Filename, size aqtinstall-0.8a4-py2.py3-none-any.whl (22.9 kB) File type Wheel Python version py2.py3 Upload date Hashes View
Filename, size aqtinstall-0.8a4.tar.gz (52.1 kB) File type Source Python version None Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page