Package: cura
Version: 5.0.0-6
Severity: normal
File: /usr/bin/cura
Tags: upstream

Dear Maintainer,
I'm running Unstable with python3-numpy 1:2.3.5+ds-3 and Preview doesn't
work. Slider indicator slides and nothing happens.

There is an output in the terminal:

  2026-02-21 22:05:43,267 - ERROR - [JobQueueWorker [3]] UM.JobQueue.run [135]: 
Exception: Job <CuraEngineBackend.ProcessSlicedLayersJob.ProcessSlicedLayersJob 
object at 0x7ff8fb779e80> caused an exception on worker JobQueueWorker [3]
  2026-02-21 22:05:43,269 - ERROR - [JobQueueWorker [3]] UM.JobQueue.run [135]: 
Traceback (most recent call last):
  2026-02-21 22:05:43,270 - ERROR - [JobQueueWorker [3]] UM.JobQueue.run [135]: 
  File "/usr/lib/python3/dist-packages/UM/JobQueue.py", line 133, in run
  2026-02-21 22:05:43,270 - ERROR - [JobQueueWorker [3]] UM.JobQueue.run [135]: 
    job.run()
  2026-02-21 22:05:43,271 - ERROR - [JobQueueWorker [3]] UM.JobQueue.run [135]: 
    ~~~~~~~^^
  2026-02-21 22:05:43,271 - ERROR - [JobQueueWorker [3]] UM.JobQueue.run [135]: 
  File "/usr/lib/cura/plugins/CuraEngineBackend/ProcessSlicedLayersJob.py", 
line 143, in run
  2026-02-21 22:05:43,272 - ERROR - [JobQueueWorker [3]] UM.JobQueue.run [135]: 
    line_types = numpy.fromstring(polygon.line_type, dtype = "u1")  # Convert 
bytearray to numpy array
  2026-02-21 22:05:43,273 - ERROR - [JobQueueWorker [3]] UM.JobQueue.run [135]: 
ValueError: The binary mode of fromstring is removed, use frombuffer instead

I tried to replace several calls numpy.fromstring() → numpy.frombuffer() and
the program runs a bit longer, but finally fails on another problems…

  2026-02-21 22:19:06,263 - DEBUG - [MainThread] 
CuraEngineBackend.CuraEngineBackend._onProcessLayersFinished [996]: See if 
there is more to slice(2)...
  2026-02-21 22:19:06,269 - CRITICAL - [MainThread] cura.CrashHandler.__init__ 
[66]: An uncaught error has occurred!
  2026-02-21 22:19:06,272 - CRITICAL - [MainThread] cura.CrashHandler.__init__ 
[69]: Traceback (most recent call last):
  2026-02-21 22:19:06,272 - CRITICAL - [MainThread] cura.CrashHandler.__init__ 
[69]:   File "/usr/lib/python3/dist-packages/UM/Qt/Bindings/MainWindow.py", 
line 290, in _render
  2026-02-21 22:19:06,272 - CRITICAL - [MainThread] cura.CrashHandler.__init__ 
[69]:     renderer.render()
  2026-02-21 22:19:06,273 - CRITICAL - [MainThread] cura.CrashHandler.__init__ 
[69]:     ~~~~~~~~~~~~~~~^^
  2026-02-21 22:19:06,273 - CRITICAL - [MainThread] cura.CrashHandler.__init__ 
[69]:   File "/usr/lib/python3/dist-packages/UM/Qt/QtRenderer.py", line 164, in 
render
  2026-02-21 22:19:06,273 - CRITICAL - [MainThread] cura.CrashHandler.__init__ 
[69]:     render_pass.render()
  2026-02-21 22:19:06,273 - CRITICAL - [MainThread] cura.CrashHandler.__init__ 
[69]:     ~~~~~~~~~~~~~~~~~~^^
  2026-02-21 22:19:06,273 - CRITICAL - [MainThread] cura.CrashHandler.__init__ 
[69]:   File "/usr/lib/cura/plugins/SimulationView/SimulationPass.py", line 
189, in render
  2026-02-21 22:19:06,273 - CRITICAL - [MainThread] cura.CrashHandler.__init__ 
[69]:     layers_batch.render(self._scene.getActiveCamera())
  2026-02-21 22:19:06,273 - CRITICAL - [MainThread] cura.CrashHandler.__init__ 
[69]:     ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  2026-02-21 22:19:06,274 - CRITICAL - [MainThread] cura.CrashHandler.__init__ 
[69]:   File "/usr/lib/python3/dist-packages/UM/View/RenderBatch.py", line 231, 
in render
  2026-02-21 22:19:06,274 - CRITICAL - [MainThread] cura.CrashHandler.__init__ 
[69]:     self._renderItem(item)
  2026-02-21 22:19:06,274 - CRITICAL - [MainThread] cura.CrashHandler.__init__ 
[69]:     ~~~~~~~~~~~~~~~~^^^^^^
  2026-02-21 22:19:06,274 - CRITICAL - [MainThread] cura.CrashHandler.__init__ 
[69]:   File "/usr/lib/python3/dist-packages/UM/View/RenderBatch.py", line 262, 
in _renderItem
  2026-02-21 22:19:06,274 - CRITICAL - [MainThread] cura.CrashHandler.__init__ 
[69]:     vertex_buffer = OpenGL.getInstance().createVertexBuffer(mesh)
  2026-02-21 22:19:06,274 - CRITICAL - [MainThread] cura.CrashHandler.__init__ 
[69]:   File "/usr/lib/python3/dist-packages/UM/View/GL/OpenGL.py", line 282, 
in createVertexBuffer
  2026-02-21 22:19:06,275 - CRITICAL - [MainThread] cura.CrashHandler.__init__ 
[69]:     attribute_byte_array = attribute["value"].tostring()
  2026-02-21 22:19:06,275 - CRITICAL - [MainThread] cura.CrashHandler.__init__ 
[69]:                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  2026-02-21 22:19:06,275 - CRITICAL - [MainThread] cura.CrashHandler.__init__ 
[69]: AttributeError: 'numpy.ndarray' object has no attribute 'tostring'


Thanks
-- 
Zito



-- System Information:
Debian Release: forky/sid
  APT prefers unstable
  APT policy: (500, 'unstable')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 6.18.12+deb14-amd64 (SMP w/8 CPU threads; PREEMPT)
Locale: LANG=en_US.UTF-8, LC_CTYPE=cs_CZ.UTF-8 (charmap=UTF-8), LANGUAGE not set
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

Versions of packages cura depends on:
ii  cura-engine                          1:5.0.0-6
ii  fdm-materials                        5.0.0-3
ii  fonts-open-sans                      1.11-2
ii  python3                              3.13.9-3
ii  python3-certifi                      2026.1.4+ds-1
ii  python3-charon                       5.0.0-5
ii  python3-cryptography                 46.0.5-1
ii  python3-keyring                      25.7.0-1
ii  python3-pynest2d                     5.0.0-3+b6
ii  python3-pyqt6                        6.10.2-2
ii  python3-requests                     2.32.5+dfsg-1
ii  python3-savitar                      5.0.0-4.1+b7
ii  python3-sentry-sdk                   2.22.0-1
ii  python3-serial                       3.5-2
ii  python3-shapely                      2.1.2-1+b1
ii  python3-trimesh                      4.5.1-3
ii  python3-uranium                      5.0.0-7
ii  python3-zeroconf                     0.148.0-2
ii  qml6-module-qt-labs-folderlistmodel  6.9.2+dfsg-5
ii  qml6-module-qtqml-workerscript       6.9.2+dfsg-5
ii  qml6-module-qtquick-controls         6.9.2+dfsg-5
ii  qml6-module-qtquick-dialogs          6.9.2+dfsg-5
ii  qml6-module-qtquick-layouts          6.9.2+dfsg-5
ii  qml6-module-qtquick-templates        6.9.2+dfsg-5
ii  qml6-module-qtquick-window           6.9.2+dfsg-5
ii  qt6-qpa-plugins                      6.9.2+dfsg-4
ii  uranium-plugins                      5.0.0-7

cura recommends no packages.

cura suggests no packages.

-- no debconf information
--- /usr/lib/cura/plugins/CuraEngineBackend/ProcessSlicedLayersJob.py.orig      
2022-05-17 10:08:13.000000000 +0200
+++ /usr/lib/cura/plugins/CuraEngineBackend/ProcessSlicedLayersJob.py   
2026-02-21 21:54:09.663743850 +0100
@@ -140,23 +140,23 @@
 
                 extruder = polygon.extruder
 
-                line_types = numpy.fromstring(polygon.line_type, dtype = "u1") 
 # Convert bytearray to numpy array
+                line_types = numpy.frombuffer(polygon.line_type, dtype = "u1") 
 # Convert bytearray to numpy array
 
                 line_types = line_types.reshape((-1,1))
 
-                points = numpy.fromstring(polygon.points, dtype = "f4")  # 
Convert bytearray to numpy array
+                points = numpy.frombuffer(polygon.points, dtype = "f4")  # 
Convert bytearray to numpy array
                 if polygon.point_type == 0: # Point2D
                     points = points.reshape((-1,2))  # We get a linear list of 
pairs that make up the points, so make numpy interpret them correctly.
                 else:  # Point3D
                     points = points.reshape((-1,3))
 
-                line_widths = numpy.fromstring(polygon.line_width, dtype = 
"f4")  # Convert bytearray to numpy array
+                line_widths = numpy.frombuffer(polygon.line_width, dtype = 
"f4")  # Convert bytearray to numpy array
                 line_widths = line_widths.reshape((-1,1))  # We get a linear 
list of pairs that make up the points, so make numpy interpret them correctly.
 
-                line_thicknesses = numpy.fromstring(polygon.line_thickness, 
dtype = "f4")  # Convert bytearray to numpy array
+                line_thicknesses = numpy.frombuffer(polygon.line_thickness, 
dtype = "f4")  # Convert bytearray to numpy array
                 line_thicknesses = line_thicknesses.reshape((-1,1))  # We get 
a linear list of pairs that make up the points, so make numpy interpret them 
correctly.
 
-                line_feedrates = numpy.fromstring(polygon.line_feedrate, dtype 
= "f4")  # Convert bytearray to numpy array
+                line_feedrates = numpy.frombuffer(polygon.line_feedrate, dtype 
= "f4")  # Convert bytearray to numpy array
                 line_feedrates = line_feedrates.reshape((-1,1))  # We get a 
linear list of pairs that make up the points, so make numpy interpret them 
correctly.
 
                 # Create a new 3D-array, copy the 2D points over and insert 
the right height.

Reply via email to