PlotPyStack / PythonQwt

Qt plotting widgets for Python (pure Python reimplementation of Qwt C++ library)
https://pypi.org/project/PythonQwt/
Other
86 stars 25 forks source link

Bad call flags in PyCFunction_Call #40

Closed otger closed 8 years ago

otger commented 8 years ago

When trying to execute qwt tests on python3 I get a SystemError Exception:

Traceback (most recent call last):
  File "/usr/local/lib/python3.4/dist-packages/qwt/tests/BodeDemo.py", line 298, in <module>
    demo = make()
  File "/usr/local/lib/python3.4/dist-packages/qwt/tests/BodeDemo.py", line 285, in make
    demo = BodeDemo()
  File "/usr/local/lib/python3.4/dist-packages/qwt/tests/BodeDemo.py", line 205, in __init__
    self.plot = BodePlot(self)
  File "/usr/local/lib/python3.4/dist-packages/qwt/tests/BodeDemo.py", line 77, in __init__
    QwtPlot.__init__(self, *args)
  File "/usr/local/lib/python3.4/dist-packages/qwt/plot.py", line 335, in __init__
    self.initAxesData()
  File "/usr/local/lib/python3.4/dist-packages/qwt/plot.py", line 395, in initAxesData
    d.scaleWidget.setTransformation(d.scaleEngine.transformation())
  File "/usr/local/lib/python3.4/dist-packages/qwt/scale_widget.py", line 724, in setTransformation
    self.layoutScale()
  File "/usr/local/lib/python3.4/dist-packages/qwt/scale_widget.py", line 470, in layoutScale
    bd0, bd1 = self.getBorderDistHint()
  File "/usr/local/lib/python3.4/dist-packages/qwt/scale_widget.py", line 656, in getBorderDistHint
    start, end = self.__data.scaleDraw.getBorderDistHint(self.font())
  File "/usr/local/lib/python3.4/dist-packages/qwt/scale_draw.py", line 577, in getBorderDistHint
    s = -self.labelRect(font, minTick).top()
  File "/usr/local/lib/python3.4/dist-packages/qwt/scale_draw.py", line 999, in labelRect
    lbl = self.tickLabel(font, value)
  File "/usr/local/lib/python3.4/dist-packages/qwt/scale_draw.py", line 419, in tickLabel
    lbl.textSize(font)
  File "/usr/local/lib/python3.4/dist-packages/qwt/text.py", line 937, in textSize
    ) = self.__data.textEngine.textMargins(font)
  File "/usr/local/lib/python3.4/dist-packages/qwt/text.py", line 302, in textMargins
    top = fm.ascent() - self.effectiveAscent(font)
  File "/usr/local/lib/python3.4/dist-packages/qwt/text.py", line 261, in effectiveAscent
    return ASCENTCACHE.setdefault(fontKey, self.findAscent(font))
  File "/usr/local/lib/python3.4/dist-packages/qwt/text.py", line 281, in findAscent
    line = img.scanLine(row).asstring(linebytes)
SystemError: Bad call flags in PyCFunction_Call. METH_OLDARGS is no longer supported!

My installed versions: Python '3.4.3 (default, Oct 14 2015, 20:28:29) \n[GCC 4.8.4]' numpy 1.8.2 qwt 0.5.5 PyQt4 4.8.6 (* This is the one loaded by guidata) PyQt5 5.2.1 Cython 0.20.1post0 guidata 1.7.5 guiqwt 3.0.2

otger commented 8 years ago

Seems problem was on sip version. I downloaded latest versions of sip and PyQt5 from riverbank, compiled and installed and there is no more problems.

This was on Ubuntu 14.04. On Ubuntu 15.10 everything was working properly with default release versions.