python3でcaffeをインストールしたのですが、caffeをインポートすると、以下のようなエラーが発生します。 トレースバック(最も最近の呼び出しが最後)。
File "classify.py", line 14, in
インポート caffe ファイル "/home/hez/caffe-master/python/caffe/init.py", line 1, in from .pycaffe import Net, SGDSolver ファイル "/home/hez/caffe-master/python/caffe/pycaffe.py", line 13, in from ._caffe import Net, SGDSolver ImportError: dynamic module does not define module export function (PyInit__caffe)
しかし、python2.7ではうまく動作しています。
PATHに/path/to/caffe/distrubute/pythonを追加していたのですが、pycaffeを作ると、以下のように表示されます。
make: Nothing to be done for `pycaffe'.
どうすればこの問題を解決できますか? ありがとうございました。
Caffe for Python3のビルドは現在可能であり、質問があった16年12月にはほぼ可能だったと思います。
そのためには、Python3でのMakefile.configのコメントを削除する必要があります。
# Uncomment to use Python 3 (default is Python 2)
# Check that boost library name is correct here!!!
PYTHON_LIBRARIES := boost_python3 python3.5m
PYTHON_INCLUDE := /usr/include/python3.5m \
/usr/lib/python3.5/dist-packages/numpy/core/include
しかし、そのため、caffeのインストール方法(PYTHON_PATH)のため、python3またはpython2でのみcaffeを使用することになります。
これを回避するために、~/.bashrcにこのような仕掛けをすることができます。
alias python2="export PYTHONPATH=$PYTHONPATH:/home/undead/reps/caffe_py2/python && python2"
alias python3="export PYTHONPATH=$PYTHONPATH:/home/undead/reps/caffe_py3/python && python3"
alias python="export PYTHONPATH=$PYTHONPATH:/home/undead/reps/caffe_py2/python && python2"
というように記述することで、どちらも動作するようになります。