ImportError: динамический модуль не определяет функцию экспорта модуля (PyInit caffe)
Я устанавливаю caffe с python3, но когда я импортирую caffe, я получаю некоторые ошибки Traceback (последний звонок):
File "classify.py", line 14, in <module> import caffe File "/home/hez/caffe-master/python/caffe/__init__.py", line 1, in <module> from .pycaffe import Net, SGDSolver File "/home/hez/caffe-master/python/caffe/pycaffe.py", line 13, in <module> from ._caffe import Net, SGDSolver ImportError: dynamic module does not define module export function (PyInit__caffe)
но он хорошо работает в python2.7.
у меня был add /path/to/caffe/distrubute / python к пути, но когда я делаю pycaffe, он показывает, что
make: Nothing to be done for `pycaffe'.
Как я могу решить эту проблему? Большое спасибо.
2 ответов
обновление
Caffe поддерживает python 3.3+.
Пожалуйста, проверьте руководство по установке и предпосылки.
Оригинал (устаревшее) ответ
Использование caffe с python 3 в настоящее время не поддерживается:
интерфейс Python Caffe работает с Python 2.7. Python 3 или более ранние Pythons - это ваше собственное приключение.
посмотреть руководство по установке caffe.
теперь можно построить кафе для Python3, и я почти уверен, что это было возможно в декабре 16, когда был задан вопрос.
для этого необходимо удалить комментарии в файле Makefile.config с Питон3:
# 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 только в python3 или python2, из-за того, как устанавливается caffe (с PYTHON_PATH, не очень хороший способ).
чтобы обойти это, вы можете сделать такой трюк в ~/.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"
поэтому оба будут работать.