Binder fails to compile pygraphviz

A few notes:

  • all of those packages are available on conda-forge
    • all work on all of the conda-forge platforms (including windows and MacOS ARM/M1) out of the box… without invoking a compiler at install time
      • like it or lump it, on MyBinder you’re already running in a conda environment, unless you write your own Dockerfile
  • basically never install jupyter, it brings in mountains of stuff (like qt) that will not improve your binder experience
    • usually, just jupyterlab or notebook are sufficient… and probably with a full minimum version so you don’t get… whatever is installed on binder (by mamba during the repo2docker build)

So a notional environment.yml would be:

channels:
  - conda-forge
dependencies:
  - jupyterlab >=3.0.16,<4 # or `notebook >=6.4,<7` if that's your thing
  - networkx >=2.6.1
  - python-graphviz        # this is the equivalent of pip's `graphviz`
  - pygraphviz ==1.7
  - rdflib >=5.0.0

This would do one mamba solve (instead of apt’s solver, then pip’s solver, then invoking gcc). This is going to be faster/have better cache characteristics than apt.txt + requirements.txt… and have been verified to work by the conda-forge maintainers… and very possibly be faster at runtime because of compiler tuning.

can’t be copy/pasted

If you select some rows, Ctrl+Shift+C will copy the selection, as will Ctrl+Right Click to get the context menu. But I agree, having a “download log” button would be swell. Heck, that could be done entirely in the browser without any server changes.

2 Likes