AttributeError: 'NoneType' object has no attribute 'to_array' when running mayavi/examples/mayavi/data_interaction/normal_flipping_stl.py
homosapien-lcy opened this issue · 1 comments
When running mayavi/examples/mayavi/data_interaction/normal_flipping_stl.py, an AttributeError: 'NoneType' object has no attribute 'to_array' will rise
Replication: python3.11 mayavi/examples/mayavi/data_interaction/normal_flipping_stl.py
trace:
(py311) (base) cyliu@aus552cyliu mayavi % python3.11 examples/mayavi/data_interaction/normal_flipping_stl.py
2023-05-11 15:32:59.308 ( 2.607s) [ 2A8EB] vtkSTLReader.cxx:106 ERR| vtkSTLReader (0x6000010cb400): File ../data/cube.stl not found
2023-05-11 15:32:59.308 ( 2.607s) [ 2A8EB] vtkExecutive.cxx:741 ERR| vtkCompositeDataPipeline (0x6000017edc00): Algorithm vtkSTLReader (0x6000010cb400) returned failure for request: vtkInformation (0x600000faf120)
Debug: Off
Modified Time: 237
Reference Count: 1
Registered Events: (none)
Request: REQUEST_DATA
FROM_OUTPUT_PORT: 0
ALGORITHM_AFTER_FORWARD: 1
FORWARD_DIRECTION: 0
Traceback (most recent call last):
File "/Users/cyliu/Documents/3.11_test/mayavi/examples/mayavi/data_interaction/normal_flipping_stl.py", line 90, in <module>
flip_normals(stl_fname)
File "/Users/cyliu/Documents/3.11_test/mayavi/examples/mayavi/data_interaction/normal_flipping_stl.py", line 20, in flip_normals
points = polydata.points.to_array()
^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'to_array'
env:
MacOS, python3.11
\Package Version Editable project location
apptools 5.2.0
attrdict 2.0.1
attrdict3 2.0.2
blosc2 2.0.0
celiagg 2.1.3
certifi 2022.12.7
chaco 5.1.0 /Users/cyliu/Documents/3.11_test/chaco
charset-normalizer 3.1.0
configobj 5.0.8
contourpy 1.0.7
cPython 0.0.6
cycler 0.11.0
Cython 0.29.34
dnspython 2.3.0
enable 5.4.0.dev38 /Users/cyliu/Documents/3.11_test/enable
envisage 7.0.3
fonttools 4.39.2
h5py 3.8.0
idna 3.4
joblib 1.2.0
kiwisolver 1.4.4
matplotlib 3.7.1
mayavi 4.8.2.dev0 /Users/cyliu/Documents/3.11_test/mayavi
msgpack 1.0.5
numexpr 2.8.4
numpy 1.24.2
packaging 23.1
pandas 1.5.3
Pillow 9.4.0
pip 23.1
py-cpuinfo 9.0.0
PyAudio 0.2.13
pyface 8.0.0 /Users/cyliu/Documents/3.11_test/pyface
pygarrayimage 1.0
pyglet 2.0.5 /Users/cyliu/Documents/3.11_test/pyglet
Pygments 2.14.0
pymongo 4.3.3
pyparsing 3.0.9
PySide6 6.4.3
PySide6-Addons 6.4.3
PySide6-Essentials 6.4.3
python-dateutil 2.8.2
pythonw 3.0.3
pytz 2023.2
reportlab 3.6.12
requests 2.28.2
scikit-learn 1.2.2
scipy 1.10.1
setuptools 65.6.3
shiboken6 6.4.3
six 1.16.0
tables 3.8.0
threadpoolctl 3.1.0
traits 6.4.1
traitsui 8.0.0.dev0 /Users/cyliu/Documents/3.11_test/traitsui
urllib3 1.26.15
vtk 9.2.6
wxPython 4.2.0
It seems that the source of the error is this line (https://github.com/enthought/mayavi/blob/master/examples/mayavi/data_interaction/normal_flipping_stl.py#L86):
if len(sys.argv) == 1:
stl_fname = "../data/cube.stl"
else:
stl_fname = sys.argv[1]
flip_normals(stl_fname)
somehow the STLReader reads in the file but the polydata.points stays none