Advanced setup#
Working with Jupyter Notebooks and JupyterLab#
If you like using Jupyter notebooks, you should also update the “base” conda
environment to include the nb_conda_kernels
package; this will make it
easier to use AVNI in Jupyter Notebooks launched from the Anaconda GUI:
$ conda install --name=base nb_conda_kernels
When using AVNI within IPython or a Jupyter notebook, we strongly recommend using the Qt matplotlib backend for fast and correct rendering. On Linux, for example, Qt is the only matplotlib backend for which 3D rendering will work correctly. On macOS, certain matplotlib functions might not work as expected on backends other than Qt. Enabling Qt can be accomplished when starting IPython from a terminal:
$ ipython --matplotlib=qt
or in a Jupyter Notebook, you can use the “magic” command:
In [1]: %matplotlib qt
This will create separate pop-up windows for each figure, and has the advantage that the 3D plots will retain rich interactivity (so, for example, you can click-and-drag to rotate cortical surface activation maps).
If you are creating a static notebook or simply prefer Jupyter’s inline plot display, AVNI will work with the standard “inline” magic:
In [1]: %matplotlib inline
but some functionality will be lost. For example, PyVista scenes will still pop-up a separate window, but only one window at a time is possible, and interactivity within the scene is limited in non-blocking plot calls.
Windows
If you are using AVNI on Windows through IPython or Jupyter, you might also
have to use the IPython magic command %gui qt
(see here). For example:
In [2]: %gui qt
If you installed the nb_conda_kernels
package into your base
environment
(as recommended), you should be able to launch avni
-capable notebooks from
within the Anaconda Navigator GUI without having to explicitly switch to the
avni
environment first; look for Python [conda env:avni]
when choosing
which notebook kernel to use. Otherwise, be sure to activate the avni
environment before launching the notebook.
If you use another Python setup and you encounter some difficulties please report them on the AVNI Forum or on the GitHub issues page to get assistance.
Using the development version#
See Upgrading to the development version for how to do a one-time update to the latest
development version of AVNI. If you plan to contribute to AVNI, or just prefer
to use git rather than pip to make frequent updates, there are instructions for
installing from a git clone
in the Contributing guide.
Other Python distributions#
While the Anaconda Python distribution provides many conveniences, other
distributions of Python should also work with AVNI. In particular, Miniconda
is a lightweight alternative to Anaconda that is fully compatible; like
Anaconda, Miniconda includes the conda
command line tool for installing new
packages and managing environments; unlike Anaconda, Miniconda starts off with a
minimal set of around 30 packages instead of Anaconda’s hundreds. See the
installation instructions for Miniconda for more info. A similar alternative
is MiniForge, which uses the conda-forge
channel as the default source
for package installation (saving you the trouble of typing
--channel=conda-forge
with each conda install
command).
Warning
If you have the PYTHONPATH
or PYTHONHOME
environment variables set,
you may run into difficulty using Anaconda. See the Anaconda
troubleshooting guide for more information. Note that it is easy to switch
between conda
-managed Python installations and the system Python
installation using the conda activate
and conda deactivate
commands,
so you may find that after adopting Anaconda it is possible (indeed,
preferable) to leave PYTHONPATH
and PYTHONHOME
permanently unset.
It is also possible to use a system-level installation of Python (version
3.7 or higher) and use pip
to install AVNI and its
dependencies, using the provided requirements file:
$ curl --remote-name
https://raw.githubusercontent.com/globalseismology/avni/main/requirements.txt
$ pip install --user -r requirements.txt
Other configurations will probably also work, but we may be unable to offer support if you encounter difficulties related to your particular Python installation choices.