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++
mkdir YOURDIR
cd YOURDIR && git clone https://github.com/qgis/qgis.it
cd QGIS
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.
./output/bin/qgis
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