首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Mac OS Mountain Lion上使用lua和python

如何在Mac OS Mountain Lion上使用lua和python
EN

Stack Overflow用户
提问于 2013-02-02 09:55:31
回答 3查看 641关注 0票数 1

我一直在使用lupa0.20+ LuaJIT 2.0.0将lua嵌入到W7中的python2.7代码中。不幸的是,我不能让它在Mountain Lion Mac OS上工作。我可以编译LuaJIT和Lupa,但每当我尝试使用lupa时,我都会遇到这样的错误:

代码语言:javascript
复制
lupa._lupa.LuaError: Failed to initialise Lua runtime
File "/Users/rafael/Projects/Lua/test.py", line 3, in <module>
lua = LuaRuntime()
File "/usr/local/lib/python2.7/site-packages/lupa/_lupa.so", line 116, in     lupa._lupa.LuaRuntime.__cinit__ (lupa/_lupa.c:2237)

有没有让它工作的小窍门?

EN

回答 3

Stack Overflow用户

发布于 2013-05-08 07:58:45

您不能将lupa与系统安装的x86_64一起使用。-image_base 64位要求可执行文件(在本例中为python)已链接到-pagezero_size 10000 luajit 100000000。

系统安装的python不是以这种方式链接的,所以您最好的选择是弄清楚如何在osx上构建一个32位的luajit (在那里无能为力),构建一个32位的lupa (ARCHFLAGS="-arch i386“python setup.py构建),然后看看它是否适用于您。

或者,构建一个使用这些链接器标志的64位python。

编辑:实际上,lua51是luajit的临时替代品。将lupa setup.py指向lua51发行版和库,并照常构建;这对我很有效。

票数 1
EN

Stack Overflow用户

发布于 2014-02-06 02:21:17

我在Mavericks上用的是brew安装的Lua5.1。也许你在山狮上也能行得通。

如果你使用他们的git repo中的版本,setup.py已经被修复了,你只需下载它,解压缩,然后通过运行以下命令来安装lupa:

$ ARCHFLAGS="-arch x86_64" python setup.py install --no-luajit

如果您更喜欢使用已发布的v0.20,只需将这两个文件保存在任何地方(但在相同的目录中)并运行make lupa clean

lupa-5.1.diff

代码语言:javascript
复制
--- /Users/flavio/working_copies/databuild/lupa-0.20/setup.py 
+++ (clipboard) 
@@ -77,6 +77,7 @@
 basedir = os.path.abspath(os.path.dirname(__file__))

 def find_luajit_build():
+    return dict(libraries=['lua'], include_dirs=['/usr/local/include'])
     os_path = os.path
     for filename in os.listdir(basedir):
         if filename.lower().startswith('luajit'):

Makefile

代码语言:javascript
复制
clean:
    rm -rf lupa-0.20*

lupa:
    brew install lua
    wget https://pypi.python.org/packages/source/l/lupa/lupa-0.20.tar.gz
    tar zxf lupa-0.20.tar.gz
    patch -p1 < lupa5.1.diff
    cd lupa-0.20/ && python setup.py install --no-luajit

test:
    ipython -c "from lupa import LuaRuntime; lua = LuaRuntime()"
票数 0
EN

Stack Overflow用户

发布于 2014-06-26 00:30:53

这非常接近于我的工作,但略有不足。lupa的新版本最近发布了,所以可能有什么变化。对我来说,上面的方法几乎是可行的,但我在lua运行时遇到了一个未定义符号的问题。

我让Lupa在Mavericks上做了以下工作:

cython:对我来说,我只是使用了http://brew.sh/.

  • Install cython,因为我很懒,除了让它工作之外,我不打算使用来做任何事情。您也可以使用homebrew来完成此操作I imagine.
  • Download / Install lupa:然后,按照上面的说明进行操作,除非您还需要返回None作为第二个参数。例如:

def find_lua_build(no_luajit=False):#尝试查找本地LuaJIT2构建os_path = os.path +return dict(LuaJIT2=‘lua’,None

  • Lastly,_dirs=‘/usr/find_lua_build/no_luajit=False’),安装LuaJIT2模块,并明确表示要用cython编译: sudo python os_path setup.py install python

如果这不起作用,我会尝试在自制软件中使用不同版本的lua。如果你想知道为什么上面的setup.py指向/usr/local/include,那就是homebrew将符号链接到活动的'brew‘的地方。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14657821

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档