Skip to content
Prabhu Ramachandran edited this page Jul 15, 2017 · 3 revisions

Mayavi sprints at SciPy 2017

Welcome and thank you for participating in this sprint!

Communication

The #mayavi slack channel on the SciPy 2017 slack is where we plan to communicate about this sprint.

Please note that Prabhu will not be available after 10am on 16th but will be fully available on 15th (Saturday).

Overview and getting started

There are a variety of tasks that you can help with. Most of the tasks require knowledge of how to use Mayavi, and the intermediate/advanced tasks often require knowledge of VTK. Learning how to use Mayavi is quite easy -- just go over the user guide.

There is also a lot of material that I have put together for a two-day workshop on Mayavi here. Look at the slides directory to see this if you are interested. It is a lot of material.

The installations.txt provides some basic installation instructions for Mayavi. These are also reproduced below.

Installation

Installation using EDM

EDM is Enthought's freely available installer. First install edm by downloading an appropriate installer from https://www.enthought.com/products/edm/installers/

Install the installer and then create an environment with Mayavi installed as follows.

EDM provides Python 2.7.x as well as Python 3.6.x runtimes. The default is 2.7. The easiest way to install Mayavi would be to simply run the following after installing edm.

$ edm install mayavi jupyter notebook

This will also install jupyter and the jupyter notebook. Once you do this, you can start a shell with the right Python by just running::

$ edm shell

You should be all set with Mayavi, hopefully. Let us know on slack if you run into problems. See the section below on testing your installation.

In order to install a 3.x version of Python you can do the following::

$ edm environments create --version 3.6 py3

Where "py3" is the name of the environment. You may change this name to something else if you wish. Once you create this environment, you can activate it like so::

$ edm shell -e py3

You can now install Mayavi as follows::

$ edm install mayavi jupyter notebook pyqt

Note that you need to install pyqt explicitly in this case. On Python 2.7, pyside is automatically installed.

Installation using Conda

Install miniconda (if you do not already have it) from https://conda.io/miniconda.html

Once you have conda installed you can do this:

$ conda create -n scipy17 python=3.5 pyqt=4
$ source activate scipy17
$ conda install -c menpo mayavi

You should be all set with this. You can install jupyter if you wish as follows:

$ conda install jupyter

Testing your installation

Try this:

$ jupyter console

In [1]: %gui qt
In [2]: from mayavi import mlab
In [3]: mlab.test_plot3d()

This should produce a window that is interactive and usable without any tracebacks or exceptions.

Getting the latest Mayavi development version

If you want the latest version with some important bug fixes you could clone the Mayavi git repo if you wish:

$ git clone https://github.com/enthought/mayavi.git
$ cd mayavi
$ python setup.py install

The advantage here is that you will also get all the Mayavi examples.

What if you are running into trouble?

Mayavi sometimes runs into issues with VTK 7.x but unfortunately, VTK 6.x does not work with Python 3. However, if you are running into problems and want to run things properly you may need to switch to a throw-away python 2.x session just to get everything running.

With conda you can do::

$ conda create -n junk python=2
$ conda install -c menpo vtk=6
$ conda install jupyter scipy pyqt=4
$ pip install mayavi[app]

If you run into trouble with ValueError: API 'QString' do this:

$ export QT_API=pyqt

before you start up IPython/Jupyter.

Tasks

I am putting up a brief list of tasks below. The "B" stands for tasks suitable for a Beginner, "I" for intermediate and "A" for advanced.

  • Update installation documentation. (B)
  • Update documentation to clean up outdated issues. (B)
  • Indentify/fix more Python3 related issues. (B/I)
    • Run all examples and check them, file an issue. (B)
  • Work on various issues filed on github. (B/I)
  • Improve test coverage. (I/A)
  • Qt5 support. (I/A)
  • Fix test builds so the dashboard is green. (I/A)

I will try and put up tickets or milestones for these if we have enough people signed up for the sprints.