Getting started¶
Once installed, the command line tool can be used in a shell as follows:
>>> qip -h
To install a package available on PyPi with its dependencies, simply run the following command:
>>> qip install ipython
Note
Packages deployed in a custom index such as Devpi will also be available.
By default, the Python packages and corresponding Wiz definition will be installed in the temporary path of the station:
>>> tree -L 3 /tmp/qip
├── definitions
│ ├── library-appnope-0.1.0-wfOwykDoXMk2LHJ6B1X0ZWpB-Js.json
│ ├── library-backcall-0.2.0.json
│ ├── library-decorator-4.4.2.json
│ ├── library-ipython-7.18.1.json
│ ├── library-ipython-genutils-0.2.0.json
│ ├── library-jedi-0.17.2.json
│ ├── library-parso-0.7.1.json
│ ├── library-pexpect-4.8.0-wfOwykDoXMk2LHJ6B1X0ZWpB-Js.json
│ ├── library-pickleshare-0.7.5.json
│ ├── library-prompt-toolkit-3.0.7.json
│ ├── library-ptyprocess-0.6.0-wfOwykDoXMk2LHJ6B1X0ZWpB-Js.json
│ ├── library-pygments-2.7.0.json
│ ├── library-setuptools-50.3.0.json
│ ├── library-traitlets-5.0.4.json
│ └── library-wcwidth-0.2.5-wfOwykDoXMk2LHJ6B1X0ZWpB-Js.json
└── packages
├── Pygments
│ └── Pygments-2.7.0-py38
├── appnope
│ └── appnope-0.1.0-py38-mac10
├── backcall
│ └── backcall-0.2.0-py38
├── decorator
│ └── decorator-4.4.2-py38
├── ipython
│ └── ipython-7.18.1-py38
├── ipython-genutils
│ └── ipython-genutils-0.2.0-py38
├── jedi
│ └── jedi-0.17.2-py38
├── parso
│ └── parso-0.7.1-py38
├── pexpect
│ └── pexpect-4.8.0-py38-mac10
├── pickleshare
│ └── pickleshare-0.7.5-py38
├── prompt-toolkit
│ └── prompt-toolkit-3.0.7-py38
├── ptyprocess
│ └── ptyprocess-0.6.0-py38-mac10
├── setuptools
│ └── setuptools-50.3.0-py38
├── traitlets
│ └── traitlets-5.0.4-py38
└── wcwidth
└── wcwidth-0.2.5-py38-mac10
The Wiz definition for “ipython” will look as follows:
{
"identifier": "ipython",
"version": "7.18.1",
"namespace": "library",
"description": "IPython: Productive Interactive Computing",
"install-root": "/tmp/qip/packages",
"command": {
"iptest": "python -m IPython.testing.iptestcontroller",
"iptest3": "python -m IPython.testing.iptestcontroller",
"ipython": "python -m IPython",
"ipython3": "python -m IPython"
},
"environ": {
"PYTHONPATH": "${INSTALL_LOCATION}:${PYTHONPATH}"
},
"variants": [
{
"identifier": "3.8",
"install-location": "${INSTALL_ROOT}/ipython/ipython-7.18.1-py38/lib/python3.8/site-packages",
"requirements": [
"python >= 3.8, < 3.9",
"library::decorator[3.8]",
"library::traitlets[3.8] >=4.2",
"library::jedi[3.8] >=0.10",
"library::prompt-toolkit[3.8] >=2.0.0, <3.1.0, !=3.0.1, !=3.0.0",
"library::pexpect[3.8] >4.3",
"library::pygments[3.8]",
"library::appnope[3.8]",
"library::backcall[3.8]",
"library::setuptools[3.8] >=18.5",
"library::pickleshare[3.8]"
]
}
]
}
By default, Qip will install Python packages using the current
Python executable
. It is possible to change it with
the -p/--python
option:
>>> qip install -u -p `which python2` ipython
Note
The -u/--update
option is used to
update existing Wiz definitions with new variants corresponding to
the Python version used (e.g. “2.7”).
If Wiz definitions are already deployed for the Python interpreter, it is possible to use a request instead of a Python executable path:
>>> qip install -u -p "python==2.7.*" ipython
See also
Qip is a lightweight command line tool built over the Pip command, therefore it is possible to install packages as follows:
>>> qip install .
>>> qip install /path/to/foo/
>>> qip install "foo==0.1.0"
>>> qip install "foo >= 7, < 8"
>>> qip install "git@github.com:foo/foo-api.git"
>>> qip install "git@github.com:foo/foo-api.git@0.1.0"
>>> qip install "git@github.com:foo/foo-api.git@dev"
As Python packages will not be installed in the same location, it is also possible to install several versions of the same package:
>>> qip install "ipython==7.*" "ipython==5.*"
If Wiz definitions are already deployed for the dependent Python interpreter, “ipython” can be run as follows:
>>> wiz -add /tmp/qip/definitions run ipython