2015-12-15 16 views
5

tôi cài đặt caffe với python3, nhưng khi tôi nhập caffe, tôi nhận được một số lỗi Traceback (cuộc gọi gần đây nhất cuối cùng):ImportError: mô-đun năng động không xác định chức năng xuất khẩu mô-đun (PyInit__caffe)

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) 

Nhưng nó làm việc tốt trong python2.7.

tôi đã thêm/path/to/caffe/distrubute/python để PATH, nhưng khi tôi thực hiện pycaffe, nó cho thấy rằng

make: Nothing to be done for `pycaffe'. 

Làm thế nào tôi có thể giải quyết vấn đề này? Cảm ơn bạn rất nhiều.

Trả lời

5

Cập nhật
Caffe hỗ trợ python 3.3+. Vui lòng kiểm tra hướng dẫn cài đặt và prerequisites.

gốc (lỗi thời) câu trả lời
Sử dụng caffe với python 3 hiện chưa được hỗ trợ:

Caffe’s Python interface works with Python 2.7. Python 3 or earlier Pythons are your own adventure.

Xem caffe's installation tutorial.

+1

Ồ không! Cảm ơn bạn. – Philokey

+0

@Philokey xin lỗi tôi không thể mang lại cho bạn bất kỳ tin tức tốt ở đây :( – Shai

+1

Hey là nó vẫn là trường hợp? Hướng dẫn cài đặt caffe cho thấy python3 là tốt. Bạn có thể cập nhật câu trả lời của bạn trong ánh sáng của những thông tin mới – Ravikrn

2

Nó bây giờ là có thể xây dựng Caffe cho Python3, và tôi gần như chắc chắn nó đã có thể vào tháng 16 khi câu hỏi được hỏi.

Để làm điều này, bạn cần phải loại bỏ các chú thích trong Makefile.config với 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 

Nhưng do đó bạn sẽ có caffe chỉ trong python3 HOẶC python2, vì cách làm thế nào cài đặt caffe (với PYTHON_PATH, không phải là một cách tốt thực sự).

Để workaround này, bạn có thể làm thủ thuật như vậy trong của bạn ~/.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" 

Vì vậy cả hai sẽ làm việc.

+0

tôi có cần phải làm "làm cho tất cả" sau khi làm điều này thay đổi? – Ravikrn

+0

@Ravikrn không, bạn cần phải xây dựng cả hai thư viện (.so) và chỉ cho họ theo cách như vậy. – UndeadDragon

+0

bạn có thể xin hãy giải thích. tôi chỉ muốn python3 và Ban đầu tôi đã cài đặt caffe với các hướng dẫn python2 Ý anh là gì bằng cách xây dựng cả hai thư viện của tôi ~/.bashrc có "PYTHONPATH xuất khẩu =/home/path/caffe/python: $ PYTHONPATH".? – Ravikrn

Các vấn đề liên quan