Windows系统下LuaRocks安装后无法运行的修复方法
LuaRocks Windows运行报错修复方案
报错信息
C:\Windows\system32>luarocks C:\Lua\lua54.exe: C:\Program Files (x86)\LuaRocks\lua\luarocks\core\util.lua:18: attempt to concatenate a nil value stack traceback: C:\Program Files (x86)\LuaRocks\lua\luarocks\core\util.lua:18: in function 'luarocks.util.popen_read' C:\Program Files (x86)\LuaRocks\lua\luarocks\util.lua:420: in function 'luarocks.util.check_lua_version' C:\Program Files (x86)\LuaRocks\lua\luarocks\util.lua:491: in upvalue 'find_lua_bindir' C:\Program Files (x86)\LuaRocks\lua\luarocks\util.lua:512: in function 'luarocks.util.find_lua' (...tail calls...) C:\Program Files (x86)\LuaRocks\lua\luarocks\cmd.lua:633: in function 'luarocks.cmd.run_command' C:\Program Files (x86)\LuaRocks\luarocks.lua:35: in main chunk [C]: in ? C:\Windows\system32>luarocks C:\Program Files (x86)\LuaRocks\win32\lua5.1\bin\lua5.1.exe: ...gram Files (x86)\LuaRocks\lua\luarocks\core\util.lua:18: attempt to concatenate a nil value stack traceback: ...gram Files (x86)\LuaRocks\lua\luarocks\core\util.lua:18: in function 'popen_read' ...:\Program Files (x86)\LuaRocks\lua\luarocks\util.lua:420: in function 'check_lua_version' ...:\Program Files (x86)\LuaRocks\lua\luarocks\util.lua:491: in function 'find_lua_bindir' ...:\Program Files (x86)\LuaRocks\lua\luarocks\util.lua:512: in function <...:\Program Files (x86)\LuaRocks\lua\luarocks\util.lua:510> (tail call): ? C:\Program Files (x86)\LuaRocks\lua\luarocks\cmd.lua:633: in function 'run_command' C:\Program Files (x86)\LuaRocks\luarocks.lua:35: in main chunk [C]: ?
修复步骤
- 迁移到无空格路径:Windows下带空格的目录(如
Program Files (x86))是这类错误的高发原因。卸载现有Lua和LuaRocks,重新安装到无空格的路径,比如C:\Lua\和C:\LuaRocks\,安装时选择自定义路径,避开默认系统目录。 - 修正LuaRocks配置文件:找到LuaRocks安装目录下对应版本的配置文件(如
config-5.1.lua或config-5.4.lua),确保lua_bin路径正确且用引号包裹,示例:
同时确认lua_bin = '"C:\\Lua\\lua54.exe"'lua_inc_dir(指向Lua的include目录)和lua_lib_dir(指向Lua的lib目录)配置正确。 - 手动指定Lua运行LuaRocks:直接用完整路径的Lua解释器调用LuaRocks主脚本测试,比如:
如果能正常运行,说明"C:\Lua\lua54.exe" "C:\LuaRocks\luarocks.lua" --versionluarocks.bat中的路径配置有误,重新编辑该文件,把Lua的路径改成带引号的完整路径。 - 检查环境变量:将Lua的二进制目录(如
C:\Lua\)和LuaRocks的二进制目录(如C:\LuaRocks\)添加到系统PATH环境变量中,重启命令行窗口后再尝试运行luarocks。
内容的提问来源于stack exchange,提问作者Sebastien Diot
相关产品推荐
相关产品推荐

