Lua 错误加载模块 'libpng' (Torch, MacOSX)

Posted

技术标签:

【中文标题】Lua 错误加载模块 \'libpng\' (Torch, MacOSX)【英文标题】:Lua error loading module 'libpng' (Torch, MacOSX)Lua 错误加载模块 'libpng' (Torch, MacOSX) 【发布时间】:2015-08-15 10:29:47 【问题描述】:

如何在 Lua 中正确加载 libpng?我在 Mac OSX 10.10.3 的 iTorch Notebook 中运行 Lua/Torch,Lua 中的其他基本功能在此工作,例如绘图和计算。

 brew install libpng

警告:libpng-1.6.17 已安装

如果我跑:

require 'nn';
require 'image';
itorch.image(image.lena())

从文件“/usr/local/lib/lua/5.1/libpng.so”加载模块“libpng”时出错: dlopen(/usr/local/lib/lua/5.1/libpng.so, 6):库未加载:/usr/local/lib/libpng15.15.dylib 引用自:/usr/local/lib/lua/5.1/libpng.so 原因:库版本不兼容:libpng.so需要33.0.0或更高版本,但libpng15.15.dylib提供29.0.0版本 警告:无法加载(是否已安装?) /usr/local/share/lua/5.1/dok/inline.lua:736:找不到libpng包,请安装libpng 堆栈回溯: [C]:在函数“错误”中 /usr/local/share/lua/5.1/dok/inline.lua:736:在函数“错误”中 /usr/local/share/lua/5.1/image/init.lua:142:在函数“保护程序”中 /usr/local/share/lua/5.1/image/init.lua:355:在函数“保存”中 /Users/MY/torch/install/share/lua/5.1/itorch/gfx.lua:25:在函数“f”中 [string "local f = function() return itorch.image(iii)..."]:1: in main chunk [C]:在函数“xpcall”中 /Users/MY/torch/install/share/lua/5.1/itorch/main.lua:177:在函数中 /Users/MY/torch/install/share/lua/5.1/lzmq/poller.lua:75:在函数'poll'中 /Users/MY/torch/install/share/lua/5.1/lzmq/impl/loop.lua:307:在函数'poll'中 /Users/MY/torch/install/share/lua/5.1/lzmq/impl/loop.lua:325:在函数'sleep_ex'中 /Users/MY/torch/install/share/lua/5.1/lzmq/impl/loop.lua:370:在函数“开始”中 /Users/MY/torch/install/share/lua/5.1/itorch/main.lua:344:在主块中 [C]:在函数“要求”中 [string "arg='/Users/MY/.ipython/profile_default/secu..."]:1: 在主块中

【问题讨论】:

【参考方案1】:

我遇到了类似的问题(OSX 10.9.5)。您可能安装了多个版本的 libpng,其中一个在安装 luarocks 时调用,具有 i386 架构(需要 x86_64)。

解决这个问题:

    尝试再次安装镜像,并阅读日志:

    luarocks 安装镜像

    检查日志以查看是否收到以下类型的消息:

    ld:警告:忽略文件 /Library/Frameworks//libpng.framework/libpng,文件 /Library/Frameworks//libpng.framework/libpng 中缺少所需的架构 x86_64(2 片)

    如果是这种情况(假设使用 brew)删除 /Library/Frameworks 中的 libpng 框架并执行

    brew install libpng --universal

    重新安装镜像并运行。

这对我有用,我希望它也对你有用。

【讨论】:

【参考方案2】:

重新安装镜像包以及强制链接libpng可能会修复它:

brew link libpng --force
luarocks install image

【讨论】:

我这样做了,这些命令直接没有错误,但是回到 itorch,加载模块 libpng 时出现同样的错误。我也卸载并重新安装了lua本身,没有区别。我什至从mac-dev-env.patrickbougie.com/libpng 手动下载了libpng,但没有区别。我的路径需要设置到不同的目录吗?

以上是关于Lua 错误加载模块 'libpng' (Torch, MacOSX)的主要内容,如果未能解决你的问题,请参考以下文章

尝试使用 libpng 加载图像时 Windows 上的运行时错误

加载共享库 libpng16 时出错

libpng 错误:读取错误 (Visual Studio 2010)

Lua学习之加载其他lua文件

再探Lua的require

Lua:制作模块系统