Я устанавливаю 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 / distribution / python в PATH, но когда я делаю pycaffe, он показывает, что

make: Nothing to be done for `pycaffe'.

Как я могу решить эту проблему? Большое спасибо.

8
Philokey 15 Дек 2015 в 20:01

3 ответа

Лучший ответ

< Сильный > Обновление
Caffe поддерживает Python 3.3+. Ознакомьтесь с руководством по установке и предварительными условиями.

Оригинальный (устаревший) ответ
Использование caffe с python 3 в настоящее время не поддерживается:

Python-интерфейс Caffe работает с Python 2.7. Python 3 или более ранняя версия Python - это ваше собственное приключение.

См. руководство по установке caffe.

5
Shai 14 Ноя 2017 в 07:13

Убедитесь, что вы используете ПРАВУЮ версию Python.

import platform
print(platform.python_version())

Я столкнулся с проблемой в Python3, и она хорошо работала с Python2.

0
FantasyJXF 23 Фев 2019 в 06:07

Теперь можно создать Caffe для Python3, и я почти уверен, что это было возможно 16 декабря, когда был задан вопрос.

Для этого вам нужно удалить комментарии в Makefile.config с Python3:

# 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"

Поэтому оба будут работать.

2
UndeadDragon 16 Авг 2017 в 14:36