python: импорт mayavi.mlab приводит к синтаксической ошибке - PullRequest
0 голосов
/ 21 декабря 2018

Я пытаюсь использовать Mayavi для создания 3D-графиков, но при запуске скрипта Python я получаю следующую ошибку:

 Traceback (most recent call last):
  File "test.py", line 1, in <module>
    import mayavi.mlab
  File "C:\Python37\lib\site-packages\mayavi\mlab.py", line 15, in <module>
    from mayavi.core.common import process_ui_events
  File "C:\Python37\lib\site-packages\mayavi\core\common.py", line 16, in <module>
    from apptools.persistence.state_pickler import create_instance
  File "C:\Python37\lib\site-packages\apptools\persistence\state_pickler.py", line 1210

    ^
SyntaxError: invalid syntax

Функция, которую я пытаюсь протестировать:

  def create_3D(dataset):
    #Extract the x, y ,z and von mises data from the numpy dataset and create an array for each.
    xs = dataset[:,1]
    ys = dataset[:,2]
    zs = dataset[:,3]
    v = dataset[:,4]

    # Define the points in 3D space
    # including color code based on value v
    pts = mlab.points3d(xs, ys, zs , v)

    # Triangulate based on X, Y with Delaunay 2D algorithm.
    # Save resulting triangulation.
    mesh = mlab.pipeline.delaunay2d(pts)

    # Remove the point representation from the plot
    pts.remove()

    # Draw a surface based on the triangulation
    surf = mlab.pipeline.surface(mesh)

    # Simple plot.
    mlab.xlabel("x")
    mlab.ylabel("y")
    mlab.zlabel("z")
    mlab.show()

Любая идея, как я мог это исправить?Я следовал процедуре установки, предложенной здесь $ pip install mayavi

$ pip install PyQt5

Я использую 64-битную версию Python 3.7

Ответы [ 2 ]

0 голосов
/ 20 февраля 2019

Я столкнулся с той же проблемой, но решил ее.появляется в файле state_pickler.py, в нескольких местах (где в сообщении об ошибке говорится, что он имеет \ in в «if .... \ and» (используется для разделения условий и в нескольких строках), просто для удаления\ сделать все условия "и" в одной строке. Есть несколько мест с этой проблемой, тогда она прекрасно работает!

0 голосов
/ 21 декабря 2018

state_pickler.py имеет длину всего 1022 строки, в нем нет строки 1210.

Удалите каталог C:\Python37\lib\site-packages\apptools\persistence\__pycache__ и повторите попытку.

Попробуйте переустановить apptools:

pip install -U apptools
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...