这是截图: https ://drive.google.com/open?id=0B4Dqo44FM648VTVKVzBKSERldGc
我想为开源游戏的开发做出贡献,但这个问题阻止了我这样做。
我的 LuaRocks 安装配置为 Lua 5.3,并设置为使用 MinGW 的构建工具。我的操作系统是 Windows 10 64 位。
我的 Lua 5.3.2 二进制文件由本网站 (lua-5.3.2_Win64_bin.zip) 提供。
如果您对可能的原因有任何想法,请发布。
这是截图: https ://drive.google.com/open?id=0B4Dqo44FM648VTVKVzBKSERldGc
我想为开源游戏的开发做出贡献,但这个问题阻止了我这样做。
我的 LuaRocks 安装配置为 Lua 5.3,并设置为使用 MinGW 的构建工具。我的操作系统是 Windows 10 64 位。
我的 Lua 5.3.2 二进制文件由本网站 (lua-5.3.2_Win64_bin.zip) 提供。
如果您对可能的原因有任何想法,请发布。
您必须手动解析环境变量:
os.getenv(变量名)
返回进程环境变量 varname 的值,如果未定义变量,则返回 nil。
因此,在您的情况下,您需要先获取 %APPDATA% 路径:
os.getenv("APPDATA")
返回:C:\Users\USERNAME\AppData\Roaming
在搜索要加载的包时,Lua 使用预定义的文件夹列表进行搜索。这个列表在package.path中定义,它是一个分号分隔的 (;) 字符串。要添加新文件夹,您必须将其路径附加到package.path:
package.path = package.path .. ";" .. NEWFOLDER .. "\\?.lua"
最后,您的完整解决方案是这样的:
package.path = package.path .. ";" .. os.getenv("APPDATA") .. "\\luarocks\\share\\lua\\5.3\\?.lua"
local s = require("socket")
“Lua不会扩展package.path中的环境变量引用,所以%APPDATA%不起作用。你需要真实的路径。LuaRocks的安装脚本应该说:”注意上面路径中的%APPDATA%元素是用户特定的,它必须被它的实际值替换。” - siffiejoe