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

如何在 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())

error loading module 'libpng' from file '/usr/local/lib/lua/5.1/libpng.so': dlopen(/usr/local/lib/lua/5.1/libpng.so, 6): Library not loaded: /usr/local/lib/libpng15.15.dylib Referenced from: /usr/local/lib/lua/5.1/libpng.so Reason: Incompatible library version: libpng.so requires version 33.0.0 or later, but libpng15.15.dylib provides version 29.0.0 warning: could not be loaded (is it installed?) /usr/local/share/lua/5.1/dok/inline.lua:736: libpng package not found, please install libpng stack traceback: [C]: in function 'error' /usr/local/share/lua/5.1/dok/inline.lua:736: in function 'error' /usr/local/share/lua/5.1/image/init.lua:142: in function 'saver' /usr/local/share/lua/5.1/image/init.lua:355: in function 'save' /Users/MY/torch/install/share/lua/5.1/itorch/gfx.lua:25: in function 'f' [string "local f = function() return itorch.image(iii)..."]:1: in main chunk [C]: in function 'xpcall' /Users/MY/torch/install/share/lua/5.1/itorch/main.lua:177: in function /Users/MY/torch/install/share/lua/5.1/lzmq/poller.lua:75: in function 'poll' /Users/MY/torch/install/share/lua/5.1/lzmq/impl/loop.lua:307: in function 'poll' /Users/MY/torch/install/share/lua/5.1/lzmq/impl/loop.lua:325: in function 'sleep_ex' /Users/MY/torch/install/share/lua/5.1/lzmq/impl/loop.lua:370: in function 'start' /Users/MY/torch/install/share/lua/5.1/itorch/main.lua:344: in main chunk [C]: in function 'require' [string "arg={'/Users/MY/.ipython/profile_default/secu..."]:1: in main chunk

点赞
用户117844
用户117844

重新安装 image 包并强制链接 libpng 可能会修复它:

brew link libpng --force
luarocks install image
2015-06-01 20:48:17
用户4455483
用户4455483

我遇到过类似的问题(OSX 10.9.5)。你可能安装了多个版本的libpng,在安装luarocks时调用的版本为i386(需要x86_64的版本)。

解决方法如下:

  1. 尝试重新安装image,并查看日志:

    luarocks install image

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

    ld: warning: ignoring file /Library/Frameworks//libpng.framework/libpng, missing required architecture x86_64 in file /Library/Frameworks//libpng.framework/libpng (2 slices)

  3. 如果是这种情况(假设使用brew),请删除/Library/Frameworks中的libpng框架,然后执行

    brew install libpng --universal

  4. 重新安装image并运行。

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

2015-06-03 13:06:13