2011-06-04 2 views
14

Это звучит странно, поэтому я объясню обстоятельства, связанные с первым.Как вставить Lua внутри Python?

В принципе, у меня есть комплект для разработки 3D-игр, написанный на Python, который отлично работает сам по себе. Тем не менее, большинство моих пользователей будут использоваться для использования Lua в качестве языка сценариев, поэтому я начал искать привязки Lua-Python.

Я поселился со изумительной библиотекой Стефана Бехнеля Lupa. Однако в основном это требует, чтобы конечные пользователи знали, как компилировать приложения, что неприемлемо для моего GDK. Кроме того, я обычно могу получить доступ только к системе Linux, и, поскольку мой комплект для разработки игр работает на Windows и Mac OSX, двоичные файлы Windows всегда отстают, и мои пользователи OSX должны сами скомпилировать мой GDK.

Кто-нибудь знает другую альтернативу? Спасибо!

P.S: Я уже пробовал Lunatic Python, а Lux слишком устарел.

+0

Да, мой первый вопрос :). Я уже несколько лет «скрывался» вокруг StackOverflow, хотя ... – DangerOnTheRanger

+0

Нравится ли вам писать компиляторы? –

+0

На самом деле, написание моего собственного интерпретатора Python Lua _is_ my fallback. Хотя, если никакие альтернативы Лупе не придут, я могу просто придерживаться Лупы. – DangerOnTheRanger

ответ

4

вы должны изучить lunatic-python это двухсторонний мост между python и lua.

пример от сайта показывает, как естественно и легко:

>>> import lua 
>>> lg = lua.globals() 
>>> lg.string 
<Lua table at 0x81c6a10> 
>>> lg.string.lower 
<Lua function at 0x81c6b30> 
>>> lg.string.lower("Hello world!") 
'hello world!' 
+2

Как я уже сказал в своем вопросе, я уже пробовал Lunatic Python. Основная проблема, с которой я сталкиваюсь, заключается в том, что он очень монолог ithic: Несколько сценариев неявно разделяют глобальные символы, если они просто запускаются с помощью 'lua.run'. Вот почему я выбрал Лупу; могут существовать множественные экземпляры интерпретатора Lua. – DangerOnTheRanger

Смежные вопросы