Installation
===================

ParityOS is a Python package; to install it you will need an environment with Python >= 3.7.

ParityOS can then be installed with pip::

    pip install parityos

This will install only the base features of ParityOS; in case one wants to use features related to
Cirq or Qiskit, one can install ParityOS via ``pip install 'parityos[cirq]'``
or ``pip install 'parityos[qiskit]'`` respectively.
For the ``spin_hamiltonian`` addon to be installed correctly, one has to add the `spinz` option to
the pip install specification: ``pip install 'parityos[spinz]'``
(or ``pip install 'parityos[spinz, cirq]'`` if one wants to install it together with Cirq).

.. note::
    It is recommended to install parityos inside a virtual environment.
    To create a standard Python ``venv`` environment, enter the following commands before
    installing parityos::

        python -m venv my_new_venv  && source my_new_venv/bin/activate

    To create a Conda environment, enter the following commands before installing parityos::

        conda create --name my_new_conda_env  &&  conda activate my_new_conda_env

    Remember to activate the environment each time you are going to use ``parityos``!

For more information about how to create and submit problems, see the :ref:`quickstart:Quickstart` section.

.. _pip.conf: https://pip.pypa.io/en/stable/user_guide/#config-file
.. _python-dotenv: https://pypi.org/project/python-dotenv/
