2011-06-04 11 views
14

Esto suena como una pregunta extraña, así que explicaré las circunstancias que rodean primero.¿Cómo incrustar Lua dentro de Python?

Básicamente, tengo un kit de desarrollo de juegos en 3D, escrito en Python, que funciona de manera excelente por sí mismo. Sin embargo, la mayoría de mis usuarios estarán acostumbrados a usar Lua como lenguaje de scripting, así que comencé a mirar los enlaces Lua-Python.

Me instalé con la increíble biblioteca Lupa de Stefan Behnel. Sin embargo, básicamente requiere que los usuarios finales sepan cómo compilar aplicaciones, lo cual es inaceptable para mi GDK. Además, normalmente solo puedo acceder a un sistema Linux, y dado que mi kit de desarrollo de juegos se ejecuta en Windows y Mac OSX, los archivos binarios de Windows siempre van a la zaga, y mis usuarios de OSX deben compilar ellos mismos mi GDK.

¿Alguien conoce otra alternativa? ¡Gracias!

P.S: Ya he probado Lunatic Python, y Lux está demasiado desactualizado.

+0

Sí, mi primera pregunta :). He estado "acechando" alrededor de StackOverflow durante años, aunque ... – DangerOnTheRanger

+0

¿Te gusta escribir compiladores? –

+0

En realidad, escribir mi propio intérprete de Python Lua puro es mi alternativa. Aunque, si no surgen alternativas a Lupa, me quedaré con Lupa. – DangerOnTheRanger

Respuesta

4

debe mirar en lunatic-python es un puente de 2 vías entre python y lua.

un ejemplo fuera de la página muestra cómo natural y fácil que es:

>>> 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

Como dije en mi pregunta, ya probé Lunatic Python. El problema principal que tengo es que es muy monol ithic: múltiples scripts comparten implícitamente globales si simplemente se ejecutan con 'lua.run'. Esa es la razón por la que elegí a Lupa; múltiples instancias de intérprete Lua pueden existir. – DangerOnTheRanger

Cuestiones relacionadas