2015-07-25 4 views
1

Я Matplotlib Lib, установленный с помощью пип, но когда я запускаю этот код дает мне эту ошибку:Matplotlib: ImportError: не может импортировать имя 'pyplot'

[email protected] ~ $ python3 opencv.py 
Traceback (most recent call last): 
    File "opencv.py", line 3, in <module> 
    from matplotlib import pyplot as plt 
ImportError: cannot import name 'pyplot' 

Мой код:

import numpy as np 
import cv2 
from matplotlib import pyplot as plt 

img1 = cv2.imread('/home/shar/home.jpg',0) # queryImage 
img2 = cv2.imread('/home/shar/home2.jpg',0) # trainImage 

# Initiate SIFT detector 
orb = cv2.ORB() 

# find the keypoints and descriptors with SIFT 
kp1, des1 = orb.detectAndCompute(img1,None) 
kp2, des2 = orb.detectAndCompute(img2,None) 
# create BFMatcher object 
bf = cv2.BFMatcher(cv2.NORM_HAMMING, crossCheck=True) 

# Match descriptors. 
matches = bf.match(des1,des2) 

# Sort them in the order of their distance. 
matches = sorted(matches, key = lambda x:x.distance) 

# Draw first 10 matches. 
img3 = cv2.drawMatches(img1,kp1,img2,kp2,matches[:10], flags=2) 

plt.imshow(img3),plt.show() 

Я также попытался установить matplotlib из источника, и это все еще дает мне ошибку.

+1

Какую команду вы использовали для его установки, как с пипсом, так и из источника? Вы запускаете программу с помощью 'python3', возможно ли, что вы установили ее для python 2? Опубликуйте вывод 'pip -version', чтобы узнать, какую версию python он использует. –

+0

Вы пытались сменить свой код на 'import matplotlib.pyplot as plt'? Я думаю, вы, вероятно, разработали этот код на Python 2 и теперь пытаетесь запустить его на Python 3, где [неявный относительный импорт не будет работать.] (Http://stackoverflow.com/questions/12172791/changes-in-import- statement-python3) –

+1

Почему вы назвали свой скрипт 'opencv.py'? У вас тоже есть «matplotlib.py»? Что делает 'import matplotlib; print (matplotlib .__ file __) 'произвести? –

ответ

1

Убедитесь, что у вас нет имен файлов matplotlib.py, которые были созданы, если они есть, а затем переименуйте или удалите этот файл. Это сработало для меня

Смежные вопросы