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.