Frequently Asked Questions

Igor Installation

Using the suggested invokation I get a pip error

Pip on Windows appears not to like certain archival formats. While

pip install https://github.com/chstan/igorpy.git#egg=igor

should work on most systems, you can also clone the repository:

git clone https://github.com/chstan/igorpy

And then install into your environment from inside that folder.

(my arpes env) > echo "From inside igorpy folder"
(my arpes env) > pip install -e .

Common Issues

I want to use the Bokeh based interactive tools, what version of Tornado should I use?

Typically users run into an incompatibility around tornado (manifesting as a massive red stacktrace when an attempt is made to call .S.show) when they are running Jupyter from the same environment they installed PyARPES into.

You should install Jupyter into its own environment (I use a separate [jupyter] conda environment) and register your analysis environment as a named kernel with Jupyter.

Anaconda is amazing but can be frustrating: I’ve found through painful experience that it is best to avoid all changes to the root environment and to use Jupyter through a separate dedicated environment. This also helps break dependencies between environments and makes experimenting with another Jupyter version simple: you just have to make a new trial environment before you switch.

To get a compatible version of tornado, uninstall it and bokeh and then conda install bokeh.

I tried to upgrade a package and now things aren’t working… how do I get my old code working again?

For large upgrades I recommend making a new environment until you are sure you don’t encounter issues (500 MB disk is cheap!).

It is also helpful to keep a record of “working” configurations on systems that you use. Different package managers have better and worse ways of dealing with this, but you can typically recover a full installation of complex Python software with a list of the requirements and their versions and the version for the interpreter. As a result, I make a point to save a copy of my full requirements

$ pip freeze > working-dependencies-py38-date-14-11-2019.txt

You can then pip or conda install from this requirements file.

If you don’t find this satisfying, you are probably a reasonable and sane human being. Packaging software is apparently more difficult than it would ideally be but the situation is improving.