J'installe caffe avec python3, mais lors de l'importation de caffe, des erreurs se produisent Traceback (l'appel le plus récent en dernier):
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)
Mais cela fonctionne bien en python2.7.
J'avais add/path/to/caffe/distrubute/python au PATH, mais quand je fabrique du pycaffe, cela montre que
make: Nothing to be done for `pycaffe'.
Comment puis-je résoudre ce problème? Merci beaucoup.
Mise à jour
Caffe supporte python 3.3+. Veuillez consulter le guide d’installation et Prérequis .
Réponse originale (obsolète)
L’utilisation de caffe avec Python 3 n’est actuellement pas prise en charge:
L’interface Python de Caffe fonctionne avec Python 2.7. Python 3 ou antérieur Les pythons sont votre propre aventure.
Il est maintenant possible de construire Caffe pour Python3, et je suis presque sûr que c'était possible le 16 décembre lorsque la question a été posée.
Pour ce faire, vous devez supprimer les commentaires dans le fichier Makefile.config avec 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
Mais par conséquent, vous aurez caffe uniquement dans python3 OR python2, en raison de la façon dont caffe s’installe (avec PYTHON_PATH, ce n’est pas vraiment un bon moyen).
Pour contourner cela, vous pouvez faire une telle astuce dans votre ~/.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"
Par conséquent, les deux vont fonctionner.
assurez-vous que vous utilisez la version RIGHT python.
import platform
print(platform.python_version())
J'ai rencontré le problème dans Python3, et cela a fonctionné correctement avec Python2.