Ошибка основного потока при запуске скрипта для создания ванильного окна в TouchDesigner - PullRequest
0 голосов
/ 23 июня 2019

Я пытаюсь импортировать DrawBot (https://github.com/typemytype/drawbot) как модуль для использования в TouchDesigner и запустить сценарий в Text Dat для визуализации предварительного просмотра чертежа, созданного сценарием, в ванильное окно (https://forum.drawbot.com/topic/26/using-a-virtualenv-in-drawbot/7)...this приводит к ошибке: [quote] NSInternalInconsistencyException - области перетаскивания NSWindow должны быть недействительными только в главном потоке! [/ Quote] Сценарий и ошибка приведены ниже.

Любые предложения о том, что яя делаю что-то не так или что я могу попробовать?

Я также запустил один и тот же код, используя Terminal с последней версией Python3 и в виртуальной среде с Python3.5.1, и оба успешно запустили скрипт, поэтому я предполагаю, что этоэто что-то, связанное с непосредственным запуском сценария в TD, которое вызывает ошибку.

Любая помощь приветствуется. Спасибо.

КОД:

import vanilla
import drawBot
from drawBot.ui.drawView import DrawView


class PreviewController(object):

    def __init__(self):
        self.w = vanilla.Window((400, 400))
        self.w.view = DrawView((0, 0, 0, 0))

        self.drawSomeThing()

        self.w.open()

    def drawSomeThing(self):
        # draw something
        drawBot.newDrawing()
        drawBot.newPage(300, 300)
        drawBot.fill(1, 0, 0)
        drawBot.rect(20, 20, 200, 200)
        # get the pdf document
        pdfDocument = drawBot.pdfImage()
        drawBot.endDrawing()        
        # set the pdf document in the view
        self.w.view.setPDFDocument(pdfDocument)


from vanilla.test.testTools import executeVanillaTest
executeVanillaTest(PreviewController)
```

ОШИБКА:

Traceback (most recent call last):
  File "</project1/text6:op('/project1/text6').run()>", line 1
td.Error: File "/project1/text6", line 40
  File "/Users/gorjious/Desktop/virtualenv_test/py35_env/lib/python3.5/site-packages/vanilla-0.1-py3.5.egg/vanilla/test/testTools.py", line 43, in executeVanillaTest
    cls(**kwargs)
  File "/project1/text6", line 19, in __init__
  File "/Users/gorjious/Desktop/virtualenv_test/py35_env/lib/python3.5/site-packages/vanilla-0.1-py3.5.egg/vanilla/vanillaWindows.py", line 132, in __init__
    frame, mask, NSBackingStoreBuffered, False, screen)
objc.error: NSInternalInconsistencyException - NSWindow drag regions should only be invalidated on the Main Thread!
Results of run operation resulted in exception. Value:type:textDAT path:/project1/text6 Type:<class 'td.textDAT'>.
...