So installieren Sie Mayavi, eine auf 3D-Zeichnungen spezialisierte Bibliothek, unter der Umgebung von Python 3.6, Anaconda (Python 3.x), Spyder.
Mayavi benötigt eine ältere Version von PyQt4 und es scheint schnell, eine virtuelle Python 2.7-Umgebung zu erstellen, um sie konsistent zu halten (?).
conda create -n py27mayavi python=2.7 pyqt=4 mayavi vtk spyder
Hier sind nur die für Mayavi erforderlichen Mindestbibliotheken aufgeführt. Fügen Sie außerdem die erforderlichen Bibliotheken hinzu.
Danach hatte ich ein Problem, das Spyder für Mayavi nicht startete, aber ich löste es, indem ich den Kanal von Conda-Forge auf Anaconda wechselte. Nachfolgend finden Sie die erfolgreichen Einstellungen für die virtuelle Umgebung.
conda create -n maya27 python=2.7 anaconda spyder mayavi pyqt=4 qt=4 vtk=6 matplotlib=1 --override-channels --channel anaconda
Die letzten `-override-Kanäle --channel an aconda
`scheinen ein Miso zu sein [1].
Da ver = 1 von matplotlib (wahrscheinlich) die Konsistenz mit PyQt beibehält, ist es möglicherweise nicht erforderlich, ver von vtk anzugeben.
Vergessen Sie nicht `` -override-channeles --channel anaconda```, wenn Sie dieser virtuellen Umgebung Bibliotheken hinzufügen (es kann schneller sein, den bevorzugten Kanal von conda-forge auf Anaconda zurückzusetzen).
Da es sich im Grunde genommen um eine Haltung von "nur bewegen" handelt, haben wir die Ursache nicht untersucht. Bitte verzeih mir. .. [Bisherige Ergänzung (2018.07.18)]
Aus irgendeinem Grund tritt ein Fehler auf, wenn ich versuche, die Achsenskala festzulegen, und der Kernel stirbt. Dies scheint ein Fehler von Mayavi Version 4.5.0 oder höher zu sein [2]. Die Lösung ist wie folgt.
Step 1 Gehen Sie zu "(Anaconda-Ordnerpfad) / envs / (Name der virtuellen Umgebung) / Lib / site-packages / mayavi".
Step 2 Zeile 173 von "axes.py" im Ordner "modules"
self.configure_input_data(self.axes, src.outputs[0])
Zu
data = src.outputs[0] if not hasattr(src.outputs[0], 'output') else src.outputs[0].output
self.configure_input_data(self.axes, data)
Gewechselt zu.
Step 3 Zeile 372 von "decorations.py" im Ordner "tools"
axes.axes.ranges = axes.module_manager.source.outputs[0].bounds
Zu
src = axes.module_manager.source
data = src.outputs[0] if not hasattr(src.outputs[0], 'output') else src.outputs[0].output
axes.axes.ranges = data.bounds
Gewechselt zu.
Ich habe gerade den letzten Teil der Referenzseite übersetzt [2] ... In meiner Umgebung ist dies die Lösung und sie funktioniert bisher einwandfrei. Die Einstellung ist ziemlich mühsam, aber die mit Mayavi gezeichnete 3D-Darstellung ist immer noch wunderschön. [Ergänzung 2 (2018.07.18)]
[1] https://conda.io/docs/commands/conda-create.html [2] https://github.com/enthought/mayavi/issues/474
Recommended Posts