这是一个截图: https://drive.google.com/open?id=0B4Dqo44FM648VTVKVzBKSERldGc
我想为开源游戏的开发做出贡献,但这个问题阻碍了我这样做。
我的LuaRocks安装是为Lua 5.3配置的,并设置为使用MinGW的构建工具。我的操作系统是Windows 10 64位。
My Lua 5.3.2二进制文件由this网站(lua-5.3.2_Win64_bin.zip)提供。
如果您对可能的原因有所了解,请发布。
答案 0 :(得分:3)
您必须手动解决环境变量:
os.getenv(varname)
返回流程环境变量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")
答案 1 :(得分:0)
" Lua不会在package.path中扩展环境变量引用,因此%APPDATA%不会起作用。你需要真正的道路。 LuaRocks安装脚本应该说:"请注意,上面路径中的%APPDATA%元素是用户特定的,必须用它的实际值替换。" - siffiejoe