2016-02-22 3 views
0

Я пытаюсь запустить нейронную сеть из факела внутри Java. Я использую luaj в качестве обертки.Требовать не находит общие библиотеки

Проблема заключается в том, что, когда мне требуется, например, torch модуля, который зависит от libpaths модуля, который совместно используемой библиотеки он выдает следующее сообщение об ошибке:

module 'libpaths' not found: libpaths 
no field package.preload['libpaths'] 
libpaths.lua 

Перед тем, как требует модуля я установил package.cpath и package.path в папки, где находятся библиотеки, поскольку до этого он просматривался только по умолчанию, который был только папкой проекта. Однако у меня такое ощущение, что «требуется» только выглядит в package.path для модулей, а не в cpath, потому что тогда он также найдет libpaths.so. Кроме того, поскольку этот вывод содержит только каталоги с пути и не cpath:

/home/erika/.luarocks/share/lua/5.1/libpaths.lua 
/home/erika/.luarocks/share/lua/5.1/libpaths/init.lua 
/home/erika/torch/install/share/lua/5.1/libpaths.lua 
/home/erika/torch/install/share/lua/5.1/libpaths/init.lua 
./libpaths.lua 
/home/erika/torch/install/share/luajit-2.1.0-beta1/libpaths.lua 
/usr/local/share/lua/5.1/libpaths.lua 
/usr/local/share/lua/5.1/libpaths/init.lua 

Я попытался package.searchpath() с пути от cpath и «LIBPATH», и это действительно находили libpaths.so. Я пробовал много разных вещей, но ничего не работает, поэтому я бы очень признателен за помощь!

Я использую Lua 5.1.5, моя ОС - Ubuntu 14.04 LTS.

ответ

2

Когда вы используете локальные локальные локаторы luarocks, вы должны настроить свою среду перед запуском lua/luajit/torch. Самый простой способ выполнить вывод luarocks-5.1 path

$ luarocks-5.1 path 
export LUA_PATH='/home/markus/.luarocks/share/lua/5.1/?.lua;/home/markus/.luarocks/share/lua/5.1/?/init.lua;/usr/share/lua/5.1/?.lua;/usr/share/lua/5.1/?/init.lua;./?.lua;/usr/lib/lua/5.1/?.lua;/usr/lib/lua/5.1/?/init.lua' 
export LUA_CPATH='/home/markus/.luarocks/lib/lua/5.1/?.so;/usr/lib/lua/5.1/?.so;./?.so;/usr/lib/lua/5.1/loadall.so' 

более удобный способ это поставить выход в вашу ~/.bashrc

$ luarocks-5.1 path >> ~/.bashrc 

Чтобы перезагрузить ~/.bashrc без выхода из системы и входа в систему, сделать source ~/.bashrc

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