Модуль, установленный Luarocks, не найден
Я работаю над Debian Stable Linux. Я установил модуль luafilesystem командой:
luarocks --local install luafilesystem
Однако он не найден, если в исходных файлах lua используется любое из следующего:
require ("lfs")
require ("luafilesystem")
(Хотя эти файлы работают правильно при запуске из среды IDE ZeroBraneStudio).
Из предложения в Интернете я также выполнил следующую команду:
luarocks --local install luarocks
Но это не помогает. Я проверил с помощью команды luarocks-admin, которая показала:
CONFIGURATION
Lua version: 5.1
Configuration files:
System: /etc/luarocks/config.lua (ok)
User : /home/abcd/.luarocks/config-5.1.lua (not found)
Rocks trees in use:
/home/abcd/.luarocks
/usr/local
В настоящее время у меня установлены только эти 2 модуля:
$ luarocks list
Installed rocks:
----------------
luafilesystem
1.7.0-2 (installed) - /home/abcd/.luarocks/lib/luarocks/rocks
luarocks
2.4.3-1 (installed) - /home/abcd/.luarocks/lib/luarocks/rocks
Должен ли я скопировать /etc/luarocks/config.lua в /home/abcd/.luarocks для этого? Спасибо за вашу помощь.
2 ответа
LUA_PATH
а также LUA_CPATH
Переменные окружения управляют путями, которые ищет lua при поиске пакетов. Возможно, они установлены неправильно. Включите пути, используемые luarocks в эти переменные, запустив
eval "$(luarocks path)"
и у тебя все будет готово.
Eval отлично работает при выполнении кода с терминала, но не работает при его выполнении с помощью отладчика vscode.
Чтобы обойти эту проблему, я сделал следующее.
local LUA_PATH = 'my LUA_PATH from "$ luarocks path"'
local LUA_CPATH = 'my LUA_CPATH from "$ luarocks path"'
package.path = package.path .. ';' .. LUA_PATH
package.cpath = package.cpath .. ';' .. LUA_CPATH
Благодаря этому изменению я могу запускать код с помощью отладчика.