xref: /qemu/python/README.rst (revision 31622b2a)
193128815SJohn SnowQEMU Python Tooling
293128815SJohn Snow===================
393128815SJohn Snow
493128815SJohn SnowThis directory houses Python tooling used by the QEMU project to build,
593128815SJohn Snowconfigure, and test QEMU. It is organized by namespace (``qemu``), and
693128815SJohn Snowthen by package (e.g. ``qemu/machine``, ``qemu/qmp``, etc).
793128815SJohn Snow
893128815SJohn Snow``setup.py`` is used by ``pip`` to install this tooling to the current
993128815SJohn Snowenvironment. ``setup.cfg`` provides the packaging configuration used by
1093128815SJohn Snow``setup.py`` in a setuptools specific format. You will generally invoke
1193128815SJohn Snowit by doing one of the following:
1293128815SJohn Snow
1393128815SJohn Snow1. ``pip3 install .`` will install these packages to your current
1493128815SJohn Snow   environment. If you are inside a virtual environment, they will
1593128815SJohn Snow   install there. If you are not, it will attempt to install to the
1693128815SJohn Snow   global environment, which is **not recommended**.
1793128815SJohn Snow
1893128815SJohn Snow2. ``pip3 install --user .`` will install these packages to your user's
1993128815SJohn Snow   local python packages. If you are inside of a virtual environment,
2093128815SJohn Snow   this will fail; you likely want the first invocation above.
2193128815SJohn Snow
2293128815SJohn SnowIf you append the ``-e`` argument, pip will install in "editable" mode;
2393128815SJohn Snowwhich installs a version of the package that installs a forwarder
2493128815SJohn Snowpointing to these files, such that the package always reflects the
2593128815SJohn Snowlatest version in your git tree.
2693128815SJohn Snow
27dbe75f55SJohn SnowInstalling ".[devel]" instead of "." will additionally pull in required
28dbe75f55SJohn Snowpackages for testing this package. They are not runtime requirements,
29dbe75f55SJohn Snowand are not needed to simply use these libraries.
30dbe75f55SJohn Snow
3193128815SJohn SnowSee `Installing packages using pip and virtual environments
3293128815SJohn Snow<https://packaging.python.org/guides/installing-using-pip-and-virtual-environments/>`_
3393128815SJohn Snowfor more information.
3493128815SJohn Snow
3593128815SJohn Snow
3693128815SJohn SnowFiles in this directory
3793128815SJohn Snow-----------------------
3893128815SJohn Snow
3993128815SJohn Snow- ``qemu/`` Python package source directory.
40*31622b2aSJohn Snow- ``tests/`` Python package tests directory.
41*31622b2aSJohn Snow- ``avocado.cfg`` Configuration for the Avocado test-runner.
42eae4e442SJohn Snow- ``MANIFEST.in`` is read by python setuptools, it specifies additional files
43eae4e442SJohn Snow  that should be included by a source distribution.
4493128815SJohn Snow- ``PACKAGE.rst`` is used as the README file that is visible on PyPI.org.
4541c1d81cSJohn Snow- ``Pipfile`` is used by Pipenv to generate ``Pipfile.lock``.
4641c1d81cSJohn Snow- ``Pipfile.lock`` is a set of pinned package dependencies that this package
4741c1d81cSJohn Snow  is tested under in our CI suite. It is used by ``make venv-check``.
4893128815SJohn Snow- ``README.rst`` you are here!
4993128815SJohn Snow- ``VERSION`` contains the PEP-440 compliant version used to describe
5093128815SJohn Snow  this package; it is referenced by ``setup.cfg``.
5193128815SJohn Snow- ``setup.cfg`` houses setuptools package configuration.
5293128815SJohn Snow- ``setup.py`` is the setuptools installer used by pip; See above.
53