2015-12-15 27 views
5

मैं python3 साथ Caffe स्थापित करते हैं, लेकिन जब मैं Caffe आयात करते हैं, मैं कुछ त्रुटियाँ Traceback (सबसे हाल कॉल पिछले) पाने को परिभाषित नहीं करता:ImportError: गतिशील मॉड्यूल मॉड्यूल निर्यात समारोह (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) 

लेकिन यह python2.7 में अच्छी तरह से काम करते हैं।

मैं था जोड़ने/path/to/Caffe/पथ को distrubute/अजगर, लेकिन जब मैं pycaffe बनाने के लिए, यह पता चलता है कि

make: Nothing to be done for `pycaffe'. 

मैं कैसे इस समस्या को हल कर सकते हैं? बहुत बहुत धन्यवाद।

उत्तर

5

अद्यतन
कैफे पाइथन 3.3+ का समर्थन करता है। कृपया चेकआउट स्थापना मार्गदर्शिका और prerequisites देखें।

मूल (पुराना) जवाब
अजगर 3 के साथ Caffe का उपयोग करते हुए वर्तमान में समर्थित नहीं है:

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

देखें caffe's installation tutorial

+1

ओह नहीं! धन्यवाद। – Philokey

+0

@ फिलोकी क्षमा करें मैं आपको यहां कोई अच्छी खबर नहीं ला सकता :( – Shai

+1

अरे यह अभी भी मामला है? कैफे इंस्टॉलेशन निर्देश python3 को भी दिखाता है। क्या आप अपनी जानकारी को नई जानकारी के प्रकाश में अपडेट कर सकते हैं – Ravikrn

2

अब पाइथन 3 के लिए कैफे बनाना संभव है, और मुझे पूरा यकीन है कि 16 दिसंबर को सवाल पूछे जाने पर यह संभव था।

ऐसा करने के लिए, आप 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 

लेकिन इसलिए आप क्योंकि रास्ते से, केवल python3 या को Python2 में Caffe होगा कैसे Caffe इंस्टॉल (साथ PYTHON_PATH, वास्तव में एक अच्छा तरीका नहीं है)।

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" 

इसलिए दोनों होगा काम करता है:

इस समाधान करने के लिए, आप अपने ~/.bashrc में इस तरह के चाल कर सकते हैं।

+0

क्या मुझे यह परिवर्तन करने के बाद "सब कुछ" करने की ज़रूरत है? – Ravikrn

+0

@Ravikrn नहीं, आपको दोनों पुस्तकालयों (.so) बनाने और उन्हें इस तरह से इंगित करने की आवश्यकता है। – UndeadDragon

+0

क्या आप विस्तृत कर सकते हैं। मुझे सिर्फ python3 चाहिए और शुरू में मैंने पाइथन 2 निर्देशों के साथ कैफे स्थापित किया था। दोनों पुस्तकालयों का निर्माण करके आपका क्या मतलब है? मेरा ~/.bashrc "निर्यात PYTHONPATH =/home/path/caffe/python: $ Pythonpath" – Ravikrn

संबंधित मुद्दे