ImportError: No module named 'matplotlib.pyplot'; matplotlib is not a package

落爺英雄遲暮 提交于 2019-12-23 21:05:23

问题


I am trying to use matplotlib for real-time analysis from ECG-signals, but the problem starts even before.

I use the PyCharm IDE, currently working with Python 3.3 and my os is Windows 8.1.

For Matplotlib I downloaded matplotlib and the dependencies (numpy, six, dateutil, pyparsing, pytz) from here (the versions for Python 3.3): http://www.lfd.uci.edu/~gohlke/pythonlibs/ and installed it in the Python33 folder.

Now if I try:

from matplotlib.pyplot import plot, show  

    plot(range(10))  
    show()

or:

import pylab
from pylab import *

xAchse=pylab.arange(0,100,1)
yAchse=pylab.array([0]*100)

fig = pylab.figure(1)
ax = fig.add_subplot(111)
ax.grid(True)
ax.set_title("Realtime Waveform Plot")
ax.set_xlabel("Time")
ax.set_ylabel("Amplitude")
ax.axis([0,100,-1.5,1.5])
line1=ax.plot(xAchse,yAchse,'-')

manager = pylab.get_current_fig_manager()

values=[]
values = [0 for x in range(100)]

Ta=0.01
fa=1.0/Ta
fcos=3.5

Konstant=cos(2*pi*fcos*Ta)
T0=1.0
T1=Konstant

def SinwaveformGenerator(arg):
  global values,T1,Konstant,T0
  #ohmegaCos=arccos(T1)/Ta
  #print "fcos=", ohmegaCos/(2*pi), "Hz"

  Tnext=((Konstant*T1)*2)-T0
  if len(values)%100>70:
    values.append(random()*2-1)
  else:
    values.append(Tnext)
  T0=T1
  T1=Tnext

def RealtimePloter(arg):
  global values
  CurrentXAxis=pylab.arange(len(values)-100,len(values),1)
  line1[0].set_data(CurrentXAxis,pylab.array(values[-100:]))
  ax.axis([CurrentXAxis.min(),CurrentXAxis.max(),-1.5,1.5])
  manager.canvas.draw()
  #manager.show()

timer = fig.canvas.new_timer(interval=20)
timer.add_callback(RealtimePloter, ())
timer2 = fig.canvas.new_timer(interval=20)
timer2.add_callback(SinwaveformGenerator, ())
timer.start()
timer2.start()

pylab.show()

For a smal test, I get two different Error's. For the first one it is the following:

 Traceback (most recent call last):  
  File "<frozen importlib._bootstrap>", line 1519, in _find_and_load_unlocked  
AttributeError: 'module' object has no attribute __path__      
During handling of the above exception, another exception occurred:  
Traceback (most recent call last):  
  File "C:/Users/Timo/PycharmProjects/GUI_test/matplotlib.py", line 1, in <module>
    from matplotlib.pyplot import plot, show  
  File "C:\Users\Timo\PycharmProjects\GUI_test\matplotlib.py", line 1, in <module>
    from matplotlib.pyplot import plot, show  
ImportError: No module named 'matplotlib.pyplot'; matplotlib is not a package  

And for the second bigger example it is this:

Traceback (most recent call last):
  File "C:/Users/Timo/PycharmProjects/GUI_test/matplotlib.py", line 1, in <module>
    import pylab
  File "C:\Python33\lib\site-packages\pylab.py", line 1, in <module>
    from matplotlib.pylab import *
  File "C:\Users\Timo\PycharmProjects\GUI_test\matplotlib.py", line 4, in <module>
    xAchse=pylab.arange(0,100,1)
AttributeError: 'module' object has no attribute 'arange'

Afterwards I changed the imports to the ones Pycharm wanted me to use. from matplotlib import pylab but this only resulted in an ImportError. cannot import pylab

The funny thing is, if I run these small tests in the Python Console it works just fine, so my guess is that it has something to do with PyCharm... I also tried to add the exact path from the matplotlib to the Path variable but that resulted in another Error.


回答1:


Your current project folder C:/Users/Timo/PycharmProjects/GUI_test/matplotlib.py contains matplotlib.py which causes this issue. Change the filename to anything else, which is not a name of a python package.



来源:https://stackoverflow.com/questions/23873306/importerror-no-module-named-matplotlib-pyplot-matplotlib-is-not-a-package

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!