У меня есть приложение, написанное на питоне. Я хочу, чтобы мои пользователи могли манипулировать объектами приложений, позволяя им запускать свои собственные скрипты. Они, вероятно, будут делать ошибки в своих сценариях. Если есть ошибка, я хочу убедиться, что приложение не перестает работать. Я хотел бы встроить отладчик в свое приложение, чтобы помочь им отлаживать свои скрипты.Python как сценарий конечного пользователя в приложении python
например. Я определяю класс точки в моем приложении в shapes.py:
class QVPoint(object):
def __init__(self, x, y):
self.x = x
self.y = y
def addPoint(self, aPoint):
self.x = self.x + aPoint.x
self.y = self.y + aPoint.y
Я хочу, чтобы дать им возможность запускать скрипты как:
from shapes import QVPoint
a = QVPoint(1,1)
a.addPoint(QVPoint(2,2))
print "<" + str(a.x) + ',' + str(a.y) + ">"
print "<%d,%d>" % (a.x, a.y)
print 'done'
Я полагаю, что это должно использовать интерпретатор, отладчик, но я m не уверен по двум причинам: 1) как выставить объекты, созданные в приложении, в сценарий, и 2) как обеспечить, чтобы приложение не останавливалось, если ошибка заставила сценарий остановиться.
Я уверен, что этого, должно быть, задавали раньше, но я не могу его найти. Все ответы приветствуются.
Многих ТНХИ
Дэвид
Отформатируйте код, пожалуйста. – alternative
Просто, чтобы уточнить, я хочу поделиться с приложением сценария. Подпроцесс будет включать в себя разработку протокола для передачи изменений состояния приложения и будет очень медленным. Единственное, что может понадобиться в отдельном потоке, - это иногда отладчик, хотя я мог бы использовать удаленный отладчик. – DangerMouse
Я думаю, что моим решением будет использование compile() и eval(), завернутых try: except. используя глобалы пустого модуля, называемого песочница. – DangerMouse