# Install QCFractal¶

You can install QCFractal with conda (recommended) or with pip (with some caveats).

The below commands install QCFractal and its required dependencies, but not any of the quantum chemistry codes nor the software to run Queue Managers. This is done to avoid requiring all software which can interface with QCFractal, and instead requires the user to obtain the software they individually require.

## Conda¶

You can install QCFractal using conda:

>>> conda install qcfractal -c conda-forge


This installs QCFractal and its dependencies. The QCFractal package is maintained on the conda-forge channel.

### Conda Pre-Created Environments¶

QCFractal can also be installed through pre-configured environments you can pull through our Conda Channel:

>>> conda env create qcarchive/{environment name}
>>> conda activate {environment name}


The environments are created from the YAML files hosted on the Anaconda Cloud, which then need to be activated to use. You can find all of the environments here.

If you want to use a different name than the environment file, you can add a -n {custom name} flag to the conda env command.

The environments must be installed as new environments and cannot be installed into existing ones.

The environments are designed to provide pre-built environments which include additional programs beyond QCFractal itself which are designed for use in production or practical experimentation. For instance, the qcf-manager-openff environment also installs a couple quantum chemistry programs, a distributed compute Queue Adapter, and a service which QCFractal can run. This environment can be deployed for immediate use on a remote compute site (e.g. a cluster) and connect to a QCFractal instance to consume compute tasks.

## Pip¶

Warning

Installing QCFractal from PyPi/pip requires an existing PostgreSQL installation on your computer. Whether that be through a native install on your device (e.g. managed clusters), a direct installer, yum install, a conda install, or otherwise; it must be installed first or the Psycopg2 package will complain about missing the pg_config. Installation of PostgreSQL manually is beyond the scope of these instructions, so we recommend either using a Conda install of QCFractal or contacting your systems administrator.

If you have PosgreSQL installed already, you can also install QCFractal using pip:

>>> pip install qcfractal


## Test the Installation¶

Note

There are several optional packages QCFractal can interface with for additional features such as visualization, Queue Adapters, and services. These are not installed by default and so you can expect many of the tests will be marked with skip or s.

You can test to make sure that Fractal is installed correctly by first installing pytest.

From conda:

>>> conda install pytest -c conda-forge


From pip:

>>> pip install pytest


Then, run the following command:

>>> pytest --pyargs qcfractal


QCFractal ships with a small testing plugin which should be automatically detected and gives you access to the --runslow and --runexamples PyTest CLI flags. The --runslow flag tells the testing suite to run any test the developers think are a bit more time consuming than the others. Without this flag, you will see many tests (such as those for the CLI) skipped.

## Developing from Source¶

If you are a developer and want to make contributions QCFractal, you can access the source code from github.