2. Installation

2.1. Requirements

  • QGIS 3
  • Python 3
  • pip3
  • Git
  • PyQt5
  • pb_tool
  • virtualenv

2.2. (Optional) Compile QGIS 3.x

We are compiling QGIS from source because it’s helpful to have access to the API code, but mainly because QGIS 3.x is not available in our package manager yet.

Refer to the QGIS docs if this overview is too succint.

# Important: install the dependencies they mention before proceeding.
# There are a large number of packages required to compile QGIS.

cd /usr/local/bin
sudo ln -s /usr/bin/ccache gcc
sudo ln -s /usr/bin/ccache g++

cd YOURDIR && git clone https://github.com/qgis/qgis.it
git fetch origin && git checkout release-3_2
mkdir build && cd build
ccmake .. # Hit the [c] key and the [g] at the menu to generate the defaults.
make -jX #Where X is your CPU core count
# It will be easier to run "make install" too.

2.3. Build Marvis

Ensuring you have git installed, on a command line, and in the directory you want to store the marvis code, run:

git clone https://github.com/ranguli/marvis

Then enter the marvis directory:

cd ./marvis

With no errors, move on to the next section.

Note: once you are ready to starting contributing to the code, you will need to switch to a different branch. This is outside the scope of the documentation.

2.4. Compilation

Compilation is perhaps a bit of a misnomer seen as how we’re using an interpreted language, but there are certain files that do need to be collected or converted from another format into Python when one is developing plugins for QGIS. The equivalent of a “compiler” for us will be pb_tool which you should have installed with pip earlier.

To only compile the plugin, run:

pb_tool compile

To compile and copy the plugin to the QGIS plugins directory, run:

pb_tool deploy

Or, in shorthand:

pb_tool de

The tool is told exactly what to do using a config file, pg_tool.cfg in the project root directory. If you need to troubleshoot the behavior of pb_tool confirming that the config file is properly set up may be helpful.

The tool also comes with various other helpful features, such as clean