mybinder.org uses repodocker to build images. You can install and run that tool locally to debug your build.
That means pygraphviz isn’t available as a precompiled package for your platform, so instead a zip containing the source for that module is downloaded and compiled.
I just tried running %pip install pygraphviz in a running Binder session and saw a couple things.
By default it wanted to get version 1.6.
The install failed and among the errors the following:
Package libcgraph was not found in the pkg-config search path.
This makes me think you need some additional apt packages added. Usually I use the configuration file apt.txt to add these. See here about use of apt.txt.
It required a few more adjustments to the requirements.txt file, but adding apt.txt to the repo, exactly as suggested, worked exactly as hoped. Many thanks!
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, thenpip’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.