Binder getting stuck while installing conda's environment.yml


First of all, I wanted to thank Binder contributors for this amazing project. It’s been extremely valuable to showcase my open-source project.

I’ve been using Binder without any issues for quite a while but today I ran into a problem. I updated my binder environment (upgraded a few dependencies), which uses a conda’s environment.yml but now Binder gets stuck while setting up the environment.

These are the last lines:

Enabling notebook extension jupyter-js-widgets/extension...
      - Validating: OK

Installing pip dependencies: ...working...

Looks like conda is unable to install dependencies in the pip section.

Is there any way to make the output more verbose or troubleshoot this kind of thing?

Here’s the binder link

Any help would be much appreciated!

1 Like

I would try running the build locally with repo2docker IIRC, it has a debug flag

1 Like

A couple of things to try in addition to or before trying a local build…

One simple idea to try would be to include pip as a dependency. For several months I had been seeing it in the MyBinder build stream noted that something was saying soon including pip as a dependency is required. So I started including it a while ago in new or updated environment.yml. I note that yours doesn’t have it.

See an example here:

You have a complex set of requirements in your environment.yml and then you specify an old version of Python. Sometimes mixing pinning and unpinning is a bad idea. So a related idea would be to listing pip earlier and also unpinning everything in a simpler, separate repo and then build back up to see where breaks.

1 Like

Hi @fomightez thanks for your suggestion!

Here’s the solution in case anyone encounters a similar problem:

I added pip in the environment.yml but that didn’t help. Then I removed the pinned Python version and it started working again. Based on the logs, it seems that it was a conda problem (not a binder problem): it was getting stuck trying to resolve the environment.

Thanks @sgibson91 for the suggestion on repo2docker, I didn’t know I could use that for local debugging.

1 Like

Glad actually to hear that adding the pip in the listing wasn’t the issue. That’s going to break a lot of things if the requirement of including it, implied by the warning I had seen, ever does get put into effect.