Question: CWL can't find tools it's supposed to run
gravatar for Tom
22 months ago by
Tom530 wrote:

Hello everyone! I am trying to add Deepbinner to the nanopore-Workflow i built with the Common Workflow Language. Running deepbinner from the command line works just fine. However, when i try to run my CWL-Tool, i get an error which seems to indicate that the deepbinner software cannot be located.

Traceback (most recent call last):
  File "/home/ubuntu/.local/bin/deepbinner", line 6, in <module>
    from pkg_resources import load_entry_point
  File "/usr/lib/python3/dist-packages/pkg_resources/", line 3088, in <module>
  File "/usr/lib/python3/dist-packages/pkg_resources/", line 3072, in _call_aside
    f(*args, **kwargs)
  File "/usr/lib/python3/dist-packages/pkg_resources/", line 3101, in _initialize_master_working_set
    working_set = WorkingSet._build_master()
  File "/usr/lib/python3/dist-packages/pkg_resources/", line 574, in _build_master
  File "/usr/lib/python3/dist-packages/pkg_resources/", line 892, in require
    needed = self.resolve(parse_requirements(requirements))
  File "/usr/lib/python3/dist-packages/pkg_resources/", line 778, in resolve
    raise DistributionNotFound(req, requirers)
pkg_resources.DistributionNotFound: The 'Deepbinner==0.2.0' distribution was not found and is required by the application

How can i resolve this? I assume i made a mistake during tool installation that led to this - what did i do wrong?

Thanks in advance for any help!

cwl deepbinner • 1.0k views
ADD COMMENTlink modified 22 months ago by Michael R. Crusoe1.8k • written 22 months ago by Tom530
gravatar for Michael R. Crusoe
22 months ago by
Common Workflow Language project
Michael R. Crusoe1.8k wrote:

Hello Tom, thank you for your question. I presume that you're not using the DockerRequirement yet and want to run local software. If you've installed the Python libraries in a virtualenv or done a --user install then you'll need to pass in a few environment variables when using the CWL reference runner, cwltool:

cwltool --preserve-environment PATH my_workflow.cwl my_workflow_inputs.yml

or maybe

cwltool --preserve-entire-environment my_workflow.cwl my_workflow_inputs.yml

This is non completely portable, for that you'll need to make a Docker format software container, but should be good enough for now.

ADD COMMENTlink modified 22 months ago • written 22 months ago by Michael R. Crusoe1.8k

Thank you for the quick answer! I am not yet using docker (i aspire to, but am still wrangling with network issues). I did not use a python virtual environments for the installation of anything on the VM, including cwl (i have to admit i'm quite inexperienced in this regard).

Running the workflow with the flags you suggested unfortunately results in the same error.

I have installed the software on the VM simply by using

pip3 install git+

Files seem to be located at


with the executable sitting at


which is also present in $PATH.

ADD REPLYlink modified 22 months ago • written 22 months ago by Tom530

We reset HOME so that may be a challenge. What if you use a Python Virtualenv?

ADD REPLYlink written 22 months ago by Michael R. Crusoe1.8k

After installing everything in a shared virtual environment it now works. Thank you for your help!

ADD REPLYlink written 22 months ago by Tom530

If this is purely an issue of me misusing ubuntu and unrelated to cwl than i am sorry to bother you with it. If that is the case i will put this on hold until i hopefully get docker to work.

ADD REPLYlink written 22 months ago by Tom530

This is a fairly common user experience and we want CWL to be useful even before one has containerized all the steps; therefore we should document how to deal with this situation.

ADD REPLYlink written 22 months ago by Michael R. Crusoe1.8k
Please log in to add an answer.


Use of this site constitutes acceptance of our User Agreement and Privacy Policy.
Powered by Biostar version 2.3.0
Traffic: 1938 users visited in the last hour