nipy / nipype

Workflows and interfaces for neuroimaging packages
https://nipype.readthedocs.org/en/latest/
Other
746 stars 530 forks source link

Node prepfa failed to run on host compute06. #2882

Open bananaaPeel opened 5 years ago

bananaaPeel commented 5 years ago

This code works fine in ubuntu and python2 environments, but when I copy it to centos7 and python2, I get an error. How can I solve it?

190218-10:36:53,72 nipype.workflow INFO:
     [Node] Finished "tbssproc.tbss_source".
190218-10:36:53,73 nipype.workflow INFO:
     [Node] Setting-up "tbssproc.tbss.tbss1.prepfa" in "/home/centos/Documents/TBSS/DKI/workingdir_dki/l2/tbssproc/tbss/tbss1/prepfa".
190218-10:36:53,90 nipype.workflow ERROR:
     Node prepfa failed to run on host compute06.
190218-10:36:53,91 nipype.workflow ERROR:
     Saving crash info to /home/centos/Documents/TBSS/tbss_final/crash-20190218-103653-centos-prepfa-0e76341b-8766-42a9-a65e-d42d5d10d26e.pklz
Traceback (most recent call last):
  File "/home/centos/software/anaconda2/lib/python2.7/site-packages/nipype/pipeline/plugins/linear.py", line 44, in run
    node.run(updatehash=updatehash)
  File "/home/centos/software/anaconda2/lib/python2.7/site-packages/nipype/pipeline/engine/nodes.py", line 476, in run
    savepkl(op.join(outdir, '_node.pklz'), self)
  File "/home/centos/software/anaconda2/lib/python2.7/site-packages/nipype/utils/filemanip.py", line 731, in savepkl
    pickle.dump(record, pkl_file)
  File "/home/centos/software/anaconda2/lib/python2.7/pickle.py", line 1376, in dump
    Pickler(file, protocol).dump(obj)
  File "/home/centos/software/anaconda2/lib/python2.7/pickle.py", line 224, in dump
    self.save(obj)
  File "/home/centos/software/anaconda2/lib/python2.7/pickle.py", line 331, in save
    self.save_reduce(obj=obj, *rv)
  File "/home/centos/software/anaconda2/lib/python2.7/pickle.py", line 425, in save_reduce
    save(state)
  File "/home/centos/software/anaconda2/lib/python2.7/pickle.py", line 286, in save
    f(self, obj) # Call unbound method with explicit self
  File "/home/centos/software/anaconda2/lib/python2.7/pickle.py", line 655, in save_dict
    self._batch_setitems(obj.iteritems())
  File "/home/centos/software/anaconda2/lib/python2.7/pickle.py", line 669, in _batch_setitems
    save(v)
  File "/home/centos/software/anaconda2/lib/python2.7/pickle.py", line 331, in save
    self.save_reduce(obj=obj, *rv)
  File "/home/centos/software/anaconda2/lib/python2.7/pickle.py", line 425, in save_reduce
    save(state)
  File "/home/centos/software/anaconda2/lib/python2.7/pickle.py", line 286, in save
    f(self, obj) # Call unbound method with explicit self
  File "/home/centos/software/anaconda2/lib/python2.7/pickle.py", line 655, in save_dict
    self._batch_setitems(obj.iteritems())
  File "/home/centos/software/anaconda2/lib/python2.7/pickle.py", line 669, in _batch_setitems
    save(v)
  File "/home/centos/software/anaconda2/lib/python2.7/pickle.py", line 286, in save
    f(self, obj) # Call unbound method with explicit self
  File "/home/centos/software/anaconda2/lib/python2.7/pickle.py", line 655, in save_dict
    self._batch_setitems(obj.iteritems())
  File "/home/centos/software/anaconda2/lib/python2.7/pickle.py", line 669, in _batch_setitems
    save(v)
  File "/home/centos/software/anaconda2/lib/python2.7/pickle.py", line 331, in save
    self.save_reduce(obj=obj, *rv)
  File "/home/centos/software/anaconda2/lib/python2.7/pickle.py", line 425, in save_reduce
    save(state)
  File "/home/centos/software/anaconda2/lib/python2.7/pickle.py", line 286, in save
    f(self, obj) # Call unbound method with explicit self
  File "/home/centos/software/anaconda2/lib/python2.7/pickle.py", line 568, in save_tuple
    save(element)
  File "/home/centos/software/anaconda2/lib/python2.7/pickle.py", line 331, in save
    self.save_reduce(obj=obj, *rv)
  File "/home/centos/software/anaconda2/lib/python2.7/pickle.py", line 425, in save_reduce
    save(state)
  File "/home/centos/software/anaconda2/lib/python2.7/pickle.py", line 286, in save
    f(self, obj) # Call unbound method with explicit self
  File "/home/centos/software/anaconda2/lib/python2.7/pickle.py", line 655, in save_dict
    self._batch_setitems(obj.iteritems())
  File "/home/centos/software/anaconda2/lib/python2.7/pickle.py", line 669, in _batch_setitems
    save(v)
  File "/home/centos/software/anaconda2/lib/python2.7/pickle.py", line 286, in save
    f(self, obj) # Call unbound method with explicit self
  File "/home/centos/software/anaconda2/lib/python2.7/pickle.py", line 655, in save_dict
    self._batch_setitems(obj.iteritems())
  File "/home/centos/software/anaconda2/lib/python2.7/pickle.py", line 669, in _batch_setitems
    save(v)
  File "/home/centos/software/anaconda2/lib/python2.7/pickle.py", line 331, in save
    self.save_reduce(obj=obj, *rv)
  File "/home/centos/software/anaconda2/lib/python2.7/pickle.py", line 425, in save_reduce
    save(state)
  File "/home/centos/software/anaconda2/lib/python2.7/pickle.py", line 286, in save
    f(self, obj) # Call unbound method with explicit self
  File "/home/centos/software/anaconda2/lib/python2.7/pickle.py", line 655, in save_dict
    self._batch_setitems(obj.iteritems())
  File "/home/centos/software/anaconda2/lib/python2.7/pickle.py", line 669, in _batch_setitems
    save(v)
  File "/home/centos/software/anaconda2/lib/python2.7/pickle.py", line 331, in save
    self.save_reduce(obj=obj, *rv)
  File "/home/centos/software/anaconda2/lib/python2.7/pickle.py", line 425, in save_reduce
    save(state)
  File "/home/centos/software/anaconda2/lib/python2.7/pickle.py", line 286, in save
    f(self, obj) # Call unbound method with explicit self
  File "/home/centos/software/anaconda2/lib/python2.7/pickle.py", line 568, in save_tuple
    save(element)
  File "/home/centos/software/anaconda2/lib/python2.7/pickle.py", line 331, in save
    self.save_reduce(obj=obj, *rv)
  File "/home/centos/software/anaconda2/lib/python2.7/pickle.py", line 425, in save_reduce
    save(state)
  File "/home/centos/software/anaconda2/lib/python2.7/pickle.py", line 286, in save
    f(self, obj) # Call unbound method with explicit self
  File "/home/centos/software/anaconda2/lib/python2.7/pickle.py", line 655, in save_dict
    self._batch_setitems(obj.iteritems())
  File "/home/centos/software/anaconda2/lib/python2.7/pickle.py", line 669, in _batch_setitems
    save(v)
  File "/home/centos/software/anaconda2/lib/python2.7/pickle.py", line 286, in save
    f(self, obj) # Call unbound method with explicit self
  File "/home/centos/software/anaconda2/lib/python2.7/pickle.py", line 606, in save_list
    self._batch_appends(iter(obj))
  File "/home/centos/software/anaconda2/lib/python2.7/pickle.py", line 621, in _batch_appends
    save(x)
  File "/home/centos/software/anaconda2/lib/python2.7/pickle.py", line 306, in save
    rv = reduce(self.proto)
  File "/home/centos/software/anaconda2/lib/python2.7/copy_reg.py", line 70, in _reduce_ex
    raise TypeError, "can't pickle %s objects" % base.__name__
TypeError: can't pickle instancemethod objects

Traceback (most recent call last):
  File "/home/centos/Documents/TBSS/tbss_final/tbss_final.py", line 333, in <module>
    objk.TBSS_L2()
  File "/home/centos/Documents/TBSS/tbss_final/tbss_final.py", line 305, in TBSS_L2
    tbssproc.run()
  File "/home/centos/software/anaconda2/lib/python2.7/site-packages/nipype/pipeline/engine/workflows.py", line 595, in run
    runner.run(execgraph, updatehash=updatehash, config=self.config)
  File "/home/centos/software/anaconda2/lib/python2.7/site-packages/nipype/pipeline/plugins/linear.py", line 53, in run
    crashfile = report_crash(node)
  File "/home/centos/software/anaconda2/lib/python2.7/site-packages/nipype/pipeline/plugins/tools.py", line 62, in report_crash
    versioning=True)
  File "/home/centos/software/anaconda2/lib/python2.7/site-packages/nipype/utils/filemanip.py", line 731, in savepkl
    pickle.dump(record, pkl_file)
  File "/home/centos/software/anaconda2/lib/python2.7/pickle.py", line 1376, in dump
    Pickler(file, protocol).dump(obj)
  File "/home/centos/software/anaconda2/lib/python2.7/pickle.py", line 224, in dump
    self.save(obj)
  File "/home/centos/software/anaconda2/lib/python2.7/pickle.py", line 286, in save
    f(self, obj) # Call unbound method with explicit self
  File "/home/centos/software/anaconda2/lib/python2.7/pickle.py", line 655, in save_dict
    self._batch_setitems(obj.iteritems())
  File "/home/centos/software/anaconda2/lib/python2.7/pickle.py", line 669, in _batch_setitems
    save(v)
  File "/home/centos/software/anaconda2/lib/python2.7/pickle.py", line 331, in save
    self.save_reduce(obj=obj, *rv)
  File "/home/centos/software/anaconda2/lib/python2.7/pickle.py", line 425, in save_reduce
    save(state)
  File "/home/centos/software/anaconda2/lib/python2.7/pickle.py", line 286, in save
    f(self, obj) # Call unbound method with explicit self
  File "/home/centos/software/anaconda2/lib/python2.7/pickle.py", line 655, in save_dict
    self._batch_setitems(obj.iteritems())
  File "/home/centos/software/anaconda2/lib/python2.7/pickle.py", line 669, in _batch_setitems
    save(v)
  File "/home/centos/software/anaconda2/lib/python2.7/pickle.py", line 331, in save
    self.save_reduce(obj=obj, *rv)
  File "/home/centos/software/anaconda2/lib/python2.7/pickle.py", line 425, in save_reduce
    save(state)
  File "/home/centos/software/anaconda2/lib/python2.7/pickle.py", line 286, in save
    f(self, obj) # Call unbound method with explicit self
  File "/home/centos/software/anaconda2/lib/python2.7/pickle.py", line 655, in save_dict
    self._batch_setitems(obj.iteritems())
  File "/home/centos/software/anaconda2/lib/python2.7/pickle.py", line 669, in _batch_setitems
    save(v)
  File "/home/centos/software/anaconda2/lib/python2.7/pickle.py", line 286, in save
    f(self, obj) # Call unbound method with explicit self
  File "/home/centos/software/anaconda2/lib/python2.7/pickle.py", line 655, in save_dict
    self._batch_setitems(obj.iteritems())
  File "/home/centos/software/anaconda2/lib/python2.7/pickle.py", line 669, in _batch_setitems
    save(v)
  File "/home/centos/software/anaconda2/lib/python2.7/pickle.py", line 331, in save
    self.save_reduce(obj=obj, *rv)
  File "/home/centos/software/anaconda2/lib/python2.7/pickle.py", line 425, in save_reduce
    save(state)
  File "/home/centos/software/anaconda2/lib/python2.7/pickle.py", line 286, in save
    f(self, obj) # Call unbound method with explicit self
  File "/home/centos/software/anaconda2/lib/python2.7/pickle.py", line 568, in save_tuple
    save(element)
  File "/home/centos/software/anaconda2/lib/python2.7/pickle.py", line 331, in save
    self.save_reduce(obj=obj, *rv)
  File "/home/centos/software/anaconda2/lib/python2.7/pickle.py", line 425, in save_reduce
    save(state)
  File "/home/centos/software/anaconda2/lib/python2.7/pickle.py", line 286, in save
    f(self, obj) # Call unbound method with explicit self
  File "/home/centos/software/anaconda2/lib/python2.7/pickle.py", line 655, in save_dict
    self._batch_setitems(obj.iteritems())
  File "/home/centos/software/anaconda2/lib/python2.7/pickle.py", line 669, in _batch_setitems
    save(v)
  File "/home/centos/software/anaconda2/lib/python2.7/pickle.py", line 286, in save
    f(self, obj) # Call unbound method with explicit self
  File "/home/centos/software/anaconda2/lib/python2.7/pickle.py", line 655, in save_dict
    self._batch_setitems(obj.iteritems())
  File "/home/centos/software/anaconda2/lib/python2.7/pickle.py", line 669, in _batch_setitems
    save(v)
  File "/home/centos/software/anaconda2/lib/python2.7/pickle.py", line 331, in save
    self.save_reduce(obj=obj, *rv)
  File "/home/centos/software/anaconda2/lib/python2.7/pickle.py", line 425, in save_reduce
    save(state)
  File "/home/centos/software/anaconda2/lib/python2.7/pickle.py", line 286, in save
    f(self, obj) # Call unbound method with explicit self
  File "/home/centos/software/anaconda2/lib/python2.7/pickle.py", line 655, in save_dict
    self._batch_setitems(obj.iteritems())
  File "/home/centos/software/anaconda2/lib/python2.7/pickle.py", line 669, in _batch_setitems
    save(v)
  File "/home/centos/software/anaconda2/lib/python2.7/pickle.py", line 331, in save
    self.save_reduce(obj=obj, *rv)
  File "/home/centos/software/anaconda2/lib/python2.7/pickle.py", line 425, in save_reduce
    save(state)
  File "/home/centos/software/anaconda2/lib/python2.7/pickle.py", line 286, in save
    f(self, obj) # Call unbound method with explicit self
  File "/home/centos/software/anaconda2/lib/python2.7/pickle.py", line 568, in save_tuple
    save(element)
  File "/home/centos/software/anaconda2/lib/python2.7/pickle.py", line 331, in save
    self.save_reduce(obj=obj, *rv)
  File "/home/centos/software/anaconda2/lib/python2.7/pickle.py", line 425, in save_reduce
    save(state)
  File "/home/centos/software/anaconda2/lib/python2.7/pickle.py", line 286, in save
    f(self, obj) # Call unbound method with explicit self
  File "/home/centos/software/anaconda2/lib/python2.7/pickle.py", line 655, in save_dict
    self._batch_setitems(obj.iteritems())
  File "/home/centos/software/anaconda2/lib/python2.7/pickle.py", line 669, in _batch_setitems
    save(v)
  File "/home/centos/software/anaconda2/lib/python2.7/pickle.py", line 286, in save
    f(self, obj) # Call unbound method with explicit self
  File "/home/centos/software/anaconda2/lib/python2.7/pickle.py", line 606, in save_list
    self._batch_appends(iter(obj))
  File "/home/centos/software/anaconda2/lib/python2.7/pickle.py", line 621, in _batch_appends
    save(x)
  File "/home/centos/software/anaconda2/lib/python2.7/pickle.py", line 306, in save
    rv = reduce(self.proto)
  File "/home/centos/software/anaconda2/lib/python2.7/copy_reg.py", line 70, in _reduce_ex
    raise TypeError, "can't pickle %s objects" % base.__name__
TypeError: can't pickle instancemethod objects

Process finished with exit code 1
satra commented 5 years ago

@bananaaPeel - the issue template asks for a few additional pieces of information including details of environment: https://raw.githubusercontent.com/nipy/nipype/master/.github/ISSUE_TEMPLATE.md

could you please let us know those details to help answer this question?

bananaaPeel commented 5 years ago

@satra

Script/Workflow details

tbss_all = create_tbss_all('tbss', estimate_skeleton=True)
tbss_all.inputs.inputnode.skeleton_thresh = 0.2

tbssproc = pe.Workflow(name="tbssproc")
tbssproc.base_dir = opj(opj(experiment_dir, working_dir), 'l2')

tbssproc.connect(tbss_source, 'fa_list', tbss_all, 'inputnode.fa_list')
tbssproc.run()

Platform details:

{'commit_hash': '%h',
 'commit_source': 'archive substitution',
 'networkx_version': '2.2',
 'nibabel_version': '2.3.3',
 'nipype_version': '1.1.1',
 'numpy_version': '1.15.4',
 'pkg_path': '/home/centos/software/anaconda2/envs/py2714/lib/python2.7/site-packages/nipype',
 'scipy_version': '1.2.0',
 'sys_executable': '/home/centos/software/anaconda2/envs/py2714/bin/python',
 'sys_platform': 'linux2',
 'sys_version': '2.7.14 |Anaconda, Inc.| (default, Mar 27 2018, 17:29:31) \n[GCC 7.2.0]',
 'traits_version': '5.0.0'}