assert group is none

364 views Asked by At

I am trying to run a preprocessing pipeline using nipype and I get the following error message:

Traceback (most recent call last):
  File "preprocscript.py", line 211, in <module>
    preproc.run('MultiProc', plugin_args={'n_procs': 8})
  File "/sw/anaconda/3/lib/python3.6/site-packages/nipype/pipeline/engine/workflows.py", line 579, in run
    runner = plugin_mod(plugin_args=plugin_args)
  File "/sw/anaconda/3/lib/python3.6/site-packages/nipype/pipeline/plugins/multiproc.py", line 162, in __init__
    initargs=(self._cwd,)
  File "/sw/anaconda/3/lib/python3.6/multiprocessing/pool.py", line 175, in __init__
    self._repopulate_pool()
  File "/sw/anaconda/3/lib/python3.6/multiprocessing/pool.py", line 236, in _repopulate_pool
    self._wrap_exception)
  File "/sw/anaconda/3/lib/python3.6/multiprocessing/pool.py", line 250, in _repopulate_pool_static
    wrap_exception)
  File "/sw/anaconda/3/lib/python3.6/multiprocessing/process.py", line 73, in __init__
    assert group is None, 'group argument must be None for now'
AssertionError: group argument must be None for now

and I am not sure what exactly might be wrong in my code that leads to this or if this is an issue with my software. I am on a linux system and use python 3.6.

1

There are 1 answers

0
MyNameIsCaleb On

The module you are using has a ProcessPoolExecuter being used in it. In Python 3.7 they added some additional arguments to that class, namely initargs which is what is being called in nipype multiprocess module you are using. Unfortunately it is not backwards compatible to 3.6 and they did not write in another way to use that module.

Your options are to upgrade or not use the multiprocessing portion of nipype.