1

Ubuntu Voyager (Ubuntu 12.04 派生) システムで、並列 python (バージョン 1.6.1) を使用して numpy 配列 (numpy バ​​ージョン 1.6.1) を使用する関数を実行する python 2.7 スクリプトを実行しようとしています。次のエラーメッセージが表示されます(実際には、まだ長く、12回繰り返されていると思います):

Starting pp with 12 workers
* An error has occured during the module import
Traceback (most recent call last):
  File "/usr/lib/pymodules/python2.7/ppworker.py", line 49, in preprocess
    exec module
  File "<string>", line 1, in <module>
  File "/usr/share/pyshared/numpy/__init__.py", line 137, in <module>
    import add_newdocs
  File "/usr/share/pyshared/numpy/add_newdocs.py", line 9, in <module>
    from numpy.lib import add_newdoc
  File "/usr/share/pyshared/numpy/lib/__init__.py", line 4, in <module>
    from type_check import *
  File "/usr/share/pyshared/numpy/lib/type_check.py", line 8, in <module>
    import numpy.core.numeric as _nx
  File "/usr/share/pyshared/numpy/core/__init__.py", line 5, in <module>
    import multiarray
ImportError: No module named multiarray
A fatal error has occured during the function execution
Traceback (most recent call last):
  File "/usr/lib/pymodules/python2.7/ppworker.py", line 86, in run
    __args = pickle.loads(__sargs)
  File "/usr/share/pyshared/numpy/__init__.py", line 137, in <module>
    import add_newdocs
  File "/usr/share/pyshared/numpy/add_newdocs.py", line 9, in <module>
    from numpy.lib import add_newdoc
  File "/usr/share/pyshared/numpy/lib/__init__.py", line 4, in <module>
    from type_check import *
  File "/usr/share/pyshared/numpy/lib/type_check.py", line 8, in <module>
    import numpy.core.numeric as _nx
  File "/usr/share/pyshared/numpy/core/__init__.py", line 5, in <module>
    import multiarray
ImportError: No module named multiarray
Exception in thread run_local:
Traceback (most recent call last):
  File "/usr/lib/python2.7/threading.py", line 551, in __bootstrap_inner
    self.run()
  File "/usr/lib/python2.7/threading.py", line 504, in run
    self.__target(*self.__args, **self.__kwargs)
  File "/usr/lib/pymodules/python2.7/pp.py", line 719, in _run_local
    job.finalize(sresult)
UnboundLocalError: local variable 'sresult' referenced before assignment

Exception in thread run_local:
Traceback (most recent call last):
  File "/usr/lib/python2.7/threading.py", line 551, in __bootstrap_inner
    self.run()
  File "/usr/lib/python2.7/threading.py", line 504, in run
    self.__target(*self.__args, **self.__kwargs)
  File "/usr/lib/pymodules/python2.7/pp.py", line 719, in _run_local
    job.finalize(sresult)
UnboundLocalError: local variable 'sresult' referenced before assignment

他のスレッド (例: Parallel Python での NumPy のインポート) から、おそらく pp と numpy の通信に問題があることがわかったので、これらを試しました:

  • pp と numpy の更新
  • numpy の再インストール (私は anaconda パッケージを使用しています)
  • (スパイダーからではなく)シェルから直接コードを実行する
  • マルチアレイ(それ以外の場合は正常にインポートされます)をジョブでワーカーに直接送信します(そして、私は正しい構文を持っていると確信しています...)

しかし、役に立たない。他に提案はありますか?ええと、私の関数を「非数値化」する以外の簡単な回避策はありますか(悲しいことに、それは行列の乗算です)?同じオペレーティング システムのより新しいバージョンを使用しているが、それ以外は同じ Python セットアップを使用している私の同僚は、この問題を抱えていないようですが、時間が問題なので、システムを更新したり、遅いコンピューターをハイジャックしたりすることは、どちらも最善の選択肢ではありません。

必要に応じて、詳細についてお気軽にお問い合わせください。よろしくお願いいたします。

4

0 に答える 0