#1130153 ValueError: could not convert string to float: '1+dfsg1'

Package:
python3-bioxtasraw
Source:
python3-bioxtasraw
Description:
process biological small angle scattering data
Submitter:
Picca Frédéric-Emmanuel
Date:
2026-03-09 13:55:01 UTC
Severity:
normal
#1130153#5
Date:
2026-03-09 13:09:48 UTC
From:
To:
Hello,

while trying to use bioxtasraw, I get this error message in a dialog box

An unexpected error has occurred, please report it to the developers.
System: Linux-6.12.73+deb13-amd64-x86_64-with-glibc2.41
RAW version: 2.4.1
Prebuilt: False

Error:
Traceback (most recent call last):

  File "/usr/lib/python3/dist-packages/wx/core.py", line 2338, in Notify
    self.notify()
    ~~~~~~~~~~~^^

  File "/usr/lib/python3/dist-packages/wx/core.py", line 3550, in Notify
    self.result = self.callable(*self.args, **self.kwargs)
                  ~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^

  File "/usr/lib/python3/dist-packages/bioxtasraw/RAW.py", line 16625, in ShowMain
    MainFrame('RAW %s' %(RAWGlobals.version), -1)
    ~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

  File "/usr/lib/python3/dist-packages/bioxtasraw/RAW.py", line 303, in __init__
    self.plot_panel = RAWPlot.PlotPanel(self.plot_notebook, -1, 'PlotPanel')
                      ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

  File "/usr/lib/python3/dist-packages/bioxtasraw/RAWPlot.py", line 362, in __init__
    self.toolbar = CustomPlotToolbar(self, self.canvas)
                   ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^

  File "/usr/lib/python3/dist-packages/bioxtasraw/RAWPlot.py", line 143, in __init__
    float(matplotlib.__version__.split('.')[2]) >= 1) or
    ~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

ValueError: could not convert string to float: '1+dfsg1'

Cheers

Fred

#1130153#10
Date:
2026-03-09 13:21:15 UTC
From:
To:
If I look for this pattern in the upstream code...

./bioxtasraw/RAWImage.py:        if ((float(matplotlib.__version__.split('.')[0]) == 3 and
./bioxtasraw/RAWImage.py:            float(matplotlib.__version__.split('.')[1]) >= 3 and
./bioxtasraw/RAWImage.py:            float(matplotlib.__version__.split('.')[2]) >= 1) or
./bioxtasraw/RAWImage.py:            (float(matplotlib.__version__.split('.')[0]) == 3 and
./bioxtasraw/RAWImage.py:            float(matplotlib.__version__.split('.')[1]) >= 4) or
./bioxtasraw/RAWImage.py:            float(matplotlib.__version__.split('.')[0]) > 3):
./bioxtasraw/RAWImage.py:        if float(matplotlib.__version__[:3]) >= 1.2:
./bioxtasraw/RAWImage.py:        if float(matplotlib.__version__[:3]) >= 1.2:
./bioxtasraw/RAWImage.py:        if float(matplotlib.__version__[:3]) >= 1.2:
./bioxtasraw/RAWImage.py:        if float(matplotlib.__version__[:3]) >= 1.2:
./bioxtasraw/RAWImage.py:        if ((int(matplotlib.__version__.split('.')[0])==3
./bioxtasraw/RAWImage.py:            and int(matplotlib.__version__.split('.')[1]) <5)
./bioxtasraw/RAWImage.py:            or int(matplotlib.__version__.split('.')[0]) < 3):
./bioxtasraw/RAWImage.py:        if ((int(matplotlib.__version__.split('.')[0])==3
./bioxtasraw/RAWImage.py:            and int(matplotlib.__version__.split('.')[1]) <5)
./bioxtasraw/RAWImage.py:            or int(matplotlib.__version__.split('.')[0]) < 3):
./bioxtasraw/RAWImage.py:        if ((int(matplotlib.__version__.split('.')[0])==3
./bioxtasraw/RAWImage.py:            and int(matplotlib.__version__.split('.')[1]) <5)
./bioxtasraw/RAWImage.py:            or int(matplotlib.__version__.split('.')[0]) < 3):
./bioxtasraw/RAWCustomDialogs.py:        if (int(matplotlib.__version__.split('.')[0]) < 3 or
./bioxtasraw/RAWCustomDialogs.py:            (int(matplotlib.__version__.split('.')[0]) == 3 and
./bioxtasraw/RAWCustomDialogs.py:            int(matplotlib.__version__.split('.')[1]) <8)):
./bioxtasraw/RAWPlot.py:if int(matplotlib.__version__.split('.')[0]) >= 2:
./bioxtasraw/RAWPlot.py:        if ((float(matplotlib.__version__.split('.')[0]) == 3 and
./bioxtasraw/RAWPlot.py:            float(matplotlib.__version__.split('.')[1]) >= 3 and
./bioxtasraw/RAWPlot.py:            float(matplotlib.__version__.split('.')[2]) >= 1) or
./bioxtasraw/RAWPlot.py:            (float(matplotlib.__version__.split('.')[0]) == 3 and
./bioxtasraw/RAWPlot.py:            float(matplotlib.__version__.split('.')[1]) >= 4) or
./bioxtasraw/RAWPlot.py:            float(matplotlib.__version__.split('.')[0]) > 3):
./bioxtasraw/RAWPlot.py:        if ((int(matplotlib.__version__.split('.')[0]) == 3
./bioxtasraw/RAWPlot.py:            and int(matplotlib.__version__.split('.')[1]) >= 4) or
./bioxtasraw/RAWPlot.py:            int(matplotlib.__version__.split('.')[0]) > 3):
./bioxtasraw/RAWPlot.py:        if ((int(matplotlib.__version__.split('.')[0]) == 3
./bioxtasraw/RAWPlot.py:            and int(matplotlib.__version__.split('.')[1]) >= 4) or
./bioxtasraw/RAWPlot.py:            int(matplotlib.__version__.split('.')[0]) > 3):
./bioxtasraw/RAWPlot.py:        if ((int(matplotlib.__version__.split('.')[0]) == 3
./bioxtasraw/RAWPlot.py:            and int(matplotlib.__version__.split('.')[1]) >= 4) or
./bioxtasraw/RAWPlot.py:            int(matplotlib.__version__.split('.')[0]) > 3):
./bioxtasraw/RAWPlot.py:            if float(matplotlib.__version__[:3]) >= 1.2:
./bioxtasraw/RAWPlot.py:            if float(matplotlib.__version__[:3]) >= 1.2:
./bioxtasraw/RAWPlot.py:            if float(matplotlib.__version__[:3]) >= 1.2:
./bioxtasraw/RAWAnalysis.py:            if float(matplotlib.__version__[:3]) >= 1.2:
./bioxtasraw/RAWAnalysis.py:        if ((int(matplotlib.__version__.split('.')[0]) == 3
./bioxtasraw/RAWAnalysis.py:            and int(matplotlib.__version__.split('.')[1]) >= 9) or
./bioxtasraw/RAWAnalysis.py:            int(matplotlib.__version__.split('.')[0]) > 3):
./bioxtasraw/RAWAnalysis.py:        if (int(matplotlib.__version__.split('.')[0]) < 3 or
./bioxtasraw/RAWAnalysis.py:            (int(matplotlib.__version__.split('.')[0]) == 3 and
./bioxtasraw/RAWAnalysis.py:            int(matplotlib.__version__.split('.')[1]) <8)):
./bioxtasraw/RAWAnalysis.py:        if ((int(matplotlib.__version__.split('.')[0]) == 3
./bioxtasraw/RAWAnalysis.py:            and int(matplotlib.__version__.split('.')[1]) >= 9) or
./bioxtasraw/RAWAnalysis.py:            int(matplotlib.__version__.split('.')[0]) > 3):
./bioxtasraw/RAWAnalysis.py:        if ((int(matplotlib.__version__.split('.')[0]) == 3
./bioxtasraw/RAWAnalysis.py:            and int(matplotlib.__version__.split('.')[1]) >= 9) or
./bioxtasraw/RAWAnalysis.py:            int(matplotlib.__version__.split('.')[0]) > 3):
./bioxtasraw/RAWAnalysis.py:        if ((int(matplotlib.__version__.split('.')[0]) == 1
./bioxtasraw/RAWAnalysis.py:            and int(matplotlib.__version__.split('.')[1]) >= 5)
./bioxtasraw/RAWAnalysis.py:            or int(matplotlib.__version__.split('.')[0]) > 1):
./bioxtasraw/RAWAnalysis.py:        if ((int(matplotlib.__version__.split('.')[0])==3
./bioxtasraw/RAWAnalysis.py:            and int(matplotlib.__version__.split('.')[1]) <5)
./bioxtasraw/RAWAnalysis.py:            or int(matplotlib.__version__.split('.')[0]) < 3):
./bioxtasraw/RAWAnalysis.py:        if ((int(matplotlib.__version__.split('.')[0]) ==1
./bioxtasraw/RAWAnalysis.py:            and int(matplotlib.__version__.split('.')[1]) >=5)
./bioxtasraw/RAWAnalysis.py:            or int(matplotlib.__version__.split('.')[0]) > 1):
./bioxtasraw/RAWAnalysis.py:        if ((int(matplotlib.__version__.split('.')[0])==3
./bioxtasraw/RAWAnalysis.py:            and int(matplotlib.__version__.split('.')[1]) <5)
./bioxtasraw/RAWAnalysis.py:            or int(matplotlib.__version__.split('.')[0]) < 3):
./bioxtasraw/RAWAnalysis.py:        if ((int(matplotlib.__version__.split('.')[0])==1
./bioxtasraw/RAWAnalysis.py:            and int(matplotlib.__version__.split('.')[1]) >=5)
./bioxtasraw/RAWAnalysis.py:            or int(matplotlib.__version__.split('.')[0]) > 1):
./bioxtasraw/RAWAnalysis.py:            if ((int(matplotlib.__version__.split('.')[0])==3
./bioxtasraw/RAWAnalysis.py:            and int(matplotlib.__version__.split('.')[1]) <4)
./bioxtasraw/RAWAnalysis.py:            or int(matplotlib.__version__.split('.')[0]) < 3):
./bioxtasraw/RAWAnalysis.py:            if ((int(matplotlib.__version__.split('.')[0])==3
./bioxtasraw/RAWAnalysis.py:            and int(matplotlib.__version__.split('.')[1]) <4)
./bioxtasraw/RAWAnalysis.py:            or int(matplotlib.__version__.split('.')[0]) < 3):
./bioxtasraw/RAWAnalysis.py:        if ((int(matplotlib.__version__.split('.')[0]) == 3
./bioxtasraw/RAWAnalysis.py:            and int(matplotlib.__version__.split('.')[1]) >= 9) or
./bioxtasraw/RAWAnalysis.py:            int(matplotlib.__version__.split('.')[0]) > 3):
./bioxtasraw/RAWAnalysis.py:        if ((int(matplotlib.__version__.split('.')[0]) ==1
./bioxtasraw/RAWAnalysis.py:            and int(matplotlib.__version__.split('.')[1]) >=5)
./bioxtasraw/RAWAnalysis.py:            or int(matplotlib.__version__.split('.')[0])) > 1:
./bioxtasraw/RAWAnalysis.py:        if ((int(matplotlib.__version__.split('.')[0])==3
./bioxtasraw/RAWAnalysis.py:            and int(matplotlib.__version__.split('.')[1]) <5)
./bioxtasraw/RAWAnalysis.py:            or int(matplotlib.__version__.split('.')[0]) < 3):
./bioxtasraw/RAWAnalysis.py:        if ((int(matplotlib.__version__.split('.')[0]) ==1
./bioxtasraw/RAWAnalysis.py:                    and int(matplotlib.__version__.split('.')[1]) >=5)
./bioxtasraw/RAWAnalysis.py:                or int(matplotlib.__version__.split('.')[0]) > 1):
./bioxtasraw/RAWAnalysis.py:            if ((int(matplotlib.__version__.split('.')[0]) ==1 and
./bioxtasraw/RAWAnalysis.py:                int(matplotlib.__version__.split('.')[1]) >=5) or
./bioxtasraw/RAWAnalysis.py:                (int(matplotlib.__version__.split('.')[0]) > 1 and
./bioxtasraw/RAWAnalysis.py:                int(matplotlib.__version__.split('.')[0]) < 3) or
./bioxtasraw/RAWAnalysis.py:                (int(matplotlib.__version__.split('.')[0]) == 3 and
./bioxtasraw/RAWAnalysis.py:                int(matplotlib.__version__.split('.')[1]) <8)):
./bioxtasraw/RAWAnalysis.py:            elif ((int(matplotlib.__version__.split('.')[0]) == 3 and
./bioxtasraw/RAWAnalysis.py:                int(matplotlib.__version__.split('.')[1]) >=8) or
./bioxtasraw/RAWAnalysis.py:                (int(matplotlib.__version__.split('.')[0]) > 3)):
./bioxtasraw/RAWAnalysis.py:                if ((int(matplotlib.__version__.split('.')[0]) ==1 and
./bioxtasraw/RAWAnalysis.py:                    int(matplotlib.__version__.split('.')[1]) >=5) or
./bioxtasraw/RAWAnalysis.py:                    (int(matplotlib.__version__.split('.')[0]) > 1 and
./bioxtasraw/RAWAnalysis.py:                    int(matplotlib.__version__.split('.')[0]) < 3) or
./bioxtasraw/RAWAnalysis.py:                    (int(matplotlib.__version__.split('.')[0]) == 3 and
./bioxtasraw/RAWAnalysis.py:                    int(matplotlib.__version__.split('.')[1]) <8)):
./bioxtasraw/RAWAnalysis.py:                elif ((int(matplotlib.__version__.split('.')[0]) == 3 and
./bioxtasraw/RAWAnalysis.py:                    int(matplotlib.__version__.split('.')[1]) >=8) or
./bioxtasraw/RAWAnalysis.py:                    (int(matplotlib.__version__.split('.')[0]) > 3)):
./bioxtasraw/RAWAnalysis.py:            if float(matplotlib.__version__[:3]) >= 1.2:
./bioxtasraw/RAWAnalysis.py:            if ((int(matplotlib.__version__.split('.')[0]) == 3
./bioxtasraw/RAWAnalysis.py:                and int(matplotlib.__version__.split('.')[1]) >= 4) or
./bioxtasraw/RAWAnalysis.py:                int(matplotlib.__version__.split('.')[0]) > 3):
./bioxtasraw/RAWAnalysis.py:            if ((int(matplotlib.__version__.split('.')[0]) == 3
./bioxtasraw/RAWAnalysis.py:                and int(matplotlib.__version__.split('.')[1]) >= 4) or
./bioxtasraw/RAWAnalysis.py:                int(matplotlib.__version__.split('.')[0]) > 3):
./bioxtasraw/RAWAnalysis.py:            if float(matplotlib.__version__[:3]) >= 1.2:
./bioxtasraw/RAWAnalysis.py:        if ((int(matplotlib.__version__.split('.')[0]) == 3
./bioxtasraw/RAWAnalysis.py:            and int(matplotlib.__version__.split('.')[1]) >= 9) or
./bioxtasraw/RAWAnalysis.py:            int(matplotlib.__version__.split('.')[0]) > 3):
./bioxtasraw/RAWAnalysis.py:                if ((int(matplotlib.__version__.split('.')[0]) == 3
./bioxtasraw/RAWAnalysis.py:                    and int(matplotlib.__version__.split('.')[1]) >= 9) or
./bioxtasraw/RAWAnalysis.py:                    int(matplotlib.__version__.split('.')[0]) > 3):
./bioxtasraw/RAWAnalysis.py:                if ((int(matplotlib.__version__.split('.')[0]) == 3
./bioxtasraw/RAWAnalysis.py:                    and int(matplotlib.__version__.split('.')[1]) >= 9) or
./bioxtasraw/RAWAnalysis.py:                    int(matplotlib.__version__.split('.')[0]) > 3):
./bioxtasraw/RAWAnalysis.py:                    if ((int(matplotlib.__version__.split('.')[0]) == 3
./bioxtasraw/RAWAnalysis.py:                        and int(matplotlib.__version__.split('.')[1]) >= 9) or
./bioxtasraw/RAWAnalysis.py:                        int(matplotlib.__version__.split('.')[0]) > 3):
./bioxtasraw/RAWAnalysis.py:                if ((int(matplotlib.__version__.split('.')[0]) == 3
./bioxtasraw/RAWAnalysis.py:                    and int(matplotlib.__version__.split('.')[1]) >= 9) or
./bioxtasraw/RAWAnalysis.py:                    int(matplotlib.__version__.split('.')[0]) > 3):
./bioxtasraw/RAWAnalysis.py:                if ((int(matplotlib.__version__.split('.')[0]) == 3
./bioxtasraw/RAWAnalysis.py:                    and int(matplotlib.__version__.split('.')[1]) >= 9) or
./bioxtasraw/RAWAnalysis.py:                    int(matplotlib.__version__.split('.')[0]) > 3):
./bioxtasraw/RAWMultiSeriesAnalysis.py:            if float(matplotlib.__version__[:3]) >= 1.2:


maybe the best solutin is to fix the version number of matplotlib. I do not know if it is allow to provide a version number  with the a debian version in it...

#1130153#15
Date:
2026-03-09 13:33:29 UTC
From:
To:
The best would be to use the packaging.version Version type in order to deal with these verrsion comparisons.

from packaging.version import Version

v = Version(matplotlib.__version__)
v < Version ("3.3.3")

...

#1130153#20
Date:
2026-03-09 13:52:43 UTC
From:
To:
forwarded 1130153 https://github.com/jbhopkins/bioxtasraw/issues/14
thanks

Good idea. I see you have just forwarded the bug upstream. Thanks a lot.