2010-05-04 5 views
2

Я изучаю использование Lua в веб-проекте. Я не могу найти способ прямого разбора в чистом питоне и запускать код Lua в Python.Lua parser in python

Кто-нибудь знает, как это сделать?

Джо

+2

Вы можете получить более полезные ответы, если вы опубликуете свою реальную проблему, которая, как представляется, создает безопасную или изолированную среду Lua для использования в веб-приложении. Люди в списке Lua сделали это N раз ... –

ответ

1

Там в этот проект (pylux), который встраивает Lua в Python. Это кажется скорее неактивным, хотя, но это может быть хороший проект, на который нужно взглянуть.

+0

Я ищу реализацию Pure Python –

+1

Удачи в поиске чистого анализатора Python Lua (никогда не слышал об одном). – ChristopheD

+0

Хм ... я решил не использовать Lua. Я просто буду переопределять встроенные python. Это хороший ответ, поэтому, я отметю его –

2

Из ваших комментариев, похоже, вы заинтересованы в безопасном способе выполнения ненадежного кода.

Переопределение встроенных python, как вы сказали в комментарии, является ужасным способом защиты кода.

Что вы хотите, это песочница, есть решения для python, но я бы не рекомендовал их. Вы бы гораздо лучше использовали Jython или IronPython, потому что JVM и .NET clr были разработаны с учетом песочницы.

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

1

@the_drow

С веб-сайта Lua в:

Lua является быстрый язык двигатель с небольшой след, который можно встроить легко в ваше приложение. Lua имеет простой и хорошо документированный API , который позволяет прочную интеграцию с кодом, написанным на других языках. Легко расширить Lua библиотеками, написанными на других языках. Это также легко расширяет программы, написанные на других языках с помощью Lua. Lua используется для расширения программ, написанных не только на языках C и C++, но также на Java, C#, Smalltalk, Fortran, Ada, Erlang и даже на других языках сценариев, таких как Perl и Ruby, и даже на .

@Joe Симпсон

Заканчивать Lunatic Python, это может иметь то, что вы хотите. Я знаю, что это старый вопрос, но другие люди тоже могут найти этот ответ. Это хороший вопрос, который заслуживает хорошего ответа.