PyQt5 терпит неудачу как «подходящий UI Toolkit» для Mayavi с Python 3.6 - PullRequest
1 голос
/ 02 мая 2019

Я бы хотел запустить демонстрации SfePy, но при отображении с помощью Mayavi возникла проблема.См. http://sfepy.org/doc-devel/installation.html#requirements

Я:

  • создал среду Anaconda Python 3.6 (за этот ответ ), используя conda create --name SfePy36 python=3.6
  • установлен Mayavi с использованием conda install -c conda-forge mayavi

  • установлен pip3 с использованием python3 get-pip.py (из здесь )

  • установленPyQt5 с использованием pip3 install PyQt5

Я не знаю, как самостоятельно проверить, правильно ли установлен PyQt5.Если я повторяю pip3 install PyQt5, это говорит мне, что оно уже установлено, но это не значит, что оно было сделано правильно или находится в нужном месте.


Когда я запускаю очень простой тест mayavi, приведенный ниже, я получаю следующую ошибку.

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Users/david/anaconda3/envs/SfePy36/lib/python3.6/site- packages/mayavi/tools/sources.py", line 1162, in scalar_field
    return tools.add_dataset(data_source.m_data, name, **kwargs)
  File "/Users/david/anaconda3/envs/SfePy36/lib/python3.6/site-packages/mayavi/tools/tools.py", line 91, in add_dataset
engine = _get_engine_from_kwarg(kwargs)
  File "/Users/david/anaconda3/envs/SfePy36/lib/python3.6/site-packages/mayavi/tools/tools.py", line 36, in _get_engine_from_kwarg
    gcf()
  File "/Users/david/anaconda3/envs/SfePy36/lib/python3.6/site-packages/mayavi/tools/figure.py", line 114, in gcf
engine = get_engine()
  File "/Users/david/anaconda3/envs/SfePy36/lib/python3.6/site-packages/mayavi/tools/engine_manager.py", line 92, in get_engine
return self.new_engine()
  File "/Users/david/anaconda3/envs/SfePy36/lib/python3.6/site-packages/mayavi/tools/engine_manager.py", line 137, in new_engine
check_backend()
  File "/Users/david/anaconda3/envs/SfePy36/lib/python3.6/site-packages/mayavi/tools/engine_manager.py", line 40, in check_backend
raise ImportError(msg)
ImportError: Could not import backend for traitsui.  Make sure you
    have a suitable UI toolkit like PyQt/PySide or wxPython
    installed.

Простая демонстрация не работает (с здесь ):

from mayavi import mlab
import numpy as np

x, y, z = np.mgrid[-10:10:20j, -10:10:20j, -10:10:20j]
s = np.sin(x*y*z)/(x*y*z)

mlab.pipeline.volume(mlab.pipeline.scalar_field(x,y,z,s))
mlab.show()

1 Ответ

2 голосов
/ 03 мая 2019

Возможно, вам придется использовать wxPython вместо PyQt / PySide.Взгляните на руководство по установке , точка № 2.

...